@sealcode/sealgen 0.3.1 → 0.3.2
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/index.d.ts +1 -0
- package/@types/templates/page.d.ts +1 -1
- package/lib/build.js +11 -3
- package/lib/build.js.map +1 -1
- package/lib/generate-routes.js +10 -3
- package/lib/generate-routes.js.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/templates/form.js +10 -5
- package/lib/templates/form.js.map +1 -1
- package/lib/templates/list.js +2 -2
- package/lib/templates/list.js.map +1 -1
- package/lib/templates/page.js +5 -4
- package/lib/templates/page.js.map +1 -1
- package/lib/utils/escape-url-params.js +1 -0
- package/lib/utils/escape-url-params.js.map +1 -1
- package/package.json +1 -1
- package/src/build.ts +13 -3
- package/src/generate-routes.ts +10 -7
- package/src/index.ts +1 -0
- package/src/templates/form.ts +10 -5
- package/src/templates/list.ts +2 -2
- package/src/templates/page.ts +6 -6
- package/src/utils/escape-url-params.ts +1 -0
package/@types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function pageTemplate(action_name: string,
|
|
1
|
+
export declare function pageTemplate(action_name: string, newfilefullpath: string): Promise<string>;
|
package/lib/build.js
CHANGED
|
@@ -29,8 +29,14 @@ const chokidar = __importStar(require("chokidar"));
|
|
|
29
29
|
const tiny_glob_1 = __importDefault(require("tiny-glob"));
|
|
30
30
|
const find_scss_includes_1 = require("./find-scss-includes");
|
|
31
31
|
const sleep_1 = require("./utils/sleep");
|
|
32
|
+
const generate_collections_1 = require("./generate-collections");
|
|
33
|
+
const generate_routes_1 = require("./generate-routes");
|
|
32
34
|
async function build_ts() {
|
|
33
|
-
const entryPoints = await
|
|
35
|
+
const [entryPoints] = await Promise.all([
|
|
36
|
+
tiny_glob_1.default("./src/back/**/*.ts"),
|
|
37
|
+
generate_collections_1.generateCollections(),
|
|
38
|
+
generate_routes_1.generateRoutes(),
|
|
39
|
+
]);
|
|
34
40
|
await esbuild_1.build({
|
|
35
41
|
entryPoints,
|
|
36
42
|
sourcemap: true,
|
|
@@ -64,9 +70,11 @@ async function complex_build(watch) {
|
|
|
64
70
|
.catch((e) => console.error(e?.message));
|
|
65
71
|
}
|
|
66
72
|
}
|
|
67
|
-
if (path.endsWith(".ts")
|
|
73
|
+
if (path.endsWith(".ts") &&
|
|
74
|
+
!path.endsWith("src/back/collections.ts") &&
|
|
75
|
+
!path.endsWith("src/back/routes/routes.ts")) {
|
|
68
76
|
await build_ts();
|
|
69
|
-
console.log(`Finished TS
|
|
77
|
+
console.log(`Finished TS build [on ${path}]`);
|
|
70
78
|
}
|
|
71
79
|
});
|
|
72
80
|
}
|
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;
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}
|
package/lib/generate-routes.js
CHANGED
|
@@ -37,6 +37,7 @@ async function generateRoutes() {
|
|
|
37
37
|
|
|
38
38
|
import Router from "@koa/router";
|
|
39
39
|
import { Middlewares } from "sealious";
|
|
40
|
+
import { Mountable } from "@sealcode/sealgen";
|
|
40
41
|
|
|
41
42
|
${files
|
|
42
43
|
.map(({ actionName, fullpath }) => `import { default as ${actionName} } from "${import_path_1.importPath(target_locreq.resolve("src/back/routes/routes.ts"), fullpath)}";`)
|
|
@@ -46,11 +47,17 @@ ${files
|
|
|
46
47
|
.map(({ actionName, url }) => `export const ${actionName}URL = "${url}";`)
|
|
47
48
|
.join("\n")}
|
|
48
49
|
|
|
50
|
+
function mount(router: Router, URL: string, mountable: Mountable){
|
|
51
|
+
router.use(URL, Middlewares.extractContext(), Middlewares.parseBody());
|
|
52
|
+
mountable.mount(router, URL);
|
|
53
|
+
// to automatically add trailing slashes:
|
|
54
|
+
router.get(URL.slice(0, -1), (ctx) => ctx.redirect(URL));
|
|
55
|
+
}
|
|
56
|
+
|
|
49
57
|
export default function mountAutoRoutes(router: Router) {
|
|
50
58
|
${files
|
|
51
|
-
.map(({ actionName
|
|
52
|
-
|
|
53
|
-
.join("\n\n")}
|
|
59
|
+
.map(({ actionName }) => ` mount(router, ${actionName}URL, ${actionName});`)
|
|
60
|
+
.join("\n")}
|
|
54
61
|
}
|
|
55
62
|
`);
|
|
56
63
|
// eslint-disable-next-line no-console
|
|
@@ -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,2BAA2B,CAAC,EAClD
|
|
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,2BAA2B,CAAC,EAClD;;;;;;EAMA,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;;EAEV,KAAK;SACL,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,gBAAgB,UAAU,UAAU,GAAG,IAAI,CAAC;SACzE,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;EAUV,KAAK;SACL,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,kBAAkB,UAAU,QAAQ,UAAU,IAAI,CAAC;SAC3E,IAAI,CAAC,IAAI,CAAC;;CAEX,CACC,CAAC;IACF,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;AACzE,CAAC;AA/DD,wCA+DC"}
|
package/lib/index.js
CHANGED
|
@@ -17,4 +17,5 @@ __exportStar(require("./page/page"), exports);
|
|
|
17
17
|
__exportStar(require("./page/props-parser"), exports);
|
|
18
18
|
__exportStar(require("./utils/utils"), exports);
|
|
19
19
|
__exportStar(require("./forms/validator"), exports);
|
|
20
|
+
__exportStar(require("./page/list"), exports);
|
|
20
21
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AASA,+CAA6B;AAC7B,4DAA0C;AAC1C,gDAA8B;AAC9B,8CAA4B;AAC5B,sDAAoC;AACpC,gDAA8B;AAC9B,oDAAkC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AASA,+CAA6B;AAC7B,4DAA0C;AAC1C,gDAA8B;AAC9B,8CAA4B;AAC5B,sDAAoC;AACpC,gDAA8B;AAC9B,oDAAkC;AAClC,8CAA4B"}
|
package/lib/templates/form.js
CHANGED
|
@@ -5,11 +5,16 @@ const import_path_1 = require("../utils/import-path");
|
|
|
5
5
|
async function formTemplate(action_name, newfilefullpath) {
|
|
6
6
|
const rel = import_path_1.curryImportPath(newfilefullpath);
|
|
7
7
|
return `import { BaseContext } from "koa";
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
import {
|
|
9
|
+
Form,
|
|
10
|
+
FormData,
|
|
11
|
+
FormHeader,
|
|
12
|
+
SimpleInput,
|
|
13
|
+
FormField,
|
|
14
|
+
collectionFieldValidator,
|
|
15
|
+
} from "@sealcode/sealgen";
|
|
16
|
+
|
|
17
|
+
import { Users } from "${rel("src/back/collections/collections")}";
|
|
13
18
|
import html from "${rel("src/back/html")}";
|
|
14
19
|
|
|
15
20
|
export const actionName = "${action_name}";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.js","sourceRoot":"","sources":["../../src/templates/form.ts"],"names":[],"mappings":";;;AAAA,sDAAuD;AAEhD,KAAK,UAAU,YAAY,CACjC,WAAmB,EACnB,eAAuB;IAEvB,MAAM,GAAG,GAAG,6BAAe,CAAC,eAAe,CAAC,CAAC;IAC7C,OAAO
|
|
1
|
+
{"version":3,"file":"form.js","sourceRoot":"","sources":["../../src/templates/form.ts"],"names":[],"mappings":";;;AAAA,sDAAuD;AAEhD,KAAK,UAAU,YAAY,CACjC,WAAmB,EACnB,eAAuB;IAEvB,MAAM,GAAG,GAAG,6BAAe,CAAC,eAAe,CAAC,CAAC;IAC7C,OAAO;;;;;;;;;;yBAUiB,GAAG,CAAC,kCAAkC,CAAC;oBAC5C,GAAG,CAAC,eAAe,CAAC;;6BAEX,WAAW;;2BAEb,WAAW;;;;;;;;;;;;;;;;;;;;;;;sBAuBhB,WAAW;;;CAGhC,CAAC;AACF,CAAC;AA/CD,oCA+CC"}
|
package/lib/templates/list.js
CHANGED
|
@@ -27,8 +27,8 @@ import {
|
|
|
27
27
|
BaseListPageProps,
|
|
28
28
|
BaseListPagePropsShape,
|
|
29
29
|
SealiousItemListPage,
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
AllQueryParams,
|
|
31
|
+
} from "@sealcode/sealgen";
|
|
32
32
|
|
|
33
33
|
export const actionName = "${action_name}";
|
|
34
34
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/templates/list.ts"],"names":[],"mappings":";;;AAAA,sDAAuD;AACvD,mCAAoC;AACpC,gEAA4D;AAErD,MAAM,YAAY,GAAG,KAAK,EAChC,WAAmB,EACnB,eAAuB,EACL,EAAE;IACpB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC;QAC9B,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,gDAAgD;QACzD,OAAO,EAAE,CACR,MAAM,kCAAe,EAAE,CACvB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACtB,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE,UAAU;SACjB,CAAC,CAAC;KACH,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAoB,CAAC;IACjD,MAAM,oBAAoB,GACzB,UAAU,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,GAAG,GAAG,6BAAe,CAAC,eAAe,CAAC,CAAC;IAC7C,OAAO;;;WAGG,oBAAoB,YAAY,GAAG,CAC5C,kCAAkC,CAClC;oBACkB,GAAG,CAAC,kBAAkB,CAAC
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/templates/list.ts"],"names":[],"mappings":";;;AAAA,sDAAuD;AACvD,mCAAoC;AACpC,gEAA4D;AAErD,MAAM,YAAY,GAAG,KAAK,EAChC,WAAmB,EACnB,eAAuB,EACL,EAAE;IACpB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC;QAC9B,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,gDAAgD;QACzD,OAAO,EAAE,CACR,MAAM,kCAAe,EAAE,CACvB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACtB,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE,UAAU;SACjB,CAAC,CAAC;KACH,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAoB,CAAC;IACjD,MAAM,oBAAoB,GACzB,UAAU,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,GAAG,GAAG,6BAAe,CAAC,eAAe,CAAC,CAAC;IAC7C,OAAO;;;WAGG,oBAAoB,YAAY,GAAG,CAC5C,kCAAkC,CAClC;oBACkB,GAAG,CAAC,kBAAkB,CAAC;;;;;;;;;6BASd,WAAW;;4BAEZ,WAAW,4CAA4C,oBAAoB;;;;;;;;;eASxF,oBAAoB;;sBAEb,oBAAoB;;;;;;;;mEAQyB,oBAAoB;;;KAGlF,oBAAoB;CACxB,CAAC;AACF,CAAC,CAAC;AA5DW,QAAA,YAAY,gBA4DvB"}
|
package/lib/templates/page.js
CHANGED
|
@@ -2,22 +2,23 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.pageTemplate = void 0;
|
|
4
4
|
const import_path_1 = require("../utils/import-path");
|
|
5
|
-
async function pageTemplate(action_name,
|
|
5
|
+
async function pageTemplate(action_name, newfilefullpath) {
|
|
6
|
+
const rel = import_path_1.curryImportPath(newfilefullpath);
|
|
6
7
|
return `import { BaseContext } from "koa";
|
|
7
8
|
import { tempstream } from "tempstream";
|
|
8
|
-
import { Page } from "
|
|
9
|
+
import { Page } from "@sealcode/sealgen";
|
|
10
|
+
import html from "${rel("src/back/html")}";
|
|
9
11
|
|
|
10
12
|
export const actionName = "${action_name}";
|
|
11
13
|
|
|
12
14
|
export default new (class ${action_name}Page extends Page {
|
|
13
|
-
|
|
14
15
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
15
16
|
async canAccess(_: BaseContext) {
|
|
16
17
|
return { canAccess: true, message: "" };
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
async render(ctx: BaseContext) {
|
|
20
|
-
return tempstream/* HTML */ \`<div></div
|
|
21
|
+
return html(ctx, "${action_name}", tempstream/* HTML */ \`<div></div>\`);
|
|
21
22
|
}
|
|
22
23
|
})();
|
|
23
24
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/templates/page.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/templates/page.ts"],"names":[],"mappings":";;;AAAA,sDAAuD;AAChD,KAAK,UAAU,YAAY,CACjC,WAAmB,EACnB,eAAuB;IAEvB,MAAM,GAAG,GAAG,6BAAe,CAAC,eAAe,CAAC,CAAC;IAC7C,OAAO;;;oBAGY,GAAG,CAAC,eAAe,CAAC;;6BAEX,WAAW;;4BAEZ,WAAW;;;;;;;sBAOjB,WAAW;;;CAGhC,CAAC;AACF,CAAC;AAvBD,oCAuBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"escape-url-params.js","sourceRoot":"","sources":["../../src/utils/escape-url-params.ts"],"names":[],"mappings":";;;AAAA,SAAgB,iBAAiB,CAAC,GAAW;IAC5C,OAAO,GAAG;SACR,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACvD,IAAI,CAAC,GAAG,CAAC,CAAC;AACb,CAAC;
|
|
1
|
+
{"version":3,"file":"escape-url-params.js","sourceRoot":"","sources":["../../src/utils/escape-url-params.ts"],"names":[],"mappings":";;;AAAA,SAAgB,iBAAiB,CAAC,GAAW;IAC5C,OAAO,GAAG;SACR,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACvD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;SACtB,IAAI,CAAC,GAAG,CAAC,CAAC;AACb,CAAC;AAND,8CAMC;AAED,SAAgB,mBAAmB,CAAC,GAAW;IAC9C,OAAO,GAAG;SACR,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACpE,IAAI,CAAC,GAAG,CAAC,CAAC;AACb,CAAC;AALD,kDAKC"}
|
package/package.json
CHANGED
package/src/build.ts
CHANGED
|
@@ -4,9 +4,15 @@ import * as chokidar from "chokidar";
|
|
|
4
4
|
import { default as glob } from "tiny-glob";
|
|
5
5
|
import { generateScssIncludes } from "./find-scss-includes";
|
|
6
6
|
import { sleep } from "./utils/sleep";
|
|
7
|
+
import { generateCollections } from "./generate-collections";
|
|
8
|
+
import { generateRoutes } from "./generate-routes";
|
|
7
9
|
|
|
8
10
|
async function build_ts() {
|
|
9
|
-
const entryPoints = await
|
|
11
|
+
const [entryPoints] = await Promise.all([
|
|
12
|
+
glob("./src/back/**/*.ts"),
|
|
13
|
+
generateCollections(),
|
|
14
|
+
generateRoutes(),
|
|
15
|
+
]);
|
|
10
16
|
await build({
|
|
11
17
|
entryPoints,
|
|
12
18
|
sourcemap: true,
|
|
@@ -39,9 +45,13 @@ async function complex_build(watch: boolean): Promise<void> {
|
|
|
39
45
|
.catch((e) => console.error(e?.message));
|
|
40
46
|
}
|
|
41
47
|
}
|
|
42
|
-
if (
|
|
48
|
+
if (
|
|
49
|
+
path.endsWith(".ts") &&
|
|
50
|
+
!path.endsWith("src/back/collections.ts") &&
|
|
51
|
+
!path.endsWith("src/back/routes/routes.ts")
|
|
52
|
+
) {
|
|
43
53
|
await build_ts();
|
|
44
|
-
console.log(`Finished TS
|
|
54
|
+
console.log(`Finished TS build [on ${path}]`);
|
|
45
55
|
}
|
|
46
56
|
});
|
|
47
57
|
}
|
package/src/generate-routes.ts
CHANGED
|
@@ -52,6 +52,7 @@ export async function generateRoutes(): Promise<void> {
|
|
|
52
52
|
|
|
53
53
|
import Router from "@koa/router";
|
|
54
54
|
import { Middlewares } from "sealious";
|
|
55
|
+
import { Mountable } from "@sealcode/sealgen";
|
|
55
56
|
|
|
56
57
|
${files
|
|
57
58
|
.map(
|
|
@@ -67,15 +68,17 @@ ${files
|
|
|
67
68
|
.map(({ actionName, url }) => `export const ${actionName}URL = "${url}";`)
|
|
68
69
|
.join("\n")}
|
|
69
70
|
|
|
71
|
+
function mount(router: Router, URL: string, mountable: Mountable){
|
|
72
|
+
router.use(URL, Middlewares.extractContext(), Middlewares.parseBody());
|
|
73
|
+
mountable.mount(router, URL);
|
|
74
|
+
// to automatically add trailing slashes:
|
|
75
|
+
router.get(URL.slice(0, -1), (ctx) => ctx.redirect(URL));
|
|
76
|
+
}
|
|
77
|
+
|
|
70
78
|
export default function mountAutoRoutes(router: Router) {
|
|
71
79
|
${files
|
|
72
|
-
.map(
|
|
73
|
-
|
|
74
|
-
actionName,
|
|
75
|
-
}) => ` router.use(${actionName}URL, Middlewares.extractContext(), Middlewares.parseBody());
|
|
76
|
-
${actionName}.mount(router, ${actionName}URL);`
|
|
77
|
-
)
|
|
78
|
-
.join("\n\n")}
|
|
80
|
+
.map(({ actionName }) => ` mount(router, ${actionName}URL, ${actionName});`)
|
|
81
|
+
.join("\n")}
|
|
79
82
|
}
|
|
80
83
|
`
|
|
81
84
|
);
|
package/src/index.ts
CHANGED
package/src/templates/form.ts
CHANGED
|
@@ -6,11 +6,16 @@ export async function formTemplate(
|
|
|
6
6
|
): Promise<string> {
|
|
7
7
|
const rel = curryImportPath(newfilefullpath);
|
|
8
8
|
return `import { BaseContext } from "koa";
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
import {
|
|
10
|
+
Form,
|
|
11
|
+
FormData,
|
|
12
|
+
FormHeader,
|
|
13
|
+
SimpleInput,
|
|
14
|
+
FormField,
|
|
15
|
+
collectionFieldValidator,
|
|
16
|
+
} from "@sealcode/sealgen";
|
|
17
|
+
|
|
18
|
+
import { Users } from "${rel("src/back/collections/collections")}";
|
|
14
19
|
import html from "${rel("src/back/html")}";
|
|
15
20
|
|
|
16
21
|
export const actionName = "${action_name}";
|
package/src/templates/list.ts
CHANGED
|
@@ -33,8 +33,8 @@ import {
|
|
|
33
33
|
BaseListPageProps,
|
|
34
34
|
BaseListPagePropsShape,
|
|
35
35
|
SealiousItemListPage,
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
AllQueryParams,
|
|
37
|
+
} from "@sealcode/sealgen";
|
|
38
38
|
|
|
39
39
|
export const actionName = "${action_name}";
|
|
40
40
|
|
package/src/templates/page.ts
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { curryImportPath } from "../utils/import-path";
|
|
3
2
|
export async function pageTemplate(
|
|
4
3
|
action_name: string,
|
|
5
|
-
|
|
4
|
+
newfilefullpath: string
|
|
6
5
|
): Promise<string> {
|
|
6
|
+
const rel = curryImportPath(newfilefullpath);
|
|
7
7
|
return `import { BaseContext } from "koa";
|
|
8
8
|
import { tempstream } from "tempstream";
|
|
9
|
-
import { Page } from "
|
|
9
|
+
import { Page } from "@sealcode/sealgen";
|
|
10
|
+
import html from "${rel("src/back/html")}";
|
|
10
11
|
|
|
11
12
|
export const actionName = "${action_name}";
|
|
12
13
|
|
|
13
14
|
export default new (class ${action_name}Page extends Page {
|
|
14
|
-
|
|
15
15
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
16
16
|
async canAccess(_: BaseContext) {
|
|
17
17
|
return { canAccess: true, message: "" };
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
async render(ctx: BaseContext) {
|
|
21
|
-
return tempstream/* HTML */ \`<div></div
|
|
21
|
+
return html(ctx, "${action_name}", tempstream/* HTML */ \`<div></div>\`);
|
|
22
22
|
}
|
|
23
23
|
})();
|
|
24
24
|
`;
|