Syntaxe
Types de base
dsl
bool, char, int32, int64, float, double, string, datetime, dynamic
list<T>, set<T>, map<K,V>Variables/Fonctions
js
func main() {
var total int32 = 0;
for (var i = 0; i < 5; ++i) {
total += i;
}
@console.log("total=" + total);
}Domaine/Table
js
domain Name string(32);
table user {
user_id int64 auto;
name Name;
key(user_id);
}Données d'ensemencement
js
data user(name) {
('user1');
('user2');
}Entité/Mapper
js
entity UserVo from @table.user {}
mapper UserMapper {
query insertUser(name Name) int32 {
insert user(name)
values(:name);
}
}Procédures/Fonctions 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;
}Contrôleur/API
js
[baseUrl='/api/v1']
controller UserController {
[method=post, route='/signup']
func signup(@body req SignupRequest) SignupResponse {
return SignupResponse();
}
}
api UserApi from @controller.UserController {}Définitions de ressources
js
define message[locale='en'] app {
hello: "Hello"
}
define error[locale='en'] app {
failed (100) = "Failed"
}HTML/UI
La déclaration html définit l'UI, et le template s'écrit dans un bloc <template>.
@prompt
js
func main() {
@prompt `Code pour lire un fichier Excel`
}Résumé des interfaces standard
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;
}