152 lines
2.8 KiB
JavaScript
152 lines
2.8 KiB
JavaScript
/**
|
|
* Export Models, APIs, Flows, Tables, Tasks, Schedules, etc.
|
|
*/
|
|
|
|
/**
|
|
* Export Apis
|
|
* @param {*} dsl
|
|
* @returns
|
|
*/
|
|
function Apis() {
|
|
let apis = {};
|
|
apis[`dyform`] = dyformAPI();
|
|
return apis;
|
|
}
|
|
|
|
/**
|
|
* Export Models
|
|
* @param {*} dsl
|
|
* @returns
|
|
*/
|
|
function Models(name, dsl) {
|
|
let models = {};
|
|
models[`dyform.${name}`] = dyformModel(name);
|
|
return models;
|
|
}
|
|
|
|
/**
|
|
* Export Flows
|
|
* @param {*} dsl
|
|
* @returns
|
|
*/
|
|
function Flows(name, dsl) {
|
|
return [{}];
|
|
}
|
|
|
|
/**
|
|
* Export Tables
|
|
* @param {*} dsl
|
|
* @returns
|
|
*/
|
|
function Tables(name, dsl) {
|
|
let tables = {};
|
|
tables[`dyform.${name}`] = dyformTable(name);
|
|
return tables;
|
|
}
|
|
|
|
/**
|
|
* Export Tasks
|
|
* @param {*} dsl
|
|
* @returns
|
|
*/
|
|
function Tasks(name, dsl) {
|
|
let tasks = {};
|
|
tasks[`dyform.${name}`] = dyformTask(name);
|
|
return tasks;
|
|
}
|
|
|
|
/**
|
|
* Export Schedules
|
|
* @param {*} dsl
|
|
* @returns
|
|
*/
|
|
function Schedules(name, dsl) {
|
|
let schedules = {};
|
|
schedules[`dyform.${name}`] = dyformSchedule(name);
|
|
return schedules;
|
|
}
|
|
|
|
function dyformSchedule(name) {
|
|
return {
|
|
name: `Schedule ${name}`,
|
|
schedule: "*/1 * * * *",
|
|
process: `widgets.dyform.Save`,
|
|
args: [name],
|
|
};
|
|
}
|
|
|
|
function dyformTask(name) {
|
|
return {
|
|
name: `Task ${name}`,
|
|
worker_nums: 2,
|
|
attempts: 3,
|
|
attempt_after: 200,
|
|
timeout: 2,
|
|
size: 1000,
|
|
process: `widgets.dyform.Save`,
|
|
args: [name],
|
|
};
|
|
}
|
|
|
|
function dyformAPI() {
|
|
return {
|
|
name: `dyform API`,
|
|
version: "1.0.0",
|
|
description: "dyform APIs",
|
|
group: "dyform",
|
|
guard: "-",
|
|
paths: [
|
|
{
|
|
path: "/:name/search",
|
|
method: "GET",
|
|
process: `widgets.dyform.Save`,
|
|
in: ["$param.name", ":query"],
|
|
out: { status: 200, type: "application/json" },
|
|
},
|
|
],
|
|
};
|
|
}
|
|
|
|
function dyformTable(name) {
|
|
return {
|
|
name: `dyform_${name}`,
|
|
version: "1.0.0",
|
|
decription: "云服务库",
|
|
bind: { model: `dyform.${name}` },
|
|
apis: {},
|
|
columns: {},
|
|
filters: {},
|
|
list: {
|
|
primary: "id",
|
|
layout: { columns: [{ name: "ID", width: 6 }], filters: [] },
|
|
actions: {},
|
|
},
|
|
edit: {
|
|
primary: "id",
|
|
layout: { fieldset: [{ columns: [{ name: "ID", width: 6 }] }] },
|
|
actions: { cancel: {} },
|
|
},
|
|
insert: {},
|
|
view: {},
|
|
};
|
|
}
|
|
|
|
function dyformModel(name) {
|
|
return {
|
|
table: { name: `dyform_${name}` },
|
|
columns: [
|
|
{ label: "DYFORM ID", name: "id", type: "ID" },
|
|
{ label: "SN", name: "sn", type: "string", length: 20, unique: true },
|
|
{ label: "NAME", name: "name", type: "string", length: 200, index: true },
|
|
{ label: "SOURCE", name: "source", type: "JSON", nullable: true },
|
|
{
|
|
label: "TITLE",
|
|
name: "title",
|
|
type: "string",
|
|
length: 200,
|
|
index: true,
|
|
},
|
|
],
|
|
indexes: [],
|
|
};
|
|
}
|