tspace-spear 1.2.7 → 1.2.8

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.
Files changed (84) hide show
  1. package/README.md +46 -75
  2. package/dist/cli/app.d.ts +1 -1
  3. package/dist/cli/app.js +7 -3
  4. package/dist/cli/app.js.map +1 -1
  5. package/dist/cli/client.d.ts +1 -0
  6. package/dist/cli/client.js +30 -0
  7. package/dist/cli/client.js.map +1 -0
  8. package/dist/cli/controller.d.ts +1 -1
  9. package/dist/cli/controller.js +12 -1
  10. package/dist/cli/controller.js.map +1 -1
  11. package/dist/cli/generators/app/index.d.ts +1 -0
  12. package/dist/cli/generators/app/index.js +124 -0
  13. package/dist/cli/generators/app/index.js.map +1 -0
  14. package/dist/cli/generators/app/template.d.ts +1 -0
  15. package/dist/cli/generators/app/template.js +42 -0
  16. package/dist/cli/generators/app/template.js.map +1 -0
  17. package/dist/cli/generators/client/template.d.ts +1 -0
  18. package/dist/cli/generators/client/template.js +30 -0
  19. package/dist/cli/generators/client/template.js.map +1 -0
  20. package/dist/cli/generators/controller/index.d.ts +1 -0
  21. package/dist/cli/generators/controller/index.js +78 -0
  22. package/dist/cli/generators/controller/index.js.map +1 -0
  23. package/dist/cli/generators/controller/template.d.ts +1 -0
  24. package/dist/cli/generators/controller/template.js +99 -0
  25. package/dist/cli/generators/controller/template.js.map +1 -0
  26. package/dist/cli/generators/dto/index.d.ts +1 -0
  27. package/dist/cli/generators/dto/index.js +55 -0
  28. package/dist/cli/generators/dto/index.js.map +1 -0
  29. package/dist/cli/generators/dto/template.d.ts +1 -0
  30. package/dist/cli/generators/dto/template.js +32 -0
  31. package/dist/cli/generators/dto/template.js.map +1 -0
  32. package/dist/cli/generators/middleware/index.d.ts +1 -0
  33. package/dist/cli/generators/middleware/index.js +38 -0
  34. package/dist/cli/generators/middleware/index.js.map +1 -0
  35. package/dist/cli/generators/middleware/template.d.ts +1 -0
  36. package/dist/cli/generators/middleware/template.js +16 -0
  37. package/dist/cli/generators/middleware/template.js.map +1 -0
  38. package/dist/cli/generators/module/index.d.ts +1 -0
  39. package/dist/cli/generators/module/index.js +173 -0
  40. package/dist/cli/generators/module/index.js.map +1 -0
  41. package/dist/cli/generators/service/index.d.ts +1 -0
  42. package/dist/cli/generators/service/index.js +53 -0
  43. package/dist/cli/generators/service/index.js.map +1 -0
  44. package/dist/cli/generators/service/template.d.ts +1 -0
  45. package/dist/cli/generators/service/template.js +74 -0
  46. package/dist/cli/generators/service/template.js.map +1 -0
  47. package/dist/cli/generators/shared/index.d.ts +3 -0
  48. package/dist/cli/generators/shared/index.js +22 -0
  49. package/dist/cli/generators/shared/index.js.map +1 -0
  50. package/dist/cli/index.js +52 -96
  51. package/dist/cli/index.js.map +1 -1
  52. package/dist/cli/middleware.d.ts +1 -0
  53. package/dist/cli/middleware.js +16 -0
  54. package/dist/cli/middleware.js.map +1 -0
  55. package/dist/client.d.ts +1 -0
  56. package/dist/client.js +17 -0
  57. package/dist/client.js.map +1 -0
  58. package/dist/common/middlewares/log.middleware.d.ts +2 -0
  59. package/dist/common/middlewares/log.middleware.js +12 -0
  60. package/dist/common/middlewares/log.middleware.js.map +1 -0
  61. package/dist/index.d.ts +4 -0
  62. package/dist/index.js +32 -0
  63. package/dist/index.js.map +1 -0
  64. package/dist/lib/core/compiler/generator.js +20 -2
  65. package/dist/lib/core/compiler/generator.js.map +1 -1
  66. package/dist/lib/core/decorators/context.d.ts +78 -8
  67. package/dist/lib/core/decorators/context.js +74 -7
  68. package/dist/lib/core/decorators/context.js.map +1 -1
  69. package/dist/lib/core/package/index.d.ts +11 -0
  70. package/dist/lib/core/package/index.js +42 -0
  71. package/dist/lib/core/package/index.js.map +1 -0
  72. package/dist/modules/cats/cat.controller.d.ts +58 -0
  73. package/dist/modules/cats/cat.controller.js +90 -0
  74. package/dist/modules/cats/cat.controller.js.map +1 -0
  75. package/dist/modules/cats/cat.dto.d.ts +8 -0
  76. package/dist/modules/cats/cat.dto.js +44 -0
  77. package/dist/modules/cats/cat.dto.js.map +1 -0
  78. package/dist/modules/cats/cat.service.d.ts +23 -0
  79. package/dist/modules/cats/cat.service.js +56 -0
  80. package/dist/modules/cats/cat.service.js.map +1 -0
  81. package/dist/tests/e2e..test.d.ts +1 -0
  82. package/dist/tests/e2e..test.js +16 -0
  83. package/dist/tests/e2e..test.js.map +1 -0
  84. package/package.json +2 -2
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ServiceTemplate = void 0;
4
+ exports.ServiceTemplate = `
5
+ type Cat = {
6
+ id: number;
7
+ name: string;
8
+ age: number;
9
+ }
10
+
11
+ export class CatService {
12
+ private cats: Cat[] = [
13
+ { id: 1, name: 'cat1', age: 1.6 },
14
+ { id: 2, name: 'cat2', age: 1.8 },
15
+ ];
16
+ public async index() {
17
+ return this.cats;
18
+ };
19
+
20
+ public async show(id: number) {
21
+ return this.cats.find(cat => cat.id === id);
22
+ };
23
+
24
+ public async create({ name, age }: Omit<Cat, "id">) {
25
+
26
+ const cat: Cat = {
27
+ id: this.cats.length + 1,
28
+ name: name,
29
+ age: age
30
+ };
31
+
32
+ this.cats.push(cat);
33
+
34
+ return {
35
+ message: "Created",
36
+ cat
37
+ };
38
+ }
39
+
40
+ public async update(id: number, { name, age }: Omit<Cat, "id">) {
41
+ const index = this.cats.findIndex(d => d.id === id);
42
+
43
+ if (index === -1) {
44
+ throw new Error("Cat not found");
45
+ }
46
+
47
+ this.cats[index] = {
48
+ ...this.cats[index],
49
+ ...{ name, age }
50
+ };
51
+
52
+ return {
53
+ message: "Updated",
54
+ cat: this.cats[index]
55
+ };
56
+ }
57
+
58
+ public async remove(id: number) {
59
+ const index = this.cats.findIndex(d => d.id === id);
60
+
61
+ if (index === -1) {
62
+ throw new Error("Cat not found");
63
+ }
64
+
65
+ const [removedCat] = this.cats.splice(index, 1);
66
+
67
+ return {
68
+ message: "Deleted",
69
+ cat: removedCat
70
+ };
71
+ }
72
+ }
73
+ `;
74
+ //# sourceMappingURL=template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../src/cli/generators/service/template.ts"],"names":[],"mappings":";;;AACa,QAAA,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqE9B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function toSingular(name: string): string;
2
+ export declare function toPlural(name: string): string;
3
+ export declare function capitalize(value: string): string;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toSingular = toSingular;
4
+ exports.toPlural = toPlural;
5
+ exports.capitalize = capitalize;
6
+ function toSingular(name) {
7
+ if (!name)
8
+ return name;
9
+ return name.endsWith("s") ? name.slice(0, -1) : name;
10
+ }
11
+ function toPlural(name) {
12
+ if (!name)
13
+ return name;
14
+ if (name.endsWith("s"))
15
+ return name;
16
+ return name + "s";
17
+ }
18
+ function capitalize(value) {
19
+ return (value.charAt(0).toUpperCase() +
20
+ value.slice(1));
21
+ }
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/generators/shared/index.ts"],"names":[],"mappings":";;AAAA,gCAGC;AAED,4BAMC;AAED,gCAOC;AApBD,SAAgB,UAAU,CAAC,IAAY;IACrC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACvD,CAAC;AAED,SAAgB,QAAQ,CAAC,IAAY;IACnC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,OAAO,IAAI,GAAG,GAAG,CAAC;AACpB,CAAC;AAED,SAAgB,UAAU,CACxB,KAAa;IAEb,OAAO,CACL,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;QAC7B,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CACf,CAAC;AACJ,CAAC"}
package/dist/cli/index.js CHANGED
@@ -1,109 +1,65 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
3
  Object.defineProperty(exports, "__esModule", { value: true });
