Skip to content

Sintaxis

Tipos básicos

dsl
bool, char, int32, int64, float, double, string, datetime, dynamic
list<T>, set<T>, map<K,V>

Variables/Funciones

js
func main() {
  var total int32 = 0;
  for (var i = 0; i < 5; ++i) {
    total += i;
  }
  @console.log("total=" + total);
}

Dominio/Tabla

js
domain Name string(32);

table user {
  user_id int64 auto;
  name Name;
  key(user_id);
}

Datos semilla

js
data user(name) {
  ('user1');
  ('user2');
}

Entidad/Mapper

js
entity UserVo from @table.user {}

mapper UserMapper {
  query insertUser(name Name) int32 {
    insert user(name)
    values(:name);
  }
}

Procedimientos/Funciones DB

js
dbproc sample(userId string(10), out name string(100)) {
  var _name string(100);
  var c cursor = select name into _name from user_id = userId;
  c.open();
  c.fetch();
  name = _name;
  c.close();
}

dbfunc countUser() int32 {
  var _count int32;
  select count(*) into _count from user;
  return _count;
}

Controlador/API

js
[baseUrl='/api/v1']
controller UserController {
  [method=post, route='/signup']
  func signup(@body req SignupRequest) SignupResponse {
    return SignupResponse();
  }
}

api UserApi from @controller.UserController {}

Definiciones de recursos

js
define message[locale='en'] app {
  hello: "Hello"
}

define error[locale='en'] app {
  failed (100) = "Failed"
}

HTML/UI

La declaración html define la UI y el template se escribe en un bloque &lt;template&gt;.

@prompt

js
func main() {
  @prompt `Código para leer un archivo Excel`
}

Resumen de interfaces estándar

Console

js
[alias='console']
interface Console {
  static func log(message string) void;
  static func error(message string) void;
  static func warn(message string) void;
}

Json

js
[alias='json']
interface Json {
  static func decode(json string) dynamic;
  static func encode(value dynamic) string;
}

string

js
interface string {
  var length int32;
  func split(separator string) string[];
  func upper() string;
  func lower() string;
  func isEmpty() bool;
  func contains(substr string) bool;
}

list<T>

js
interface list<T> {
  var length int32;
  func add(item T) void;
  func insert(index int32, item T) void;
  func remove(item T) void;
  func removeAt(index int32);
}

map<K,V>

js
interface map<K, V> {
  var size int32;
  func add(key K, value V) void;
  func get(key K) V;
  func remove(key K) void;
}

set<T>

js
interface set<T> {
  var size int32;
  func add(item T) void;
  func remove(item T) void;
}