[mod] output:backend:typescript:use templates
This commit is contained in:
parent
fd733f69da
commit
ab9f1a6d6d
File diff suppressed because it is too large
Load diff
88
source/outputs/backend/typescript/templates/api.ts.tpl
Normal file
88
source/outputs/backend/typescript/templates/api.ts.tpl
Normal file
|
|
@ -0,0 +1,88 @@
|
||||||
|
// {{domain_name}}
|
||||||
|
{
|
||||||
|
lib_plankton.rest.register(
|
||||||
|
rest,
|
||||||
|
lib_plankton.http.enum_method.get,
|
||||||
|
"/{{path_base}}{{domain_name}}",
|
||||||
|
{
|
||||||
|
"execution": async function (stuff) {
|
||||||
|
return {
|
||||||
|
"status_code": 200,
|
||||||
|
"data": await {{repository_function_list}}(
|
||||||
|
|
||||||
|
)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
lib_plankton.rest.register(
|
||||||
|
rest,
|
||||||
|
lib_plankton.http.enum_method.get,
|
||||||
|
"/{{path_base}}{{domain_name}}/:id",
|
||||||
|
{
|
||||||
|
"execution": async function (stuff) {
|
||||||
|
return {
|
||||||
|
"status_code": 200,
|
||||||
|
"data": await {{repository_function_read}}(
|
||||||
|
parseInt(
|
||||||
|
stuff.path_parameters["id"]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
lib_plankton.rest.register(
|
||||||
|
rest,
|
||||||
|
lib_plankton.http.enum_method.post,
|
||||||
|
"/{{path_base}}{{domain_name}}",
|
||||||
|
{
|
||||||
|
"execution": async function (stuff) {
|
||||||
|
const id = await {{repository_function_create}}(
|
||||||
|
(stuff.input as {{type_name}})
|
||||||
|
);
|
||||||
|
return {
|
||||||
|
"status_code": 201,
|
||||||
|
"data": id
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
lib_plankton.rest.register(
|
||||||
|
rest,
|
||||||
|
lib_plankton.http.enum_method.patch,
|
||||||
|
"/{{path_base}}{{domain_name}}/:id",
|
||||||
|
{
|
||||||
|
"execution": async function (stuff) {
|
||||||
|
const dummy = await {{repository_function_create}}(
|
||||||
|
parseInt(
|
||||||
|
stuff.path_parameters["id"]
|
||||||
|
),
|
||||||
|
(stuff.input as {{type_name}})
|
||||||
|
);
|
||||||
|
return {
|
||||||
|
"status_code": 200,
|
||||||
|
"data": null
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
lib_plankton.rest.register(
|
||||||
|
rest,
|
||||||
|
lib_plankton.http.enum_method.delete,
|
||||||
|
"/{{path_base}}{{domain_name}}/:id",
|
||||||
|
{
|
||||||
|
"execution": async function (stuff) {
|
||||||
|
const dummy = await {{repository_function_delete}}(
|
||||||
|
parseInt(
|
||||||
|
stuff.path_parameters["id"]
|
||||||
|
)
|
||||||
|
);
|
||||||
|
return {
|
||||||
|
"status_code": 200,
|
||||||
|
"data": null
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
export namespace {{domain_name}}
|
||||||
|
{
|
||||||
|
{{defs}}
|
||||||
|
}
|
||||||
74
source/outputs/backend/typescript/templates/master.ts.tpl
Normal file
74
source/outputs/backend/typescript/templates/master.ts.tpl
Normal file
|
|
@ -0,0 +1,74 @@
|
||||||
|
// declare var require;
|
||||||
|
|
||||||
|
namespace {{namespace_base}}entities
|
||||||
|
{
|
||||||
|
{{entities}}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
namespace {{namespace_base}}repositories
|
||||||
|
{
|
||||||
|
{{repositories}}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
namespace {{namespace_base}}main
|
||||||
|
{
|
||||||
|
// run
|
||||||
|
export function run(
|
||||||
|
) : void
|
||||||
|
{
|
||||||
|
lib_plankton.log.conf_push(
|
||||||
|
[
|
||||||
|
new lib_plankton.log.class_channel_stdout(
|
||||||
|
|
||||||
|
)
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
// define api
|
||||||
|
{
|
||||||
|
// meta
|
||||||
|
{
|
||||||
|
lib_plankton.rest.register(
|
||||||
|
rest,
|
||||||
|
lib_plankton.http.enum_method.get,
|
||||||
|
"/_spec",
|
||||||
|
{
|
||||||
|
"execution": async function (stuff) {
|
||||||
|
return {
|
||||||
|
"status_code": 200,
|
||||||
|
"data": lib_plankton.rest.to_oas(
|
||||||
|
rest
|
||||||
|
)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
{{api}}
|
||||||
|
}
|
||||||
|
|
||||||
|
// setup server
|
||||||
|
const server = lib_plankton.server.make(
|
||||||
|
conf.server_port,
|
||||||
|
async function (input) {
|
||||||
|
const http_request : lib_plankton.http.type_request = lib_plankton.http.decode_request(
|
||||||
|
input
|
||||||
|
);
|
||||||
|
const http_response : lib_plankton.http.type_response = await lib_plankton.rest.call(
|
||||||
|
rest,
|
||||||
|
http_request
|
||||||
|
);
|
||||||
|
return lib_plankton.http.encode_response(
|
||||||
|
http_response
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
// start
|
||||||
|
lib_plankton.server.start(
|
||||||
|
server
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
121
source/outputs/backend/typescript/templates/repository.ts.tpl
Normal file
121
source/outputs/backend/typescript/templates/repository.ts.tpl
Normal file
|
|
@ -0,0 +1,121 @@
|
||||||
|
export namespace {{domain_name}}
|
||||||
|
{
|
||||||
|
|
||||||
|
// list
|
||||||
|
export function {{list_function_name}}(
|
||||||
|
) : Promise<Array<{key : number; value : {{type_name}};}>>
|
||||||
|
{
|
||||||
|
return (
|
||||||
|
lib_plankton.sqlite.query_get(
|
||||||
|
conf.database_path,
|
||||||
|
{
|
||||||
|
"template": "SELECT {{list_query_fields}} FROM {{table_name}};",
|
||||||
|
"arguments": {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.then(
|
||||||
|
function (rows) {
|
||||||
|
return rows.map(
|
||||||
|
function (row) {
|
||||||
|
return {{list_result}};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// read
|
||||||
|
export function {{read_function_name}}(
|
||||||
|
key : number
|
||||||
|
) : Promise<{{type_name}}>
|
||||||
|
{
|
||||||
|
return (
|
||||||
|
lib_plankton.sqlite.query_get(
|
||||||
|
conf.database_path,
|
||||||
|
{
|
||||||
|
"template": "SELECT {{read_query_fields}} FROM {{table_name}} WHERE (id = :key);",
|
||||||
|
"arguments": {
|
||||||
|
"key": key
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.then(
|
||||||
|
function (rows) {
|
||||||
|
const row = rows[0];
|
||||||
|
return {{read_result_fields}};
|
||||||
|
}
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// create
|
||||||
|
export function {{create_function_name}}(
|
||||||
|
value : {{type_name}}
|
||||||
|
) : Promise<number>
|
||||||
|
{
|
||||||
|
return (
|
||||||
|
lib_plankton.sqlite.query_put(
|
||||||
|
conf.database_path,
|
||||||
|
{
|
||||||
|
"template": "INSERT INTO {{table_name}}({{create_query_field_names}}) VALUES ({{create_query_field_placeholders}});",
|
||||||
|
"arguments": {{create_query_field_values}}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.then(
|
||||||
|
function (result) {
|
||||||
|
return result.id;
|
||||||
|
}
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// update
|
||||||
|
export function {{update_function_name}}(
|
||||||
|
key : number,
|
||||||
|
value : {{type_name}}
|
||||||
|
) : Promise<void>
|
||||||
|
{
|
||||||
|
return (
|
||||||
|
lib_plankton.sqlite.query_put(
|
||||||
|
conf.database_path,
|
||||||
|
{
|
||||||
|
"template": "UPDATE {{table_name}} SET {{update_query_assignments}} WHERE (id = :key);",
|
||||||
|
"arguments": {
|
||||||
|
"key": key,
|
||||||
|
{{update_query_values}}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.then(
|
||||||
|
function (result) {
|
||||||
|
}
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// delete
|
||||||
|
export function {{delete_function_name}}(
|
||||||
|
key : number
|
||||||
|
) : Promise<void>
|
||||||
|
{
|
||||||
|
return (
|
||||||
|
lib_plankton.sqlite.query_put(
|
||||||
|
conf.database_path,
|
||||||
|
{
|
||||||
|
"template": "DELETE FROM {{table_name}} WHERE (id = :key);",
|
||||||
|
"arguments": {
|
||||||
|
"key": key
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.then(
|
||||||
|
function (result) {
|
||||||
|
}
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue