@sealcode/sealgen 0.8.22 → 0.8.24

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/mount.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  /// <reference types="koa__router" />
2
2
  import Router from "@koa/router";
3
3
  import { Mountable } from "./page/mountable";
4
- export declare function mount(router: Router, url: string, mountable: Mountable): void;
4
+ export declare function mount(router: Router, url: string | {
5
+ rawURL: string;
6
+ }, mountable: Mountable): void;
File without changes
@@ -41,17 +41,23 @@ 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) {
44
+ function generateURL(actionName, url) {
45
45
  const parts = url.split("/");
46
46
  const params = parts
47
47
  .filter((part) => part.startsWith(":"))
48
48
  .map((part) => part.slice(1));
49
49
  if (params.length === 0) {
50
- return `"${url}"`;
50
+ return `export const ${actionName}URL = "${url}";`;
51
51
  }
52
- return `(${params.map((s) => s + ": string").join(", ")})=>\`${parts
52
+ return `export const ${actionName}URL = (${params
53
+ .map((s) => s + ": string")
54
+ .join(", ")})=>\`${parts
53
55
  .map((part) => part.startsWith(":") ? "${" + part.slice(1) + "}" : part)
54
- .join("/")}\``;
56
+ .join("/")}\`;
57
+ ${actionName}URL.params = [${params
58
+ .map((param) => `"${param}"`)
59
+ .join(",")}];
60
+ ${actionName}URL.rawURL = "${url}";`;
55
61
  }
