@sealcode/sealgen 0.8.20 → 0.8.22
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/html.d.ts +3 -2
- package/lib/forms/controls/big-radio-group.js +1 -0
- package/lib/forms/controls/big-radio-group.js.map +1 -1
- package/lib/forms/controls/html.js +2 -2
- package/lib/forms/controls/html.js.map +1 -1
- package/lib/generate-routes.js +13 -1
- package/lib/generate-routes.js.map +1 -1
- package/package.json +1 -1
- package/src/forms/controls/big-radio-group.ts +1 -0
- package/src/forms/controls/html.ts +13 -6
- package/src/generate-routes.ts +17 -1
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { Context } from "koa";
|
|
2
2
|
import { FlatTemplatable } from "tempstream";
|
|
3
|
+
import { FormDataValue, FormMessage } from "../form";
|
|
3
4
|
import { FormControl } from "./controls";
|
|
4
|
-
declare type Renderer = ((ctx: Context) => FlatTemplatable) | FlatTemplatable;
|
|
5
|
+
declare type Renderer = ((ctx: Context, form_id: string) => FlatTemplatable) | FlatTemplatable;
|
|
5
6
|
export declare class HTML extends FormControl {
|
|
6
7
|
role: "decoration" | "submit";
|
|
7
8
|
renderer: Renderer;
|
|
8
9
|
constructor(role: "decoration" | "submit", renderer: Renderer);
|
|
9
10
|
constructor(renderer: Renderer);
|
|
10
|
-
render(ctx: Context): Promise<FlatTemplatable>;
|
|
11
|
+
render(ctx: Context, _data: Record<string, FormDataValue>, _messages: FormMessage[], _field_name_prefix: string, form_id: string): Promise<FlatTemplatable>;
|
|
11
12
|
}
|
|
12
13
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"big-radio-group.js","sourceRoot":"","sources":["../../../src/forms/controls/big-radio-group.ts"],"names":[],"mappings":";;;AACA,2CAAyD;AAGzD,6DAAwD;AAExD,MAAa,aAAc,SAAQ,qCAAgB;IAClD,YACQ,KAAgB,EAChB,OAcN;QAED,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAjBR,UAAK,GAAL,KAAK,CAAW;QAChB,YAAO,GAAP,OAAO,CAcb;IAGF,CAAC;IAED,KAAK,CAAC,MAAM,CACX,GAAY,EACZ,IAAmC,EACnC,QAAY,EACZ,iBAAyB,EACzB,OAAe,EACf,iBAA0B;QAE1B,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpE,OAAO,uBAAU,CAAA,UAAU,CAAC;KACzB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE;YAC7D,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,UAAU,GAAG,EAAE,CAAC;YAC7C,OAAO,uBAAU,CAAA,UAAU,CAAC;;cAElB,IAAI,CAAC,KAAK,CAAC,IAAI;eACd,GAAG;YACN,EAAE;;QAEN,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;QACrC,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;;;QAGrC,OAAO,WAAW,IAAI,UAAU;gBACjC,CAAC,CAAC,WAAW,CACX,GAAG,EACH,IAAI,EACJ,QAAQ,EACR,iBAAiB,EACjB,OAAO,EACP,iBAAiB,CAChB;gBACH,CAAC,CAAC,WAAW;0CACsB,EAAE;YAChC,CAAC;QACV,CAAC,CAAC;SACI,CAAC;IACT,CAAC;CACD;
|
|
1
|
+
{"version":3,"file":"big-radio-group.js","sourceRoot":"","sources":["../../../src/forms/controls/big-radio-group.ts"],"names":[],"mappings":";;;AACA,2CAAyD;AAGzD,6DAAwD;AAExD,MAAa,aAAc,SAAQ,qCAAgB;IAClD,YACQ,KAAgB,EAChB,OAcN;QAED,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAjBR,UAAK,GAAL,KAAK,CAAW;QAChB,YAAO,GAAP,OAAO,CAcb;IAGF,CAAC;IAED,KAAK,CAAC,MAAM,CACX,GAAY,EACZ,IAAmC,EACnC,QAAY,EACZ,iBAAyB,EACzB,OAAe,EACf,iBAA0B;QAE1B,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpE,OAAO,uBAAU,CAAA,UAAU,CAAC;KACzB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE;YAC7D,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,UAAU,GAAG,EAAE,CAAC;YAC7C,OAAO,uBAAU,CAAA,UAAU,CAAC;;cAElB,IAAI,CAAC,KAAK,CAAC,IAAI;eACd,GAAG;YACN,EAAE;;QAEN,OAAO,CAAC,CAAC,CAAC,QAAQ,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE;QAChC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;QACrC,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;;;QAGrC,OAAO,WAAW,IAAI,UAAU;gBACjC,CAAC,CAAC,WAAW,CACX,GAAG,EACH,IAAI,EACJ,QAAQ,EACR,iBAAiB,EACjB,OAAO,EACP,iBAAiB,CAChB;gBACH,CAAC,CAAC,WAAW;0CACsB,EAAE;YAChC,CAAC;QACV,CAAC,CAAC;SACI,CAAC;IACT,CAAC;CACD;AA5DD,sCA4DC"}
|
|
@@ -14,12 +14,12 @@ class HTML extends controls_1.FormControl {
|
|
|
14
14
|
this.renderer = role_or_renderer;
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
-
async render(ctx) {
|
|
17
|
+
async render(ctx, _data, _messages, _field_name_prefix, form_id) {
|
|
18
18
|
if (typeof this.renderer === "string") {
|
|
19
19
|
return this.renderer;
|
|
20
20
|
}
|
|
21
21
|
return typeof this.renderer == "function"
|
|
22
|
-
? this.renderer(ctx)
|
|
22
|
+
? this.renderer(ctx, form_id)
|
|
23
23
|
: this.renderer;
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../../src/forms/controls/html.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../../src/forms/controls/html.ts"],"names":[],"mappings":";;;AAGA,yCAAyC;AAMzC,MAAa,IAAK,SAAQ,sBAAW;IAMpC,YACC,gBAAoD,EACpD,qBAAkD;QAElD,KAAK,EAAE,CAAC;QATT,SAAI,GAAW,YAAwC,CAAC;QAUvD,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;YAC1B,IAAI,CAAC,IAAI,GAAG,gBAA2C,CAAC;YACxD,IAAI,CAAC,QAAQ,GAAG,qBAAiC,CAAC;SAClD;aAAM;YACN,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC;SACjC;IACF,CAAC;IAED,KAAK,CAAC,MAAM,CACX,GAAY,EACZ,KAAoC,EACpC,SAAwB,EACxB,kBAA0B,EAC1B,OAAe;QAEf,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;YACtC,OAAO,IAAI,CAAC,QAAQ,CAAC;SACrB;QACD,OAAO,OAAO,IAAI,CAAC,QAAQ,IAAI,UAAU;YACxC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;YAC7B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IAClB,CAAC;CACD;AAjCD,oBAiCC"}
|
package/lib/generate-routes.js
CHANGED
|
@@ -41,6 +41,18 @@ async function extractActionName(full_file_path) {
|
|
|
41
41
|
}
|
|
42
42
|
return ts_predicates_1.assertType(result[1], ts_predicates_1.predicates.string, "Missing export default class?");
|
|
43
43
|
}
|
|
44
|
+
function generateURL(url) {
|
|
45
|
+
const parts = url.split("/");
|
|
46
|
+
const params = parts
|
|
47
|
+
.filter((part) => part.startsWith(":"))
|
|
48
|
+
.map((part) => part.slice(1));
|
|
49
|
+
if (params.length === 0) {
|
|
50
|
+
return `"${url}"`;
|
|
51
|
+
}
|
|
52
|
+
return `(${params.map((s) => s + ": string").join(", ")})=>\`${parts
|
|
53
|
+
.map((part) => part.startsWith(":") ? "${" + part.slice(1) + "}" : part)
|
|
54
|
+
.join("/")}\``;
|
|
55
|
+
}
|
|
44
56
|
async function generateRoutes() {
|
|
45
57
|
const files = await Promise.all((await walk_1.walkDir(target_locreq.resolve("src/back/routes")))
|
|
46
58
|
.filter((f) => f.endsWith(".page.ts") ||
|
|
@@ -73,7 +85,7 @@ ${files
|
|
|
73
85
|
.join("\n")}
|
|
74
86
|
}`;
|
|
75
87
|
const urls_content = `${files
|
|
76
|
-
.map(({ actionName, url }) => `export const ${actionName}URL =
|
|
88
|
+
.map(({ actionName, url }) => `export const ${actionName}URL = ${generateURL(url)};`)
|
|
77
89
|
.join("\n")}
|
|
78
90
|
`;
|
|
79
91
|
const prettier_config = await prettier_1.getPrettierConfig();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-routes.js","sourceRoot":"","sources":["../src/generate-routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2BAAoC;AACpC,mDAAqC;AACrC,+BAAgC;AAChC,oDAA6B;AAC7B,uCAAuC;AACvC,qDAAiD;AACjD,2DAAiE;AACjE,iEAAgE;AAChE,+CAAqD;AAErD,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,mCAAmC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACtE,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,eAAe,CAAC;QAC3B,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QACtB,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC1B,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,cAAc,GAAG;;;;;;EAMtB,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;;;EAGV,KAAK;SACL,GAAG,CACH,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAClB,uBAAuB,UAAU,QAAQ,UAAU,IAAI,CACxD;SACA,IAAI,CAAC,IAAI,CAAC;EACV,CAAC;IAEF,MAAM,YAAY,GAAG,GAAG,KAAK;SAC3B,GAAG,CACH,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"generate-routes.js","sourceRoot":"","sources":["../src/generate-routes.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { Context } from "koa";
|
|
2
2
|
import { FlatTemplatable } from "tempstream";
|
|
3
|
+
import { FormDataValue, FormMessage } from "../form";
|
|
3
4
|
import { FormControl } from "./controls";
|
|
4
5
|
|
|
5
|
-
type Renderer =
|
|
6
|
+
type Renderer =
|
|
7
|
+
| ((ctx: Context, form_id: string) => FlatTemplatable)
|
|
8
|
+
| FlatTemplatable;
|
|
6
9
|
|
|
7
10
|
export class HTML extends FormControl {
|
|
8
11
|
role = (<const>"decoration") as "decoration" | "submit";
|
|
@@ -12,9 +15,7 @@ export class HTML extends FormControl {
|
|
|
12
15
|
constructor(renderer: Renderer);
|
|
13
16
|
constructor(
|
|
14
17
|
role_or_renderer: "decoration" | "submit" | Renderer,
|
|
15
|
-
renderer_or_undefined?:
|
|
16
|
-
| ((ctx: Context) => FlatTemplatable)
|
|
17
|
-
| FlatTemplatable
|
|
18
|
+
renderer_or_undefined?: Renderer | FlatTemplatable
|
|
18
19
|
) {
|
|
19
20
|
super();
|
|
20
21
|
if (arguments.length == 2) {
|
|
@@ -25,12 +26,18 @@ export class HTML extends FormControl {
|
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
28
|
|
|
28
|
-
async render(
|
|
29
|
+
async render(
|
|
30
|
+
ctx: Context,
|
|
31
|
+
_data: Record<string, FormDataValue>,
|
|
32
|
+
_messages: FormMessage[],
|
|
33
|
+
_field_name_prefix: string,
|
|
34
|
+
form_id: string
|
|
35
|
+
): Promise<FlatTemplatable> {
|
|
29
36
|
if (typeof this.renderer === "string") {
|
|
30
37
|
return this.renderer;
|
|
31
38
|
}
|
|
32
39
|
return typeof this.renderer == "function"
|
|
33
|
-
? this.renderer(ctx)
|
|
40
|
+
? this.renderer(ctx, form_id)
|
|
34
41
|
: this.renderer;
|
|
35
42
|
}
|
|
36
43
|
}
|
package/src/generate-routes.ts
CHANGED
|
@@ -23,6 +23,21 @@ async function extractActionName(full_file_path: string): Promise<string> {
|
|
|
23
23
|
);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
function generateURL(url: string) {
|
|
27
|
+
const parts = url.split("/");
|
|
28
|
+
const params = parts
|
|
29
|
+
.filter((part) => part.startsWith(":"))
|
|
30
|
+
.map((part) => part.slice(1));
|
|
31
|
+
if (params.length === 0) {
|
|
32
|
+
return `"${url}"`;
|
|
33
|
+
}
|
|
34
|
+
return `(${params.map((s) => s + ": string").join(", ")})=>\`${parts
|
|
35
|
+
.map((part) =>
|
|
36
|
+
part.startsWith(":") ? "${" + part.slice(1) + "}" : part
|
|
37
|
+
)
|
|
38
|
+
.join("/")}\``;
|
|
39
|
+
}
|
|
40
|
+
|
|
26
41
|
export async function generateRoutes(): Promise<void> {
|
|
27
42
|
const files = await Promise.all(
|
|
28
43
|
(
|
|
@@ -78,7 +93,8 @@ ${files
|
|
|
78
93
|
|
|
79
94
|
const urls_content = `${files
|
|
80
95
|
.map(
|
|
81
|
-
({ actionName, url }) =>
|
|
96
|
+
({ actionName, url }) =>
|
|
97
|
+
`export const ${actionName}URL = ${generateURL(url)};`
|
|
82
98
|
)
|
|
83
99
|
.join("\n")}
|
|
84
100
|
`;
|