@bogomolcompany/bogo 0.1.2 → 0.2.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.
Files changed (74) hide show
  1. package/README.md +60 -10
  2. package/README.ru.md +60 -17
  3. package/dist/cli.js +92 -20
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/add-method.d.ts.map +1 -1
  6. package/dist/commands/add-method.js +10 -11
  7. package/dist/commands/add-method.js.map +1 -1
  8. package/dist/commands/create-app.d.ts +2 -1
  9. package/dist/commands/create-app.d.ts.map +1 -1
  10. package/dist/commands/create-app.js +2 -2
  11. package/dist/commands/create-app.js.map +1 -1
  12. package/dist/commands/doctor.d.ts +2 -0
  13. package/dist/commands/doctor.d.ts.map +1 -0
  14. package/dist/commands/doctor.js +53 -0
  15. package/dist/commands/doctor.js.map +1 -0
  16. package/dist/commands/generate-module.d.ts.map +1 -1
  17. package/dist/commands/generate-module.js +21 -16
  18. package/dist/commands/generate-module.js.map +1 -1
  19. package/dist/commands/interactive.d.ts +3 -0
  20. package/dist/commands/interactive.d.ts.map +1 -0
  21. package/dist/commands/interactive.js +65 -0
  22. package/dist/commands/interactive.js.map +1 -0
  23. package/dist/commands/list-modules.d.ts +2 -0
  24. package/dist/commands/list-modules.d.ts.map +1 -0
  25. package/dist/commands/list-modules.js +36 -0
  26. package/dist/commands/list-modules.js.map +1 -0
  27. package/dist/commands/remove-module.d.ts +2 -1
  28. package/dist/commands/remove-module.d.ts.map +1 -1
  29. package/dist/commands/remove-module.js +61 -10
  30. package/dist/commands/remove-module.js.map +1 -1
  31. package/dist/templates/module.d.ts +14 -7
  32. package/dist/templates/module.d.ts.map +1 -1
  33. package/dist/templates/module.js +38 -63
  34. package/dist/templates/module.js.map +1 -1
  35. package/dist/templates/project.d.ts +2 -1
  36. package/dist/templates/project.d.ts.map +1 -1
  37. package/dist/templates/project.js +85 -17
  38. package/dist/templates/project.js.map +1 -1
  39. package/dist/templates/render-helpers.d.ts +9 -0
  40. package/dist/templates/render-helpers.d.ts.map +1 -0
  41. package/dist/templates/render-helpers.js +78 -0
  42. package/dist/templates/render-helpers.js.map +1 -0
  43. package/dist/utils/config.d.ts.map +1 -1
  44. package/dist/utils/config.js +6 -2
  45. package/dist/utils/config.js.map +1 -1
  46. package/dist/utils/http.d.ts +5 -0
  47. package/dist/utils/http.d.ts.map +1 -0
  48. package/dist/utils/http.js +13 -0
  49. package/dist/utils/http.js.map +1 -0
  50. package/dist/utils/index-path.d.ts +7 -0
  51. package/dist/utils/index-path.d.ts.map +1 -0
  52. package/dist/utils/index-path.js +25 -0
  53. package/dist/utils/index-path.js.map +1 -0
  54. package/dist/utils/io.d.ts +8 -0
  55. package/dist/utils/io.d.ts.map +1 -0
  56. package/dist/utils/io.js +31 -0
  57. package/dist/utils/io.js.map +1 -0
  58. package/dist/utils/method-spec.d.ts +4 -0
  59. package/dist/utils/method-spec.d.ts.map +1 -0
  60. package/dist/utils/method-spec.js +49 -0
  61. package/dist/utils/method-spec.js.map +1 -0
  62. package/dist/utils/patch-index.d.ts +8 -4
  63. package/dist/utils/patch-index.d.ts.map +1 -1
  64. package/dist/utils/patch-index.js +33 -28
  65. package/dist/utils/patch-index.js.map +1 -1
  66. package/dist/utils/patch-method.d.ts +13 -20
  67. package/dist/utils/patch-method.d.ts.map +1 -1
  68. package/dist/utils/patch-method.js +66 -37
  69. package/dist/utils/patch-method.js.map +1 -1
  70. package/dist/utils/template-loader.d.ts +3 -0
  71. package/dist/utils/template-loader.d.ts.map +1 -0
  72. package/dist/utils/template-loader.js +17 -0
  73. package/dist/utils/template-loader.js.map +1 -0
  74. package/package.json +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"patch-index.js","sourceRoot":"","sources":["../../src/utils/patch-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"patch-index.js","sourceRoot":"","sources":["../../src/utils/patch-index.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,14 @@
1
- import { MethodSpec } from "../interfaces";
2
- export declare function parseMethodSpec(raw: string): MethodSpec;
3
- export declare function patchControllerMethod(content: string, ctx: {
4
- names: {
5
- pascal: string;
6
- };
7
- }, method: MethodSpec): string;
8
- export declare function patchServiceMethod(content: string, ctx: {
9
- names: {
10
- kebab: string;
11
- pascal: string;
12
- };
13
- }, method: MethodSpec): string;
14
- export declare function patchDtoMethod(content: string, _ctx: unknown, method: MethodSpec): string;
15
- export declare function patchValidatorMethod(content: string, _ctx: unknown, method: MethodSpec): string;
16
- export declare function patchRoutesMethod(content: string, ctx: {
17
- names: {
18
- kebab: string;
19
- };
20
- }, method: MethodSpec): string;
1
+ import { MethodSpec, ModuleTemplateContext, ModulePart } from "../interfaces";
2
+ export declare function patchControllerMethod(content: string, ctx: ModuleTemplateContext, method: MethodSpec): string;
3
+ export declare function patchServiceMethod(content: string, ctx: ModuleTemplateContext, method: MethodSpec): string;
4
+ export declare function patchDtoMethod(content: string, _ctx: ModuleTemplateContext, method: MethodSpec): string;
5
+ export declare function patchValidatorMethod(content: string, _ctx: ModuleTemplateContext, method: MethodSpec): string;
6
+ export declare function patchRoutesMethod(content: string, ctx: ModuleTemplateContext, method: MethodSpec): string;
7
+ export declare function removeControllerMethod(content: string, methodName: string): string;
8
+ export declare function removeServiceMethod(content: string, ctx: ModuleTemplateContext, methodName: string): string;
9
+ export declare function removeDtoMethod(content: string, methodName: string): string;
10
+ export declare function removeValidatorMethod(content: string, methodName: string): string;
11
+ export declare function removeRoutesMethod(content: string, ctx: ModuleTemplateContext, method: MethodSpec): string;
12
+ export declare const PATCHERS: Record<ModulePart, (content: string, ctx: ModuleTemplateContext, method: MethodSpec) => string>;
13
+ export declare const REMOVERS: Record<ModulePart, (content: string, ctx: ModuleTemplateContext, method: MethodSpec) => string>;
21
14
  //# sourceMappingURL=patch-method.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"patch-method.d.ts","sourceRoot":"","sources":["../../src/utils/patch-method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CASvD;AAgBD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE;IAAE,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAqBrH;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE;IAAE,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EACjD,MAAM,EAAE,UAAU,GACjB,MAAM,CAsBR;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CASzF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAY/F;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,GAAG,EAAE;IAAE,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EACjC,MAAM,EAAE,UAAU,GACjB,MAAM,CAoBR"}
1
+ {"version":3,"file":"patch-method.d.ts","sourceRoot":"","sources":["../../src/utils/patch-method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA4C9E,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAW7G;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAiB1G;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAKvG;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAK7G;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAiBzG;AAMD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAKlF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAW3G;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAKjF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAc1G;AAED,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,UAAU,KAAK,MAAM,CAMpH,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,UAAU,KAAK,MAAM,CAMpH,CAAC"}
@@ -1,22 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseMethodSpec = parseMethodSpec;
3
+ exports.REMOVERS = exports.PATCHERS = void 0;
4
4
  exports.patchControllerMethod = patchControllerMethod;
5
5
  exports.patchServiceMethod = patchServiceMethod;
6
6
  exports.patchDtoMethod = patchDtoMethod;
7
7
  exports.patchValidatorMethod = patchValidatorMethod;
8
8
  exports.patchRoutesMethod = patchRoutesMethod;
9
+ exports.removeControllerMethod = removeControllerMethod;
10
+ exports.removeServiceMethod = removeServiceMethod;
11
+ exports.removeDtoMethod = removeDtoMethod;
12
+ exports.removeValidatorMethod = removeValidatorMethod;
13
+ exports.removeRoutesMethod = removeRoutesMethod;
14
+ const render_helpers_1 = require("../templates/render-helpers");
15
+ const http_1 = require("./http");
9
16
  const naming_1 = require("./naming");
10
- function parseMethodSpec(raw) {
11
- const [name, route] = raw.split(":");
12
- if (!name || !/^[a-zA-Z][a-zA-Z0-9]*$/.test(name)) {
13
- throw new Error(`Invalid method name: "${raw}". Use camelCase, e.g. getList or getList:/custom-path`);
14
- }
15
- return {
16
- name,
17
- route: route ? (0, naming_1.methodToRoutePath)(name, route) : undefined,
18
- };
19
- }
20
17
  function addImportSymbol(content, importPattern, symbol) {
21
18
  const match = content.match(importPattern);
22
19
  if (!match) {
@@ -28,19 +25,26 @@ function addImportSymbol(content, importPattern, symbol) {
28
25
  }
29
26
  return content.replace(match[0], match[0].replace(match[1], `${match[1]}, ${symbol}`));
30
27
  }
28
+ function removeImportSymbol(content, importPattern, symbol) {
29
+ const match = content.match(importPattern);
30
+ if (!match) {
31
+ return content;
32
+ }
33
+ const symbols = match[1]
34
+ .split(",")
35
+ .map(value => value.trim())
36
+ .filter(Boolean)
37
+ .filter(value => value !== symbol);
38
+ if (symbols.length === 0) {
39
+ return content.replace(`${match[0]}\n`, "");
40
+ }
41
+ return content.replace(match[0], match[0].replace(match[1], symbols.join(", ")));
42
+ }
31
43
  function patchControllerMethod(content, ctx, method) {
32
44
  if (new RegExp(`async ${method.name}\\(`).test(content)) {
33
45
  throw new Error(`Method "${method.name}" already exists in controller`);
34
46
  }
35
- const snippet = `
36
- async ${method.name}(req: e.Request, res: e.Response) {
37
- try {
38
- const result = await ${ctx.names.pascal}Service.${method.name}(req.body);
39
- return res.success(result);
40
- } catch (error) {
41
- return res.error(error);
42
- }
43
- }`;
47
+ const snippet = (0, render_helpers_1.renderControllerMethod)(ctx.names, method);
44
48
  const updated = content.replace(/(\n}\n\nexport default new .+Controller\(\);)/, `${snippet}$1`);
45
49
  if (updated === content) {
46
50
  throw new Error("Could not patch controller file");
@@ -52,10 +56,7 @@ function patchServiceMethod(content, ctx, method) {
52
56
  throw new Error(`Method "${method.name}" already exists in service`);
53
57
  }
54
58
  let updated = addImportSymbol(content, new RegExp(`import \\{ (.+) \\} from "\\./${ctx.names.kebab}\\.dto";`), `${method.name}DTO`);
55
- const snippet = `
56
- async ${method.name}(body: ${method.name}DTO) {
57
- throw new Error("${ctx.names.pascal}Service.${method.name} is not implemented");
58
- }`;
59
+ const snippet = (0, render_helpers_1.renderServiceMethod)(ctx.names, method);
59
60
  updated = updated.replace(/(\n}\n\nexport default new .+Service\(\);)/, `${snippet}$1`);
60
61
  if (updated === content) {
61
62
  throw new Error("Could not patch service file");
@@ -66,34 +67,62 @@ function patchDtoMethod(content, _ctx, method) {
66
67
  if (new RegExp(`interface ${method.name}DTO`).test(content)) {
67
68
  throw new Error(`Method "${method.name}" already exists in dto`);
68
69
  }
69
- return `${content.trimEnd()}\nexport interface ${method.name}DTO {
70
- // TODO: define fields
71
- }
72
- `;
70
+ return `${content.trimEnd()}\n${(0, render_helpers_1.renderDtoBlock)(method)}`;
73
71
  }
74
72
  function patchValidatorMethod(content, _ctx, method) {
75
73
  if (new RegExp(`export const ${method.name} =`).test(content)) {
76
74
  throw new Error(`Method "${method.name}" already exists in validator`);
77
75
  }
78
- return `${content.trimEnd()}
79
- export const ${method.name} = z.object({
80
- body: z.object({
81
- // TODO: define validation schema
82
- }),
83
- });
84
- `;
76
+ return `${content.trimEnd()}\n${(0, render_helpers_1.renderValidatorBlock)(method)}`;
85
77
  }
86
78
  function patchRoutesMethod(content, ctx, method) {
87
79
  if (content.includes(`controller.${method.name}(`)) {
88
80
  throw new Error(`Method "${method.name}" already exists in routes`);
89
81
  }
90
82
  let updated = addImportSymbol(content, new RegExp(`import \\{ (.+) \\} from "\\./${ctx.names.kebab}\\.validator";`), method.name);
91
- const routePath = (0, naming_1.methodToRoutePath)(method.name, method.route);
92
- const snippet = `router.post("${routePath}", validate(${method.name}), (req: Request, res: Response) => controller.${method.name}(req, res));`;
83
+ const snippet = (0, render_helpers_1.renderRouteLine)(method, ctx.middleware);
93
84
  updated = updated.replace(/(\n\nexport default router;\n?)$/, `\n${snippet}$1`);
94
85
  if (updated === content) {
95
86
  throw new Error("Could not patch routes file");
96
87
  }
97
88
  return updated;
98
89
  }
90
+ function removeBlock(content, pattern) {
91
+ return content.replace(pattern, "");
92
+ }
93
+ function removeControllerMethod(content, methodName) {
94
+ return removeBlock(content, new RegExp(`\\n async ${methodName}\\(req: e\\.Request, res: e\\.Response\\) \\{[\\s\\S]*?\\n \\}`, "m"));
95
+ }
96
+ function removeServiceMethod(content, ctx, methodName) {
97
+ let updated = removeBlock(content, new RegExp(`\\n async ${methodName}\\(dto: ${methodName}DTO\\) \\{[\\s\\S]*?\\n \\}`, "m"));
98
+ updated = removeImportSymbol(updated, new RegExp(`import \\{ (.+) \\} from "\\./${ctx.names.kebab}\\.dto";`), `${methodName}DTO`);
99
+ return updated;
100
+ }
101
+ function removeDtoMethod(content, methodName) {
102
+ return removeBlock(content, new RegExp(`\\nexport interface ${methodName}DTO \\{[\\s\\S]*?\\}\\n`, "m")).trimEnd() + "\n";
103
+ }
104
+ function removeValidatorMethod(content, methodName) {
105
+ return removeBlock(content, new RegExp(`\\nexport const ${methodName} = z\\.object\\(\\{[\\s\\S]*?\\}\\);\\n`, "m")).trimEnd() + "\n";
106
+ }
107
+ function removeRoutesMethod(content, ctx, method) {
108
+ const routePath = (0, naming_1.methodToRoutePath)(method.name, method.route);
109
+ const pattern = new RegExp(`\\nrouter\\.${(0, http_1.routerFn)(method.httpMethod)}\\("${routePath.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}"[\\s\\S]*?controller\\.${method.name}\\(req, res\\)\\);`, "m");
110
+ let updated = removeBlock(content, pattern);
111
+ updated = removeImportSymbol(updated, new RegExp(`import \\{ (.+) \\} from "\\./${ctx.names.kebab}\\.validator";`), method.name);
112
+ return updated;
113
+ }
114
+ exports.PATCHERS = {
115
+ controller: patchControllerMethod,
116
+ service: patchServiceMethod,
117
+ dto: patchDtoMethod,
118
+ validator: patchValidatorMethod,
119
+ routes: patchRoutesMethod,
120
+ };
121
+ exports.REMOVERS = {
122
+ controller: (content, _ctx, method) => removeControllerMethod(content, method.name),
123
+ service: (content, ctx, method) => removeServiceMethod(content, ctx, method.name),
124
+ dto: (content, _ctx, method) => removeDtoMethod(content, method.name),
125
+ validator: (content, _ctx, method) => removeValidatorMethod(content, method.name),
126
+ routes: (content, ctx, method) => removeRoutesMethod(content, ctx, method),
127
+ };
99
128
  //# sourceMappingURL=patch-method.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"patch-method.js","sourceRoot":"","sources":["../../src/utils/patch-method.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"patch-method.js","sourceRoot":"","sources":["../../src/utils/patch-method.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { ModulePart, ModuleTemplateContext } from "../interfaces";
2
+ export declare function renderWithTemplate(part: ModulePart, ctx: ModuleTemplateContext, templatesDir: string | undefined, fallback: (ctx: ModuleTemplateContext) => string): string;
3
+ //# sourceMappingURL=template-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-loader.d.ts","sourceRoot":"","sources":["../../src/utils/template-loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAGlE,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,qBAAqB,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,QAAQ,EAAE,CAAC,GAAG,EAAE,qBAAqB,KAAK,MAAM,GAC/C,MAAM,CAWR"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.renderWithTemplate = renderWithTemplate;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ const render_helpers_1 = require("../templates/render-helpers");
7
+ function renderWithTemplate(part, ctx, templatesDir, fallback) {
8
+ if (!templatesDir) {
9
+ return fallback(ctx);
10
+ }
11
+ const templatePath = (0, path_1.join)(templatesDir, `${part}.template`);
12
+ if (!(0, fs_1.existsSync)(templatePath)) {
13
+ return fallback(ctx);
14
+ }
15
+ return (0, render_helpers_1.applyTemplate)((0, fs_1.readFileSync)(templatePath, "utf-8"), ctx, part);
16
+ }
17
+ //# sourceMappingURL=template-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-loader.js","sourceRoot":"","sources":["../../src/utils/template-loader.ts"],"names":[],"mappings":";;AAKA,gDAgBC;AArBD,2BAA8C;AAC9C,+BAA4B;AAE5B,gEAA4D;AAE5D,SAAgB,kBAAkB,CAChC,IAAgB,EAChB,GAA0B,EAC1B,YAAgC,EAChC,QAAgD;IAEhD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC,YAAY,EAAE,GAAG,IAAI,WAAW,CAAC,CAAC;IAC5D,IAAI,CAAC,IAAA,eAAU,EAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,IAAA,8BAAa,EAAC,IAAA,iBAAY,EAAC,YAAY,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACvE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bogomolcompany/bogo",
3
- "version": "0.1.2",
3
+ "version": "0.2.1",
4
4
  "description": "CLI to scaffold Express + TypeScript API projects and generate modules (controller, service, dto, routes, validator)",
5
5
  "license": "MIT",
6
6
  "author": "bogomolcompany",
@@ -38,6 +38,7 @@
38
38
  "scripts": {
39
39
  "build": "tsc",
40
40
  "dev": "ts-node src/cli.ts",
41
+ "test": "vitest run",
41
42
  "prepublishOnly": "npm run build"
42
43
  },
43
44
  "dependencies": {
@@ -46,7 +47,8 @@
46
47
  "devDependencies": {
47
48
  "@types/node": "^22.5.0",
48
49
  "ts-node": "^10.9.2",
49
- "typescript": "^5.5.4"
50
+ "typescript": "^5.5.4",
51
+ "vitest": "^2.0.5"
50
52
  },
51
53
  "engines": {
52
54
  "node": ">=18"