56
62
  async function generateRoutes() {
57
63
  const files = await Promise.all((await walk_1.walkDir(target_locreq.resolve("src/back/routes")))
@@ -85,7 +91,8 @@ ${files
85
91
  .join("\n")}
86
92
  }`;
87
93
  const urls_content = `${files
88
- .map(({ actionName, url }) => `export const ${actionName}URL = ${generateURL(url)};`)
94
+ .sort(({ url: url1 }, { url: url2 }) => (url1 < url2 ? -1 : 1))
95
+ .map(({ actionName, url }) => generateURL(actionName, url))
89
96
  .join("\n")}
90
97
  `;
91
98
  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;AAED,SAAS,WAAW,CAAC,GAAW;IAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,KAAK;SAClB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SACtC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,IAAI,GAAG,GAAG,CAAC;KAClB;IACD,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK;SAClE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACb,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CACxD;SACA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACjB,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,CACvB,gBAAgB,UAAU,SAAS,WAAW,CAAC,GAAG,CAAC,GAAG,CACvD;SACA,IAAI,CAAC,IAAI,CAAC;CACZ,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,4BAAiB,EAAE,CAAC;IAClD,MAAM,aAAE,CAAC,SAAS,CACjB,aAAa,CAAC,OAAO,CAAC,2BAA2B,CAAC,EAClD,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,CAChD,CAAC;IAEF,MAAM,aAAE,CAAC,SAAS,CACjB,aAAa,CAAC,OAAO,CAAC,yBAAyB,CAAC,EAChD,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,CAC9C,CAAC;IACF,sCAAsC;IACtC,OAAO,CAAC,GAAG,CACV,iFAAiF,CACjF,CAAC;AACH,CAAC;AA3ED,wCA2EC"}
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;AAED,SAAS,WAAW,CAAC,UAAkB,EAAE,GAAW;IACnD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,KAAK;SAClB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SACtC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,gBAAgB,UAAU,UAAU,GAAG,IAAI,CAAC;KACnD;IACD,OAAO,gBAAgB,UAAU,UAAU,MAAM;SAC/C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC;SAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK;SACvB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACb,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CACxD;SACA,IAAI,CAAC,GAAG,CAAC;UACF,UAAU,iBAAiB,MAAM;SACxC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC;SAC5B,IAAI,CAAC,GAAG,CAAC;UACF,UAAU,iBAAiB,GAAG,IAAI,CAAC;AAC7C,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,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9D,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;SAC1D,IAAI,CAAC,IAAI,CAAC;CACZ,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,4BAAiB,EAAE,CAAC;IAClD,MAAM,aAAE,CAAC,SAAS,CACjB,aAAa,CAAC,OAAO,CAAC,2BAA2B,CAAC,EAClD,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,CAChD,CAAC;IAEF,MAAM,aAAE,CAAC,SAAS,CACjB,aAAa,CAAC,OAAO,CAAC,yBAAyB,CAAC,EAChD,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,CAC9C,CAAC;IACF,sCAAsC;IACtC,OAAO,CAAC,GAAG,CACV,iFAAiF,CACjF,CAAC;AACH,CAAC;AAzED,wCAyEC"}
package/lib/mount.js CHANGED
@@ -11,10 +11,11 @@ async function handleHtmlPromise(ctx, next) {
11
11
  ctx.set("content-type", "text/html;charset=utf-8");
12
12
  }
13
13
  function mount(router, url, mountable) {
14
- router.use(url, sealious_1.Middlewares.extractContext(), sealious_1.Middlewares.parseBody(), handleHtmlPromise);
14
+ const raw_url = typeof url === "string" ? url : url.rawURL;
15
+ router.use(raw_url, sealious_1.Middlewares.extractContext(), sealious_1.Middlewares.parseBody(), handleHtmlPromise);
15
16
  mountable.init();
16
17
  // to automatically add trailing slashes:
17
- router.get(url.slice(0, -1), async (ctx, next) => {
18
+ router.get(raw_url.slice(0, -1), async (ctx, next) => {
18
19
  const url2 = ctx.URL;
19
20
  if (!url2.pathname.endsWith("/")) {
20
21
  url2.pathname += "/";
@@ -22,7 +23,7 @@ function mount(router, url, mountable) {
22
23
  }
23
24
  await next();
24
25
  });
25
- router.use(url, async (ctx, next) => {
26
+ router.use(raw_url, async (ctx, next) => {
26
27
  ctx.set("content-type", "text/html;charset=utf-8");
27
28
  const access_result = await mountable.canAccess(ctx);
28
29
  if (!access_result.canAccess) {
@@ -32,7 +33,7 @@ function mount(router, url, mountable) {
32
33
  }
33
34
  await next();
34
35
  });
35
- mountable.mount(router, url);
36
+ mountable.mount(router, raw_url);
36
37
  }
37
38
  exports.mount = mount;
38
39
  //# sourceMappingURL=mount.js.map
package/lib/mount.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mount.js","sourceRoot":"","sources":["../src/mount.ts"],"names":[],"mappings":";;;AAEA,uCAAuC;AAGvC,KAAK,UAAU,iBAAiB,CAAC,GAAY,EAAE,IAAc;IAC5D,MAAM,IAAI,EAAE,CAAC;IACb,IAAI,GAAG,CAAC,IAAI,YAAY,OAAO,EAAE;QAChC,mEAAmE;QACnE,GAAG,CAAC,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC;KAC1B;IACD,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,yBAAyB,CAAC,CAAC;AACpD,CAAC;AAED,SAAgB,KAAK,CAAC,MAAc,EAAE,GAAW,EAAE,SAAoB;IACtE,MAAM,CAAC,GAAG,CACT,GAAG,EACH,sBAAW,CAAC,cAAc,EAAE,EAC5B,sBAAW,CAAC,SAAS,EAAE,EACvB,iBAAiB,CACjB,CAAC;IACF,SAAS,CAAC,IAAI,EAAE,CAAC;IAEjB,yCAAyC;IACzC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAChD,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACjC,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC;YACrB,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC9B;QACD,MAAM,IAAI,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACnC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,yBAAyB,CAAC,CAAC;QACnD,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;YAC7B,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;YACjB,GAAG,CAAC,IAAI,GAAG,aAAa,CAAC,OAAO,IAAI,WAAW,CAAC;YAChD,OAAO;SACP;QACD,MAAM,IAAI,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC9B,CAAC;AA/BD,sBA+BC"}
1
+ {"version":3,"file":"mount.js","sourceRoot":"","sources":["../src/mount.ts"],"names":[],"mappings":";;;AAEA,uCAAuC;AAGvC,KAAK,UAAU,iBAAiB,CAAC,GAAY,EAAE,IAAc;IAC5D,MAAM,IAAI,EAAE,CAAC;IACb,IAAI,GAAG,CAAC,IAAI,YAAY,OAAO,EAAE;QAChC,mEAAmE;QACnE,GAAG,CAAC,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC;KAC1B;IACD,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,yBAAyB,CAAC,CAAC;AACpD,CAAC;AAED,SAAgB,KAAK,CACpB,MAAc,EACd,GAAgC,EAChC,SAAoB;IAEpB,MAAM,OAAO,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;IAC3D,MAAM,CAAC,GAAG,CACT,OAAO,EACP,sBAAW,CAAC,cAAc,EAAE,EAC5B,sBAAW,CAAC,SAAS,EAAE,EACvB,iBAAiB,CACjB,CAAC;IACF,SAAS,CAAC,IAAI,EAAE,CAAC;IAEjB,yCAAyC;IACzC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACjC,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC;YACrB,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC9B;QACD,MAAM,IAAI,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACvC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,yBAAyB,CAAC,CAAC;QACnD,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;YAC7B,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;YACjB,GAAG,CAAC,IAAI,GAAG,aAAa,CAAC,OAAO,IAAI,WAAW,CAAC;YAChD,OAAO;SACP;QACD,MAAM,IAAI,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC;AApCD,sBAoCC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=sealgen-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sealgen-url.js","sourceRoot":"","sources":["../src/sealgen-url.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sealcode/sealgen",
3
- "version": "0.8.22",
3
+ "version": "0.8.24",
4
4
  "description": "Module to automate adding routes and collections to a sealious application",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -23,19 +23,25 @@ async function extractActionName(full_file_path: string): Promise<string> {
23
23
  );
24
24
  }
25
25
 
26
- function generateURL(url: string) {
26
+ function generateURL(actionName: string, url: string) {
27
27
  const parts = url.split("/");
28
28
  const params = parts
29
29
  .filter((part) => part.startsWith(":"))
30
30
  .map((part) => part.slice(1));
31
31
  if (params.length === 0) {
32
- return `"${url}"`;
32
+ return `export const ${actionName}URL = "${url}";`;
33
33
  }
34
- return `(${params.map((s) => s + ": string").join(", ")})=>\`${parts
34
+ return `export const ${actionName}URL = (${params
35
+ .map((s) => s + ": string")
36
+ .join(", ")})=>\`${parts
35
37
  .map((part) =>
36
38
  part.startsWith(":") ? "${" + part.slice(1) + "}" : part
37
39
  )
38
- .join("/")}\``;
40
+ .join("/")}\`;
41
+ ${actionName}URL.params = [${params
42
+ .map((param) => `"${param}"`)
43
+ .join(",")}];
44
+ ${actionName}URL.rawURL = "${url}";`;
39
45
  }