7
- const fs_1 = __importDefault(require("fs"));
8
- const path_1 = __importDefault(require("path"));
9
- const app_1 = require("./app");
10
- const controller_1 = require("./controller");
11
- const [, , action, type, target] = process.argv;
12
- switch (`${action}:${type}`) {
13
- case "create:app":
14
- createApp(target);
15
- break;
16
- case "create:controller":
17
- createController(target);
18
- break;
19
- default:
20
- console.log(`
21
- Usage:
22
-
23
- tspace-spear create app ./src
24
- tspace-spear create controller ./src/controllers/dogs
25
- `);
4
+ const app_1 = require("./generators/app");
5
+ const module_1 = require("./generators/module");
6
+ const controller_1 = require("./generators/controller");
7
+ const service_1 = require("./generators/service");
8
+ const middleware_1 = require("./generators/middleware");
9
+ const dto_1 = require("./generators/dto");
10
+ const [, , command, type, name] = process.argv;
11
+ /**
12
+ * spear create new <name>
13
+ * spear g module <name>
14
+ * spear g controller <name>
15
+ * spear g service <name>
16
+ * spear g middleware <name>
17
+ */
18
+ if (command === "create" && type === "new") {
19
+ (0, app_1.createApp)(name)
20
+ .then(_ => process.exit(1))
21
+ .catch(_ => process.exit(1));
26
22
  }
27
- function createApp(targetPath) {
28
- if (!targetPath) {
29
- console.log("Missing target path");
23
+ if (command === "g") {
24
+ if (!name) {
25
+ printUsage();
30
26
  process.exit(1);
31
27
  }
32
- const root = path_1.default.resolve(process.cwd(), targetPath);
33
- fs_1.default.mkdirSync(root, {
34
- recursive: true
35
- });
36
- fs_1.default.mkdirSync(path_1.default.join(root, "controllers"), {
37
- recursive: true
38
- });
39
- fs_1.default.writeFileSync(path_1.default.join(root, "index.ts"), app_1.app);
40
- fs_1.default.writeFileSync(path_1.default.join(root, "controllers", "cat.controller.ts"), controller_1.CatController);
41
- console.log(`App created at: ${root}`);
42
- }
43
- function createController(inputPath) {
44
- if (!inputPath) {
45
- console.log("Missing controller path");
46
- process.exit(1);
28
+ const root = 'src';
29
+ switch (type) {
30
+ case "module":
31
+ (0, module_1.createModule)(root, name);
32
+ break;
33
+ case "controller":
34
+ (0, controller_1.createController)(root, name);
35
+ break;
36
+ case "service":
37
+ (0, service_1.createService)(root, name);
38
+ break;
39
+ case "dto":
40
+ (0, dto_1.createDto)(root, name);
41
+ break;
42
+ case "middleware":
43
+ (0, middleware_1.createMiddleware)(root, name);
44
+ break;
45
+ default:
46
+ printUsage();
47
47
  }
48
- const resolvedPath = path_1.default.resolve(process.cwd(), inputPath);
49
- const name = path_1.default.basename(resolvedPath);
50
- const fileName = `${name}.controller.ts`;
51
- const target = path_1.default.join(resolvedPath, fileName);
52
- fs_1.default.mkdirSync(resolvedPath, { recursive: true });
53
- const className = capitalize(name) + "Controller";
54
- fs_1.default.writeFileSync(target, `
55
- import {
56
- type T,
57
- Controller,
58
- Get,
59
- Post,
60
- Put,
61
- Delete
62
- } from "tspace-spear";
63
-
64
- @Controller("/${name}")
65
- export default class ${className} {
66
-
67
- @Get("/")
68
- async index() {
69
- return {};
70
- }
71
-
72
- @Get("/:id")
73
- async show({
74
- params
75
- }: T.Context<{ params: { id: number } }>) {
76
- return { id: params.id };
77
- }
78
-
79
- @Post("/")
80
- async create({
81
- body
82
- }: T.Context<{ body: {} }>) {
83
- return { body };
84
- }
48
+ process.exit(0);
49
+ }
50
+ function printUsage() {
51
+ console.log(`
52
+ Usage:
85
53
 
86
- @Put("/:id")
87
- async update({
88
- params,
89
- body
90
- }: T.Context<{ params: { id: number }; body: {} }>) {
91
- return { id: params.id, body };
92
- }
54
+ spear create new <project>
93
55
 
94
- @Delete("/:id")
95
- async remove({
96
- params
97
- }: T.Context<{ params: { id: number } }>) {
98
- return { id: params.id };
99
- }
56
+ Generators:
100
57
 
101
- }
58
+ spear g module <names>
59
+ spear g controller <name>
60
+ spear g service <name>
61
+ spear g dto <name>
62
+ spear g middleware <name>
102
63
  `);
103
- console.log(`Controller created: ${target}`);
104
- }
105
- function capitalize(value) {
106
- return (value.charAt(0).toUpperCase() +
107
- value.slice(1));
108
64
  }
109
65
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;;;;AAEA,4CAAoB;AACpB,gDAAwB;AACxB,+BAA4B;AAC5B,6CAA6C;AAE7C,MAAM,CAAC,EAAE,AAAD,EAAG,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;AAEhD,QAAQ,GAAG,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC;IAE5B,KAAK,YAAY;QACf,SAAS,CAAC,MAAM,CAAC,CAAC;QAClB,MAAM;IAER,KAAK,mBAAmB;QACtB,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzB,MAAM;IAER;QACE,OAAO,CAAC,GAAG,CAAC;;;;;CAKf,CAAC,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,UAAmB;IAEpC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAG,cAAI,CAAC,OAAO,CACvB,OAAO,CAAC,GAAG,EAAE,EACb,UAAU,CACX,CAAC;IAEF,YAAE,CAAC,SAAS,CAAC,IAAI,EAAE;QACjB,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,YAAE,CAAC,SAAS,CACV,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,EAC9B;QACE,SAAS,EAAE,IAAI;KAChB,CACF,CAAC;IAEF,YAAE,CAAC,aAAa,CACd,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,EAC3B,SAAG,CACJ,CAAC;IAEF,YAAE,CAAC,aAAa,CACd,cAAI,CAAC,IAAI,CACP,IAAI,EACJ,aAAa,EACb,mBAAmB,CACpB,EAAC,0BAAa,CAChB,CAAC;IAEF,OAAO,CAAC,GAAG,CACT,mBAAmB,IAAI,EAAE,CAC1B,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAkB;IAC1C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,YAAY,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;IAE5D,MAAM,IAAI,GAAG,cAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,GAAG,IAAI,gBAAgB,CAAC;IAEzC,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAEjD,YAAE,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhD,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;IAElD,YAAE,CAAC,aAAa,CACd,MAAM,EACN;;;;;;;;;;gBAUY,IAAI;uBACG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqC/B,CACE,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,UAAU,CACjB,KAAa;IAEb,OAAO,CACL,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;QAC7B,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CACf,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;AAEA,0CAA6C;AAC7C,gDAAmD;AACnD,wDAA2D;AAC3D,kDAAqD;AACrD,wDAA2D;AAC3D,0CAA6C;AAE7C,MAAM,CAAC,EAAE,AAAD,EAAG,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;AAE/C;;;;;;GAMG;AAEH,IAAI,OAAO,KAAK,QAAQ,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;IAC3C,IAAA,eAAS,EAAC,IAAI,CAAC;SACd,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC1B,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AAC9B,CAAC;AAED,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;IACpB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC;IAEnB,QAAQ,IAAI,EAAE,CAAC;QAEb,KAAK,QAAQ;YACX,IAAA,qBAAY,EAAC,IAAI,EAAC,IAAI,CAAC,CAAC;YACxB,MAAM;QAER,KAAK,YAAY;YACf,IAAA,6BAAgB,EAAC,IAAI,EAAC,IAAI,CAAC,CAAC;YAC5B,MAAM;QAER,KAAK,SAAS;YACZ,IAAA,uBAAa,EAAC,IAAI,EAAC,IAAI,CAAC,CAAC;YACzB,MAAM;QAER,KAAK,KAAK;YACR,IAAA,eAAS,EAAC,IAAI,EAAC,IAAI,CAAC,CAAC;YACrB,MAAM;QAER,KAAK,YAAY;YACf,IAAA,6BAAgB,EAAC,IAAI,EAAC,IAAI,CAAC,CAAC;YAC5B,MAAM;QAER;YACE,UAAU,EAAE,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;CAYb,CAAC,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const CatMiddleware = "\nimport { type T } from \"tspace-spear\";\n\nconst sleep = async (ms : number) => new Promise(resolve => setTimeout(resolve, ms))\n\nexport const CatMiddleware = async (ctx : T.Context, next: T.NextFunction) =>{\n await sleep(100);\n console.log('after logging middleware Meow!');\n ctx.req.cat = 'Meow!';\n return next()\n}\n";
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CatMiddleware = void 0;
4
+ exports.CatMiddleware = `
5
+ import { type T } from "tspace-spear";
6
+
7
+ const sleep = async (ms : number) => new Promise(resolve => setTimeout(resolve, ms))
8
+
9
+ export const CatMiddleware = async (ctx : T.Context, next: T.NextFunction) =>{
10
+ await sleep(100);
11
+ console.log('after logging middleware Meow!');
12
+ ctx.req.cat = 'Meow!';
13
+ return next()
14
+ }
15
+ `;
16
+ //# sourceMappingURL=middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/cli/middleware.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG;;;;;;;;;;;CAW5B,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
package/dist/client.js ADDED
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const client_1 = require("tspace-spear/client");
4
+ const client = new client_1.ApiClient("http://localhost:8000/api");
5
+ async function main() {
6
+ const res = await client.get("/cats");
7
+ res.data.cats = 1; // Type error: Type 'number' is not assignable to type '{ id: number; name: string; age: number; }[]'
8
+ res.data.cats[0].name = 1; // Type error: Type 'number' is not assignable to type 'string'
9
+ res.data.cats[0].age = "1.6"; // Type error: Type 'string' is not assignable to type 'number'
10
+ console.log(res);
11
+ // res.ok -> boolean
12
+ // res.status -> number
13
+ // res.data -> { cats: [{ id: 1, name: 'cat1', age: 1.6 },{ id: 2, name: 'cat2', age: 1.8 }] }
14
+ await client.get("/catsq"); // Type error: Argument of type '"/catsq"' is not assignable to parameter of type '"/cats" | "/cats/:id" | ... 3 more
15
+ }
16
+ main();
17
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;AAGA,gDAAgD;AAEhD,MAAM,MAAM,GAAyB,IAAI,kBAAS,CAChD,2BAA2B,CAC5B,CAAC;AAEF,KAAK,UAAU,IAAI;IAEf,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA,CAAC,qGAAqG;IACvH,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAA,CAAC,+DAA+D;IACzF,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAA,CAAC,+DAA+D;IAE5F,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAChB,oBAAoB;IACpB,uBAAuB;IACvB,8FAA8F;IAE9F,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,qHAAqH;AAErJ,CAAC;AACD,IAAI,EAAE,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { type T } from "tspace-spear";
2
+ export declare const LogMiddleware: (ctx: T.Context, next: T.NextFunction) => Promise<any>;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LogMiddleware = void 0;
4
+ const sleep = async (ms) => new Promise(resolve => setTimeout(resolve, ms));
5
+ const LogMiddleware = async (ctx, next) => {
6
+ await sleep(100);
7
+ console.log('after logging middleware Meow!');
8
+ ctx.req.cat = 'Meow!';
9
+ return next();
10
+ };
11
+ exports.LogMiddleware = LogMiddleware;
12
+ //# sourceMappingURL=log.middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.middleware.js","sourceRoot":"","sources":["../../../src/common/middlewares/log.middleware.ts"],"names":[],"mappings":";;;AAGA,MAAM,KAAK,GAAG,KAAK,EAAE,EAAW,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AAE7E,MAAM,aAAa,GAAG,KAAK,EAAE,GAAe,EAAE,IAAoB,EAAE,EAAE;IACzE,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IACjB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC;IACtB,OAAO,IAAI,EAAE,CAAA;AACjB,CAAC,CAAA;AALY,QAAA,aAAa,iBAKzB"}
@@ -0,0 +1,4 @@
1
+ declare const app: any;
2
+ type AppRouter = typeof app.contract;
3
+ export { AppRouter };
4
+ export { app };
package/dist/index.js ADDED
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.app = void 0;
7
+ const tspace_spear_1 = __importDefault(require("tspace-spear"));
8
+ const app = new tspace_spear_1.default({
9
+ logger: true,
10
+ controllers: {
11
+ folder: `${__dirname}/modules/*`,
12
+ name: /controller\.(ts|js)$/i,
13
+ // don't forget to set this option for auto-generate route metadata for type-safe E2E usage,
14
+ // and swagger documentation. By default if use .useSwagger() in app no need to set any description
15
+ preRouteTypes: true
16
+ }
17
+ });
18
+ exports.app = app;
19
+ app.cors({
20
+ origins: [
21
+ /^http:/ / localhost, d + $ /
22
+ ],
23
+ credentials: true
24
+ });
25
+ app.useGlobalPrefix("api");
26
+ app.useSwagger();
27
+ app.useBodyParser();
28
+ app.listen(8000, ({ port, server }) => {
29
+ console.log(`Server listening on : http://localhost:${port}`);
30
+ console.log(`Docs listening on : http://localhost:${port}/api/docs`);
31
+ });
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AACA,gEAAiC;AAEjC,MAAM,GAAG,GAAG,IAAI,sBAAK,CAAC;IACpB,MAAM,EAAE,IAAI;IACZ,WAAW,EAAE;QACX,MAAM,EAAE,GAAG,SAAS,YAAY;QAChC,IAAI,EAAE,uBAAuB;QAE7B,6FAA6F;QAC7F,mGAAmG;QACnG,aAAa,EAAE,IAAI;KACpB;CACF,CAAC,CAAA;AAoBO,kBAAG;AAlBZ,GAAG,CAAC,IAAI,CAAC;IACP,OAAO,EAAE;QACP,QAAQ,GAAC,SAAS,EAAC,CAAC,GAAC,CAAC;YACxB,AADyB,JAAA,HACxB;IACD,WAAW,EAAE,IAAI;CAClB,CAAC,CAAC;AAEH,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAC3B,GAAG,CAAC,UAAU,EAAE,CAAC;AACjB,GAAG,CAAC,aAAa,EAAE,CAAC;AAEpB,GAAG,CAAC,MAAM,CAAC,IAAI,EAAG,CAAC,EAAE,IAAI,EAAG,MAAM,EAAE,EAAE,EAAE;IACtC,OAAO,CAAC,GAAG,CAAC,0CAA0C,IAAI,EAAE,CAAC,CAAA;IAC7D,OAAO,CAAC,GAAG,CAAC,wCAAwC,IAAI,WAAW,CAAC,CAAA;AACtE,CAAC,CAAC,CAAC"}
@@ -161,8 +161,26 @@ function resolveType(type) {
161
161
  return "any";
162
162
  if (type.isUnknown())
163
163
  return "unknown";
164
- if (type.isUnion())
164
+ if (type.isStringLiteral())
165
165
  return type.getText();
166
+ if (type.isUnion()) {
167
+ const text = type.getText();
168
+ if (text.includes('| null') || text.includes('| undefined')) {
169
+ const types = type.getUnionTypes();
170
+ if (types.length > 1) {
171
+ const nonSpecial = types.filter(t => !t.isNull() && !t.isUndefined());
172
+ const hasNull = types.some(t => t.isNull());
173
+ const hasUndefined = types.some(t => t.isUndefined());
174
+ const sorted = [
175
+ ...nonSpecial,
176
+ ...(hasNull ? [types.find(t => t.isNull())] : []),
177
+ ...(hasUndefined ? [types.find(t => t.isUndefined())] : []),
178
+ ];
179
+ return sorted.map(t => resolveType(t)).join(" | ");
180
+ }
181
+ }
182
+ return text;
183
+ }
166
184
  if (type.isArray()) {
167
185
  const el = type.getArrayElementTypeOrThrow();
168
186
  return `${resolveType(el)}[]`;
@@ -297,7 +315,7 @@ async function generateRoutes(options) {
297
315
  .join("\n");
298
316
  const formatValue = (v) => {
299
317
  if (typeof v === "string")
300
- return v;
318
+ return `"${v.replace(/"/g, '')}"`;
301
319
  return JSON.stringify(v);
302
320
  };
303
321
  const groupedValues = routes.reduce((acc, route) => {
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../src/lib/core/compiler/generator.ts"],"names":[],"mappings":";;;;;AAiRA,wCAoMC;AArdD,uCAIiB;AACjB,4DAA2B;AAC3B,4CAAmB;AACnB,gDAAuB;AAEvB,MAAM,YAAY,GAAG;IACnB,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;CACJ,CAAA;AAoBV,SAAS,aAAa,CAAC,CAAS;IAC9B,OAAO,CACL,GAAG;QACH,CAAC;aACE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;aACrB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;aAClB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CACtB,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,KAAK,GAAG;YAAE,KAAK,EAAE,CAAC;QAC1B,IAAI,IAAI,KAAK,GAAG;YAAE,KAAK,EAAE,CAAC;QAE1B,IAAI,IAAI,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3B,OAAO,GAAG,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QAED,OAAO,IAAI,IAAI,CAAC;IAClB,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAEnB,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI;aACf,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;aACxB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAErB,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAEhC,IACE,MAAM;YACN,OAAO,MAAM,KAAK,QAAQ;YAC1B,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EACtB,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;gBACzB,MAAM,CAAC,GAAG,CAAC;oBACT,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI;aACf,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;aACxB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAErB,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,IACE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAClB,CAAC;QACD,MAAM,MAAM,GAAwB,EAAE,CAAC;QAEvC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAElC,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC;aAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC,CAAC;QAEnB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,KAAK,GACT,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAEtC,IAAI,CAAC,KAAK;gBAAE,SAAS;YAErB,MAAM,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;YAEvC,IAAI,MAAM,CAAC;YAEX,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACvB,MAAM,GAAG,QAAQ;oBACf,CAAC,CAAC,eAAe;oBACjB,CAAC,CAAC,QAAQ,CAAC;YACf,CAAC;iBAAM,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,GAAG,QAAQ;oBACf,CAAC,CAAC,eAAe;oBACjB,CAAC,CAAC,QAAQ,CAAC;YACf,CAAC;iBAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,GAAG,QAAQ;oBACf,CAAC,CAAC,gBAAgB;oBAClB,CAAC,CAAC,SAAS,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;YAED,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;QACvB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACvC,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACvC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IAEnC,IAAI,IAAI,KAAK,oBAAoB;QAAE,OAAO,QAAQ,CAAC;IACnD,IAAI,IAAI,KAAK,oBAAoB;QAAE,OAAO,QAAQ,CAAC;IACnD,IAAI,IAAI,KAAK,qBAAqB;QAAE,OAAO,SAAS,CAAC;IACrD,IAAI,IAAI,KAAK,kBAAkB;QAAE,OAAO,MAAM,CAAC;IAG/C,IAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,WAAW;IACX,OAAO;QACL,IAAI,EAAE,IAAI;KACX,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,IAAU;IAE7B,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,SAAS,EAAE,CAAC;QAC9C,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,EAAE;QAAK,OAAO,QAAQ,CAAC;IACxC,IAAI,IAAI,CAAC,QAAQ,EAAE;QAAK,OAAO,QAAQ,CAAC;IACxC,IAAI,IAAI,CAAC,SAAS,EAAE;QAAI,OAAO,SAAS,CAAC;IACzC,IAAI,IAAI,CAAC,MAAM,EAAE;QAAO,OAAO,MAAM,CAAC;IACtC,IAAI,IAAI,CAAC,WAAW,EAAE;QAAE,OAAO,WAAW,CAAC;IAC3C,IAAI,IAAI,CAAC,KAAK,EAAE;QAAQ,OAAO,KAAK,CAAC;IACrC,IAAI,IAAI,CAAC,SAAS,EAAE;QAAI,OAAO,SAAS,CAAC;IACzC,IAAI,IAAI,CAAC,OAAO,EAAE;QAAM,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IAG9C,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACnB,MAAM,EAAE,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAC7C,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC;IAChC,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;IAEnC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,GAAG,GAAa,EAAE,CAAC;QAEzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,IAAI;gBAAE,SAAS;YAEpB,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3B,IAAI,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;YAElC,IAAG,8BAA8B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9C,SAAS;YACX,CAAC;YAED,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBACjC,KAAK,GAAG,IAAI,CAAA;YACd,CAAC;YAAA,CAAC;YAEF,IAAI,KAAK,GAAG,GAAG,CAAC;YAEhB,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAErD,IAAG,aAAa,EAAE,CAAC;gBACjB,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;gBACzC,KAAK,GAAG,IAAI,CAAA;YACd,CAAC;YAED,GAAG,CAAC,IAAI,CACN,GAAG,GAAG,GAAG,KAAK,IAAI,KAAK,EAAE,CAC1B,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACjC,CAAC;IAED,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;AACxB,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAAU,EACV,GAAW,EACX,IAA0B;IAE1B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IAClC,IAAI,CAAC,IAAI;QAAE,OAAO,OAAO,CAAA;IAEzB,MAAM,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAEtC,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAE5B,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,OAAO,IAAI,CAAA;IAE7C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,OAAO,CAAA;IAEvD,OAAO,WAAW,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;AACnC,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,OAAgB;IACnD,MAAM,OAAO,GAAG,IAAI,kBAAO,CAAC;QAC1B,gBAAgB,EAAE,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC;KAC/D,CAAC,CAAA;IAEF,OAAO,CAAC,qBAAqB,CAC3B,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAC9C,CAAA;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,EAAE,CAAA;IAEtC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;QACxC,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAY,EAAE,CAAA;IAE1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAEnC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,SAAQ;QAEtD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;YACpC,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,YAAY,CAAC,CAAA;YACjD,IAAI,CAAC,UAAU;gBAAE,SAAQ;YAEzB,MAAM,QAAQ,GACZ,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;gBAC1B,EAAE,OAAO,EAAE;iBACV,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,EAAE,CAAA;YAEhC,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC;gBACtC,KAAK,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC3D,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;oBAC9C,IAAI,CAAC,SAAS;wBAAE,SAAQ;oBAExB,MAAM,UAAU,GACd,SAAS;yBACN,YAAY,EAAE,CAAC,CAAC,CAAC;wBAClB,EAAE,OAAO,EAAE;yBACV,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,EAAE,CAAA;oBAEhC,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,QAAQ,IAAI,UAAU,EAAE,CAAC,CAAA;oBAE3D,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAA;oBAEpD,IAAI,IAAI,GAAG,OAAO,CAAA;oBAClB,IAAI,MAAM,GAAG,OAAO,CAAA;oBACpB,IAAI,KAAK,GAAG,OAAO,CAAA;oBACnB,IAAI,KAAK,GAAG,OAAO,CAAA;oBAEnB,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAA;oBAE5C,IAAI,UAAU,EAAE,CAAC;wBACf,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,CAAA;wBAEjC,IAAI,GAAK,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;wBACtD,MAAM,GAAG,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;wBACxD,KAAK,GAAI,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;wBACvD,KAAK,GAAI,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;oBACzD,CAAC;oBAED,MAAM,CAAC,IAAI,CAAC;wBACV,MAAM,EAAE,IAAI;wBACZ,IAAI,EAAE,QAAQ;wBACd,QAAQ;wBACR,IAAI;wBACJ,MAAM;wBACN,KAAK;wBACL,KAAK;qBACN,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QAC5C,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAEnB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG;YACtB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,KAAK,EAAE,CAAC,CAAC,KAAK;SACf,CAAC;QAEF,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAyB,CAAC,CAAC;IAE9B,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;SACjD,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE;QACvB,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;aACxC,GAAG,CACF,CAAC,CAAC,MAAM,EAAE,CAAC,CAAM,EAAE,EAAE,CAAC;MACxB,MAAM;gBACI,CAAC,CAAC,MAAM;eACT,CAAC,CAAC,KAAK;cACR,CAAC,CAAC,IAAI;eACL,CAAC,CAAC,KAAK;kBACJ,CAAC,CAAC,QAAQ;MACtB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEd,OAAO;KACN,IAAI;IACL,WAAW;IACX,CAAA;IACF,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAA;IAEX,MAAM,WAAW,GAAG,CAAC,CAAM,EAAE,EAAE;QAC7B,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACjD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,CAAC;QAED,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG;YAC9B,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;YAC/B,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;YAC7B,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;YAC3B,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;YAC7B,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;SACpC,CAAC;QAEF,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAyB,CAAC,CAAC;IAE9B,MAAM,eAAe,GAAE,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC;SACnD,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE;QACvB,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;aACxC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAM,EAAE,EAAE,CAAC;MAC3B,MAAM;gBACI,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;eACtB,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;cACrB,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;eAClB,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;kBACjB,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;MACnC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEhB,OAAO;KACN,IAAI;IACL,WAAW;IACX,CAAC;IACH,CAAC,CAAC;SACD,IAAI,CAAC,KAAK,CAAC,CAAC;IAEb,MAAM,MAAM,GAAG;;;;;;EAMf,eAAe;;;;EAIf,aAAa;;;;CAId,CAAA;IAEC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM;QAC5B,CAAC,CAAC,GAAG,SAAS,IAAI,OAAO,CAAC,MAAM,gBAAgB;QAChD,CAAC,CAAC,GAAG,SAAS,gBAAgB,CAAA;IAEhC,MAAM,YAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC7C,SAAS,EAAE,IAAI;KAChB,CAAC,CAAA;IAEF,MAAM,YAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAE5C,MAAM,QAAQ,GAAG,oBAAE,CAAC,eAAe,CAAC,MAAM,EAAE;QAC1C,eAAe,EAAE;YACf,MAAM,EAAE,oBAAE,CAAC,UAAU,CAAC,QAAQ;YAC9B,MAAM,EAAE,oBAAE,CAAC,YAAY,CAAC,MAAM;SAC/B;KACF,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAC5B,OAAO,EACP,KAAK,CACN,CAAA;IAED,MAAM,YAAE,CAAC,QAAQ,CAAC,SAAS,CACzB,MAAM,EACN,QAAQ,CAAC,UAAU,EACnB,MAAM,CACP,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../src/lib/core/compiler/generator.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,20 @@
1
1
  import { type T } from '../types';
2
+ type ClassConstructor<T = any> = new (...args: any[]) => T;
3
+ type ZodSchemaLike = {
4
+ parse: (input: unknown) => any;
5
+ parseAsync: (input: unknown) => Promise<any>;
6
+ safeParseAsync: (input: unknown) => Promise<{
7
+ success: boolean;
8
+ data?: any;
9
+ error?: any;
10
+ }>;
11
+ safeParse: (input: unknown) => {
12
+ success: boolean;
13
+ data?: any;
14
+ error?: any;
15
+ };
16
+ };
17
+ type Target = "params" | "query" | "body" | "files";
2
18
  export declare function createDtoDecorator(validator: (ctx: T.Context) => void | Promise<void>, onError?: (ctx: T.Context, error: any) => any): MethodDecorator;
3
19
  export declare function createContextDecorator(hook: (ctx: T.Context, next: T.NextFunction, meta: {
4
20
  target: any;
@@ -101,10 +117,9 @@ export declare const Cookies: (...keys: string[]) => MethodDecorator;
101
117
  *
102
118
  * @param keys - List of required field names.
103
119
  * @param options - Validation options.
104
- * @param options.target - Request source to validate.
105
- * Defaults to `"body"`.
120
+ * @property options.target - Request source to validate. defaults to `"body"`.
106
121
  *
107
- * @param options.required - Enables required-value validation.
122
+ * @property options.required - Enables required-value validation.
108
123
  *
109
124
  * - `true`
110
125
  * - Rejects `null`
@@ -113,11 +128,9 @@ export declare const Cookies: (...keys: string[]) => MethodDecorator;
113
128
  * - `object`
114
129
  * - Allows customizing required rules.
115
130
  *
116
- * @param options.required.allowNull - Allow `null` values.
117
- * Default: `false`
131
+ * @property options.required.allowNull - Allow `null` values. Default: `false`
118
132
  *
119
- * @param options.required.allowEmptyString - Allow empty string values.
120
- * Default: `false`
133
+ * @property options.required.allowEmptyString - Allow empty string values. Default: `false`
121
134
  * @returns {MethodDecorator}
122
135
  *
123
136
  * @throws {Object} Throws a validation error object when
@@ -139,9 +152,66 @@ export declare const Cookies: (...keys: string[]) => MethodDecorator;
139
152
  * ```
140
153
  */
141
154
  export declare const Validate: (keys: string[], { target, required }?: {
142
- target?: "params" | "query" | "body" | "files";
155
+ target?: Target;
143
156
  required?: boolean | {
144
157
  allowNull?: boolean;
145
158
  allowEmptyString?: boolean;
146
159
  };
147
160
  }) => MethodDecorator;
161
+ /**
162
+ * Validate request using either
163
+ * `class-validator` or `zod`.
164
+ *
165
+ * Please install the required validation library before using this decorator.
166
+ * @install
167
+ * npm install class-validator class-transformer
168
+ *
169
+ * npm install zod
170
+ *
171
+ * @example
172
+ * // class-validator (default)
173
+ * \@ValidateDto(UserDto)
174
+ *
175
+ * @example
176
+ * // explicit class-validator
177
+ * \@ValidateDto(UserDto, {
178
+ * adaptor: "class-validator"
179
+ * })
180
+ *
181
+ * @example
182
+ * // zod
183
+ * \@ValidateDto(UserSchema, {
184
+ * adaptor: "zod"
185
+ * })
186
+ *
187
+ * @param schema
188
+ * Validation schema/class.
189
+ *
190
+ * - `class-validator`:
191
+ * Must be a class constructor.
192
+ *
193
+ * - `zod`:
194
+ * Must be a schema containing `.safeParseAsync()`.
195
+ *
196
+ * @param {Object} options Validation options.
197
+ *
198
+ * @property options.adaptor Validation adaptor. default "class-validator"
199
+ * @property options.message Validation error message.
200
+ * @property options.status Validation error status code.
201
+ * @property options.target Request target to validate. default "body"
202
+ *
203
+ * @returns MethodDecorator
204
+ */
205
+ export declare function ValidateDto(schema: ZodSchemaLike, options: {
206
+ adaptor: "zod";
207
+ message?: string;
208
+ status?: 400 | 422 | 500;
209
+ target?: Target;
210
+ }): MethodDecorator;
211
+ export declare function ValidateDto(schema: ClassConstructor, options?: {
212
+ adaptor: "class-validator";
213
+ message?: string;
214
+ status?: 400 | 422 | 500;
215
+ target?: Target;
216
+ }): MethodDecorator;
217
+ export {};