@sealcode/sealgen 0.5.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/@types/forms/controls/controls.d.ts +1 -0
- package/@types/forms/controls/html.d.ts +9 -0
- package/lib/build.js +3 -2
- package/lib/build.js.map +1 -1
- package/lib/forms/controls/controls.js +3 -1
- package/lib/forms/controls/controls.js.map +1 -1
- package/lib/forms/controls/html.js +19 -0
- package/lib/forms/controls/html.js.map +1 -0
- package/lib/generate-routes.js +6 -6
- package/lib/generate-routes.js.map +1 -1
- package/lib/templates/route-test.js +1 -1
- package/lib/templates/route-test.js.map +1 -1
- package/package.json +2 -2
- package/src/build.ts +3 -2
- package/src/forms/controls/controls.ts +1 -0
- package/src/forms/controls/html.ts +18 -0
- package/src/generate-routes.ts +18 -6
- package/src/templates/route-test.ts +1 -1
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Context } from "koa";
|
|
2
|
+
import { FlatTemplatable } from "tempstream";
|
|
3
|
+
import { FormControl } from "./controls";
|
|
4
|
+
export declare class HTML extends FormControl {
|
|
5
|
+
renderer: ((ctx: Context) => FlatTemplatable) | string;
|
|
6
|
+
role: "decoration";
|
|
7
|
+
constructor(renderer: ((ctx: Context) => FlatTemplatable) | string);
|
|
8
|
+
render(ctx: Context): Promise<FlatTemplatable>;
|
|
9
|
+
}
|
package/lib/build.js
CHANGED
|
@@ -43,7 +43,7 @@ async function build_ts() {
|
|
|
43
43
|
outdir: "./dist/back",
|
|
44
44
|
logLevel: "info",
|
|
45
45
|
platform: "node",
|
|
46
|
-
target: "
|
|
46
|
+
target: "es2022",
|
|
47
47
|
format: "cjs",
|
|
48
48
|
});
|
|
49
49
|
}
|
|
@@ -72,7 +72,8 @@ async function complex_build(watch) {
|
|
|
72
72
|
}
|
|
73
73
|
if (path.endsWith(".ts") &&
|
|
74
74
|
!path.endsWith("src/back/collections.ts") &&
|
|
75
|
-
!path.endsWith("src/back/routes/routes.ts")
|
|
75
|
+
!path.endsWith("src/back/routes/routes.ts") &&
|
|
76
|
+
!path.endsWith("src/back/routes/urls.ts")) {
|
|
76
77
|
await build_ts();
|
|
77
78
|
console.log(`Finished TS build [on ${path}]`);
|
|
78
79
|
}
|
package/lib/build.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAA6C;AAC7C,6DAAiD;AACjD,mDAAqC;AACrC,0DAA4C;AAC5C,6DAA4D;AAC5D,yCAAsC;AACtC,iEAA6D;AAC7D,uDAAmD;AAEnD,KAAK,UAAU,QAAQ;IACtB,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACvC,mBAAI,CAAC,oBAAoB,CAAC;QAC1B,0CAAmB,EAAE;QACrB,gCAAc,EAAE;KAChB,CAAC,CAAC;IACH,MAAM,eAAK,CAAC;QACX,WAAW;QACX,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,aAAa;QACrB,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,KAAK;KACb,CAAC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,UAAU,GAAuB,IAAI,CAAC;IAC1C,IAAI,KAAK,EAAE;QACV,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;YACxC,IAAI,CAAC,UAAU;gBAAE,OAAO;YACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;gBAC/D,sDAAsD;gBACtD,MAAM,yCAAoB,EAAE,CAAC;gBAC7B,IAAI;oBACH,MAAM,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;oBAC9B,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,GAAG,CAAC,CAAC;iBAC5C;gBAAC,OAAO,CAAC,EAAE;oBACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBACzB,MAAM,aAAK,CAAC,GAAG,CAAC,CAAC;oBACjB,UAAU;wBACT,EAAE,OAAO,EAAE,EAAE;wBACb,sEAAsE;yBACrE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;iBAC1C;aACD;YACD,IACC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACpB,CAAC,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC;gBACzC,CAAC,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC,
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FormParagraph = exports.FormHeader = exports.SimpleInput = exports.Dropdown = exports.CheckboxedListInput = exports.Frame = exports.EditableCollectionSubset = exports.FormFieldControl = exports.FormControl = void 0;
|
|
3
|
+
exports.HTML = exports.FormParagraph = exports.FormHeader = exports.SimpleInput = exports.Dropdown = exports.CheckboxedListInput = exports.Frame = exports.EditableCollectionSubset = exports.FormFieldControl = exports.FormControl = void 0;
|
|
4
4
|
var form_control_1 = require("./form-control");
|
|
5
5
|
Object.defineProperty(exports, "FormControl", { enumerable: true, get: function () { return form_control_1.FormControl; } });
|
|
6
6
|
var form_field_control_1 = require("./form-field-control");
|
|
@@ -19,4 +19,6 @@ var form_header_1 = require("./form-header");
|
|
|
19
19
|
Object.defineProperty(exports, "FormHeader", { enumerable: true, get: function () { return form_header_1.FormHeader; } });
|
|
20
20
|
var form_paragraph_1 = require("./form-paragraph");
|
|
21
21
|
Object.defineProperty(exports, "FormParagraph", { enumerable: true, get: function () { return form_paragraph_1.FormParagraph; } });
|
|
22
|
+
var html_1 = require("./html");
|
|
23
|
+
Object.defineProperty(exports, "HTML", { enumerable: true, get: function () { return html_1.HTML; } });
|
|
22
24
|
//# sourceMappingURL=controls.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controls.js","sourceRoot":"","sources":["../../../src/forms/controls/controls.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,2DAAwD;AAA/C,sHAAA,gBAAgB,OAAA;AACzB,2EAAwE;AAA/D,sIAAA,wBAAwB,OAAA;AACjC,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,iEAA8D;AAArD,4HAAA,mBAAmB,OAAA;AAC5B,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA"}
|
|
1
|
+
{"version":3,"file":"controls.js","sourceRoot":"","sources":["../../../src/forms/controls/controls.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,2DAAwD;AAA/C,sHAAA,gBAAgB,OAAA;AACzB,2EAAwE;AAA/D,sIAAA,wBAAwB,OAAA;AACjC,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,iEAA8D;AAArD,4HAAA,mBAAmB,OAAA;AAC5B,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AACtB,+BAA8B;AAArB,4FAAA,IAAI,OAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HTML = void 0;
|
|
4
|
+
const controls_1 = require("./controls");
|
|
5
|
+
class HTML extends controls_1.FormControl {
|
|
6
|
+
constructor(renderer) {
|
|
7
|
+
super();
|
|
8
|
+
this.renderer = renderer;
|
|
9
|
+
this.role = "decoration";
|
|
10
|
+
}
|
|
11
|
+
async render(ctx) {
|
|
12
|
+
if (typeof this.renderer === "string") {
|
|
13
|
+
return this.renderer;
|
|
14
|
+
}
|
|
15
|
+
return this.renderer(ctx);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.HTML = HTML;
|
|
19
|
+
//# sourceMappingURL=html.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../../src/forms/controls/html.ts"],"names":[],"mappings":";;;AAEA,yCAAyC;AAEzC,MAAa,IAAK,SAAQ,sBAAW;IAGpC,YAAmB,QAAsD;QACxE,KAAK,EAAE,CAAC;QADU,aAAQ,GAAR,QAAQ,CAA8C;QAFzE,SAAI,GAAU,YAAY,CAAC;IAI3B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAY;QACxB,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;YACtC,OAAO,IAAI,CAAC,QAAQ,CAAC;SACrB;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;CACD;AAbD,oBAaC"}
|
package/lib/generate-routes.js
CHANGED
|
@@ -33,21 +33,21 @@ async function generateRoutes() {
|
|
|
33
33
|
"/" // trailing slash is important here, as it enables to use the entire path while building relative URLs. For example, while visiting /users/123, the path ./add-photo leads to /users/add-photo. While visiting /users/123/ (note the trailing slash), the path ./add-photo leads to /users/123/add-photo
|
|
34
34
|
),
|
|
35
35
|
})));
|
|
36
|
+
await fs_1.promises.writeFile(target_locreq.resolve("src/back/routes/urls.ts"), `${files
|
|
37
|
+
.map(({ actionName, url }) => `export const ${actionName}URL = "${url}";`)
|
|
38
|
+
.join("\n")}`);
|
|
36
39
|
await fs_1.promises.writeFile(target_locreq.resolve("src/back/routes/routes.ts"), `// DO NOT EDIT! This file is generated automaticaly with npm run generate-routes
|
|
37
40
|
|
|
38
41
|
import Koa, { Context } from "koa";
|
|
39
42
|
import Router from "@koa/router";
|
|
40
43
|
import { Middlewares } from "sealious";
|
|
41
44
|
import { Mountable } from "@sealcode/sealgen";
|
|
45
|
+
import * as URLs from "./urls"
|
|
42
46
|
|
|
43
47
|
${files
|
|
44
48
|
.map(({ actionName, fullpath }) => `import { default as ${actionName} } from "${import_path_1.importPath(target_locreq.resolve("src/back/routes/routes.ts"), fullpath)}";`)
|
|
45
49
|
.join("\n")}
|
|
46
50
|
|
|
47
|
-
${files
|
|
48
|
-
.map(({ actionName, url }) => `export const ${actionName}URL = "${url}";`)
|
|
49
|
-
.join("\n")}
|
|
50
|
-
|
|
51
51
|
async function handleHtmlPromise(ctx: Context, next: Koa.Next) {
|
|
52
52
|
await next();
|
|
53
53
|
if (ctx.body instanceof Promise) {
|
|
@@ -73,12 +73,12 @@ function mount(router: Router, URL: string, mountable: Mountable) {
|
|
|
73
73
|
|
|
74
74
|
export default function mountAutoRoutes(router: Router) {
|
|
75
75
|
${files
|
|
76
|
-
.map(({ actionName }) => ` mount(router,
|
|
76
|
+
.map(({ actionName }) => ` mount(router, URLs.${actionName}URL, ${actionName});`)
|
|
77
77
|
.join("\n")}
|
|
78
78
|
}
|
|
79
79
|
`);
|
|
80
80
|
// eslint-disable-next-line no-console
|
|
81
|
-
console.log("Successfuly generated new src/back/routes/routes.ts
|
|
81
|
+
console.log("Successfuly generated new src/back/routes/routes.ts and src/back/routes/urls.ts");
|
|
82
82
|
}
|
|
83
83
|
exports.generateRoutes = generateRoutes;
|
|
84
84
|
//# sourceMappingURL=generate-routes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-routes.js","sourceRoot":"","sources":["../src/generate-routes.ts"],"names":[],"mappings":";;;;;;AAAA,2BAAoC;AACpC,+BAAgC;AAChC,oDAA6B;AAC7B,uCAAuC;AACvC,qDAAiD;AACjD,2DAAiE;AACjE,iEAAgE;AAEhE,MAAM,aAAa,GAAG,gBAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAE7C,KAAK,UAAU,iBAAiB,CAAC,cAAsB;IACtD,MAAM,YAAY,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvE,IAAI,MAAM,KAAK,IAAI,EAAE;QACpB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;KAChE;IACD,OAAO,0BAAU,CAChB,MAAM,CAAC,CAAC,CAAC,EACT,0BAAU,CAAC,MAAM,EACjB,+BAA+B,CAC/B,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,cAAc;IACnC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,CACC,MAAM,cAAO,CAAC,aAAa,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CACvD;SACC,MAAM,CACN,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QACtB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QACtB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CACvB;SACA,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACzB,QAAQ;QACR,UAAU,EAAE,MAAM,iBAAiB,CAAC,QAAQ,CAAC;QAC7C,GAAG,EAAE,uCAAmB,CACvB,GAAG;YACF,eAAQ,CACP,aAAa,CAAC,OAAO,CAAC,iBAAiB,CAAC,EACxC,QAAQ,CACR,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACrB,GAAG,CAAC,wSAAwS;SAC7S;KACD,CAAC,CAAC,CACJ,CAAC;IAEF,MAAM,aAAE,CAAC,SAAS,CACjB,aAAa,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"generate-routes.js","sourceRoot":"","sources":["../src/generate-routes.ts"],"names":[],"mappings":";;;;;;AAAA,2BAAoC;AACpC,+BAAgC;AAChC,oDAA6B;AAC7B,uCAAuC;AACvC,qDAAiD;AACjD,2DAAiE;AACjE,iEAAgE;AAEhE,MAAM,aAAa,GAAG,gBAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAE7C,KAAK,UAAU,iBAAiB,CAAC,cAAsB;IACtD,MAAM,YAAY,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvE,IAAI,MAAM,KAAK,IAAI,EAAE;QACpB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;KAChE;IACD,OAAO,0BAAU,CAChB,MAAM,CAAC,CAAC,CAAC,EACT,0BAAU,CAAC,MAAM,EACjB,+BAA+B,CAC/B,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,cAAc;IACnC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,CACC,MAAM,cAAO,CAAC,aAAa,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CACvD;SACC,MAAM,CACN,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QACtB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QACtB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CACvB;SACA,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACzB,QAAQ;QACR,UAAU,EAAE,MAAM,iBAAiB,CAAC,QAAQ,CAAC;QAC7C,GAAG,EAAE,uCAAmB,CACvB,GAAG;YACF,eAAQ,CACP,aAAa,CAAC,OAAO,CAAC,iBAAiB,CAAC,EACxC,QAAQ,CACR,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACrB,GAAG,CAAC,wSAAwS;SAC7S;KACD,CAAC,CAAC,CACJ,CAAC;IAEF,MAAM,aAAE,CAAC,SAAS,CACjB,aAAa,CAAC,OAAO,CAAC,yBAAyB,CAAC,EAChD,GAAG,KAAK;SACN,GAAG,CACH,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,CACvB,gBAAgB,UAAU,UAAU,GAAG,IAAI,CAC5C;SACA,IAAI,CAAC,IAAI,CAAC,EAAE,CACd,CAAC;IAEF,MAAM,aAAE,CAAC,SAAS,CACjB,aAAa,CAAC,OAAO,CAAC,2BAA2B,CAAC,EAClD;;;;;;;;EAQA,KAAK;SACL,GAAG,CACH,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,CAC5B,uBAAuB,UAAU,YAAY,wBAAU,CACtD,aAAa,CAAC,OAAO,CAAC,2BAA2B,CAAC,EAClD,QAAQ,CACR,IAAI,CACN;SACA,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BV,KAAK;SACL,GAAG,CACH,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAClB,uBAAuB,UAAU,QAAQ,UAAU,IAAI,CACxD;SACA,IAAI,CAAC,IAAI,CAAC;;CAEX,CACC,CAAC;IACF,sCAAsC;IACtC,OAAO,CAAC,GAAG,CACV,iFAAiF,CACjF,CAAC;AACH,CAAC;AA5FD,wCA4FC"}
|
|
@@ -6,7 +6,7 @@ function testTemplate(action_name, new_file_fullpath) {
|
|
|
6
6
|
const rel = import_path_1.curryImportPath(new_file_fullpath);
|
|
7
7
|
return `import { withProdApp } from "${rel("src/back/test_utils/with-prod-app")}";
|
|
8
8
|
import { LONG_TEST_TIMEOUT, webhintURL } from "${rel("src/back/test_utils/webhint")}";
|
|
9
|
-
import { ${action_name}URL } from "${rel("src/back/routes/
|
|
9
|
+
import { ${action_name}URL } from "${rel("src/back/routes/urls")}";
|
|
10
10
|
|
|
11
11
|
describe("${action_name}", () => {
|
|
12
12
|
it("doesn't crash", async function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-test.js","sourceRoot":"","sources":["../../src/templates/route-test.ts"],"names":[],"mappings":";;;AAAA,sDAAuD;AAEvD,SAAgB,YAAY,CAAC,WAAmB,EAAE,iBAAyB;IAC1E,MAAM,GAAG,GAAG,6BAAe,CAAC,iBAAiB,CAAC,CAAC;IAC/C,OAAO,gCAAgC,GAAG,CACzC,mCAAmC,CACnC;iDAC+C,GAAG,CAClD,6BAA6B,CAC7B;WACS,WAAW,eAAe,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"route-test.js","sourceRoot":"","sources":["../../src/templates/route-test.ts"],"names":[],"mappings":";;;AAAA,sDAAuD;AAEvD,SAAgB,YAAY,CAAC,WAAmB,EAAE,iBAAyB;IAC1E,MAAM,GAAG,GAAG,6BAAe,CAAC,iBAAiB,CAAC,CAAC;IAC/C,OAAO,gCAAgC,GAAG,CACzC,mCAAmC,CACnC;iDAC+C,GAAG,CAClD,6BAA6B,CAC7B;WACS,WAAW,eAAe,GAAG,CAAC,sBAAsB,CAAC;;YAEpD,WAAW;;;;wBAIC,WAAW;iCACF,WAAW;;;4CAGA,WAAW;;;;;CAKtD,CAAC;AACF,CAAC;AAxBD,oCAwBC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sealcode/sealgen",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "Module to automate adding routes and collections to a sealious application",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@koa/router": "^10.1.1",
|
|
39
39
|
"@sealcode/ts-predicates": "^0.4.0",
|
|
40
|
-
"esbuild": "^0.
|
|
40
|
+
"esbuild": "^0.15.5",
|
|
41
41
|
"esbuild-sass-plugin": "^2.3.1",
|
|
42
42
|
"koa": "^2.13.0",
|
|
43
43
|
"locreq": "^2.0.2",
|
package/src/build.ts
CHANGED
|
@@ -19,7 +19,7 @@ async function build_ts() {
|
|
|
19
19
|
outdir: "./dist/back",
|
|
20
20
|
logLevel: "info",
|
|
21
21
|
platform: "node",
|
|
22
|
-
target: "
|
|
22
|
+
target: "es2022",
|
|
23
23
|
format: "cjs",
|
|
24
24
|
});
|
|
25
25
|
}
|
|
@@ -48,7 +48,8 @@ async function complex_build(watch: boolean): Promise<void> {
|
|
|
48
48
|
if (
|
|
49
49
|
path.endsWith(".ts") &&
|
|
50
50
|
!path.endsWith("src/back/collections.ts") &&
|
|
51
|
-
!path.endsWith("src/back/routes/routes.ts")
|
|
51
|
+
!path.endsWith("src/back/routes/routes.ts") &&
|
|
52
|
+
!path.endsWith("src/back/routes/urls.ts")
|
|
52
53
|
) {
|
|
53
54
|
await build_ts();
|
|
54
55
|
console.log(`Finished TS build [on ${path}]`);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Context } from "koa";
|
|
2
|
+
import { FlatTemplatable } from "tempstream";
|
|
3
|
+
import { FormControl } from "./controls";
|
|
4
|
+
|
|
5
|
+
export class HTML extends FormControl {
|
|
6
|
+
role = <const>"decoration";
|
|
7
|
+
|
|
8
|
+
constructor(public renderer: ((ctx: Context) => FlatTemplatable) | string) {
|
|
9
|
+
super();
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
async render(ctx: Context): Promise<FlatTemplatable> {
|
|
13
|
+
if (typeof this.renderer === "string") {
|
|
14
|
+
return this.renderer;
|
|
15
|
+
}
|
|
16
|
+
return this.renderer(ctx);
|
|
17
|
+
}
|
|
18
|
+
}
|
package/src/generate-routes.ts
CHANGED
|
@@ -46,6 +46,16 @@ export async function generateRoutes(): Promise<void> {
|
|
|
46
46
|
}))
|
|
47
47
|
);
|
|
48
48
|
|
|
49
|
+
await fs.writeFile(
|
|
50
|
+
target_locreq.resolve("src/back/routes/urls.ts"),
|
|
51
|
+
`${files
|
|
52
|
+
.map(
|
|
53
|
+
({ actionName, url }) =>
|
|
54
|
+
`export const ${actionName}URL = "${url}";`
|
|
55
|
+
)
|
|
56
|
+
.join("\n")}`
|
|
57
|
+
);
|
|
58
|
+
|
|
49
59
|
await fs.writeFile(
|
|
50
60
|
target_locreq.resolve("src/back/routes/routes.ts"),
|
|
51
61
|
`// DO NOT EDIT! This file is generated automaticaly with npm run generate-routes
|
|
@@ -54,6 +64,7 @@ import Koa, { Context } from "koa";
|
|
|
54
64
|
import Router from "@koa/router";
|
|
55
65
|
import { Middlewares } from "sealious";
|
|
56
66
|
import { Mountable } from "@sealcode/sealgen";
|
|
67
|
+
import * as URLs from "./urls"
|
|
57
68
|
|
|
58
69
|
${files
|
|
59
70
|
.map(
|
|
@@ -65,10 +76,6 @@ ${files
|
|
|
65
76
|
)
|
|
66
77
|
.join("\n")}
|
|
67
78
|
|
|
68
|
-
${files
|
|
69
|
-
.map(({ actionName, url }) => `export const ${actionName}URL = "${url}";`)
|
|
70
|
-
.join("\n")}
|
|
71
|
-
|
|
72
79
|
async function handleHtmlPromise(ctx: Context, next: Koa.Next) {
|
|
73
80
|
await next();
|
|
74
81
|
if (ctx.body instanceof Promise) {
|
|
@@ -94,11 +101,16 @@ function mount(router: Router, URL: string, mountable: Mountable) {
|
|
|
94
101
|
|
|
95
102
|
export default function mountAutoRoutes(router: Router) {
|
|
96
103
|
${files
|
|
97
|
-
.map(
|
|
104
|
+
.map(
|
|
105
|
+
({ actionName }) =>
|
|
106
|
+
` mount(router, URLs.${actionName}URL, ${actionName});`
|
|
107
|
+
)
|
|
98
108
|
.join("\n")}
|
|
99
109
|
}
|
|
100
110
|
`
|
|
101
111
|
);
|
|
102
112
|
// eslint-disable-next-line no-console
|
|
103
|
-
console.log(
|
|
113
|
+
console.log(
|
|
114
|
+
"Successfuly generated new src/back/routes/routes.ts and src/back/routes/urls.ts"
|
|
115
|
+
);
|
|
104
116
|
}
|
|
@@ -8,7 +8,7 @@ export function testTemplate(action_name: string, new_file_fullpath: string) {
|
|
|
8
8
|
import { LONG_TEST_TIMEOUT, webhintURL } from "${rel(
|
|
9
9
|
"src/back/test_utils/webhint"
|
|
10
10
|
)}";
|
|
11
|
-
import { ${action_name}URL } from "${rel("src/back/routes/
|
|
11
|
+
import { ${action_name}URL } from "${rel("src/back/routes/urls")}";
|
|
12
12
|
|
|
13
13
|
describe("${action_name}", () => {
|
|
14
14
|
it("doesn't crash", async function () {
|