40
46
 
41
47
  export async function generateRoutes(): Promise<void> {
@@ -92,10 +98,8 @@ ${files
92
98
  }`;
93
99
 
94
100
  const urls_content = `${files
95
- .map(
96
- ({ actionName, url }) =>
97
- `export const ${actionName}URL = ${generateURL(url)};`
98
- )
101
+ .sort(({ url: url1 }, { url: url2 }) => (url1 < url2 ? -1 : 1))
102
+ .map(({ actionName, url }) => generateURL(actionName, url))
99
103
  .join("\n")}
100
104
  `;
101
105
 
package/src/mount.ts CHANGED
@@ -12,9 +12,14 @@ async function handleHtmlPromise(ctx: Context, next: Koa.Next) {
12
12
  ctx.set("content-type", "text/html;charset=utf-8");
13
13
  }
14
14
 
15
- export function mount(router: Router, url: string, mountable: Mountable): void {
15
+ export function mount(
16
+ router: Router,
17
+ url: string | { rawURL: string },
18
+ mountable: Mountable
19
+ ): void {
20
+ const raw_url = typeof url === "string" ? url : url.rawURL;
16
21
  router.use(
17
- url,
22
+ raw_url,
18
23
  Middlewares.extractContext(),
19
24
  Middlewares.parseBody(),
20
25
  handleHtmlPromise
@@ -22,7 +27,7 @@ export function mount(router: Router, url: string, mountable: Mountable): void {
22
27
  mountable.init();
23
28
 
24
29
  // to automatically add trailing slashes:
25
- router.get(url.slice(0, -1), async (ctx, next) => {
30
+ router.get(raw_url.slice(0, -1), async (ctx, next) => {
26
31
  const url2 = ctx.URL;
27
32
  if (!url2.pathname.endsWith("/")) {
28
33
  url2.pathname += "/";
@@ -31,7 +36,7 @@ export function mount(router: Router, url: string, mountable: Mountable): void {
31
36
  await next();
32
37
  });
33
38
 
34
- router.use(url, async (ctx, next) => {
39
+ router.use(raw_url, async (ctx, next) => {
35
40
  ctx.set("content-type", "text/html;charset=utf-8");
36
41
  const access_result = await mountable.canAccess(ctx);
37
42
  if (!access_result.canAccess) {
@@ -42,5 +47,5 @@ export function mount(router: Router, url: string, mountable: Mountable): void {
42
47
  await next();
43
48
  });
44
49
 
45
- mountable.mount(router, url);
50
+ mountable.mount(router, raw_url);
46
51
  }