easyfeat 1.0.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":";;;;;AAIA,sCA8BC;AAlCD,kDAA0B;AAC1B,oDAAwF;AACxF,sDAAqD;AAErD,SAAgB,aAAa,CAAC,WAAmB;IAC7C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAEpD,qCAAqC;IACrC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,wBAAW,EAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,IAAA,0BAAa,EAAC,KAAK,CAAC,CAAC;IAExC,0BAA0B;IAC1B,IAAI,CAAC,IAAA,uBAAU,EAAC,UAAU,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,YAAY,KAAK,mBAAmB,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC,CAAC;IAE7C,2BAA2B;IAC3B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;IACtD,IAAA,sBAAS,EAAC,UAAU,CAAC,CAAC;IACtB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAC,CAAC;IAEvD,kBAAkB;IAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;IACtD,IAAI,CAAC;QACD,IAAA,2BAAa,EAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,8DAA8D,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,kBAAkB;IAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,KAAK,yBAAyB,CAAC,CAAC,CAAC;AAClF,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './commands/create';
2
+ export * from './commands/delete';
3
+ export * from './utils/template-generator';
4
+ export * from './utils/file-utils';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./commands/create"), exports);
18
+ __exportStar(require("./commands/delete"), exports);
19
+ __exportStar(require("./utils/template-generator"), exports);
20
+ __exportStar(require("./utils/file-utils"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,oDAAkC;AAClC,6DAA2C;AAC3C,qDAAmC"}
@@ -0,0 +1,42 @@
1
+ export interface CaseConversions {
2
+ kebab: string;
3
+ pascal: string;
4
+ camel: string;
5
+ }
6
+ /**
7
+ * Convert a feature name to different cases
8
+ */
9
+ export declare function convertCase(name: string): CaseConversions;
10
+ /**
11
+ * Ensure directory exists, create if it doesn't
12
+ */
13
+ export declare function ensureDir(dirPath: string): void;
14
+ /**
15
+ * Remove directory recursively
16
+ */
17
+ export declare function removeDir(dirPath: string): void;
18
+ /**
19
+ * Write file with content
20
+ */
21
+ export declare function writeFile(filePath: string, content: string): void;
22
+ /**
23
+ * Read file content
24
+ */
25
+ export declare function readFile(filePath: string): string;
26
+ /**
27
+ * Check if file exists
28
+ */
29
+ export declare function fileExists(filePath: string): boolean;
30
+ /**
31
+ * Get the target directory for feature
32
+ */
33
+ export declare function getFeatureDir(featureName: string): string;
34
+ /**
35
+ * Get routes directory
36
+ */
37
+ export declare function getRoutesDir(): string;
38
+ /**
39
+ * Get core interfaces directory
40
+ */
41
+ export declare function getCoreInterfacesDir(): string;
42
+ //# sourceMappingURL=file-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-utils.d.ts","sourceRoot":"","sources":["../../src/utils/file-utils.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CASzD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAI/C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAI/C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAIjE;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C"}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.convertCase = convertCase;
37
+ exports.ensureDir = ensureDir;
38
+ exports.removeDir = removeDir;
39
+ exports.writeFile = writeFile;
40
+ exports.readFile = readFile;
41
+ exports.fileExists = fileExists;
42
+ exports.getFeatureDir = getFeatureDir;
43
+ exports.getRoutesDir = getRoutesDir;
44
+ exports.getCoreInterfacesDir = getCoreInterfacesDir;
45
+ const fs = __importStar(require("fs"));
46
+ const path = __importStar(require("path"));
47
+ /**
48
+ * Convert a feature name to different cases
49
+ */
50
+ function convertCase(name) {
51
+ const kebab = name.toLowerCase().replace(/\s+/g, '-');
52
+ const pascal = name.charAt(0).toUpperCase() +
53
+ name.slice(1)
54
+ .toLowerCase()
55
+ .replace(/[-\s](\w)/g, (_, c) => c.toUpperCase());
56
+ const camel = pascal.charAt(0).toLowerCase() + pascal.slice(1);
57
+ return { kebab, pascal, camel };
58
+ }
59
+ /**
60
+ * Ensure directory exists, create if it doesn't
61
+ */
62
+ function ensureDir(dirPath) {
63
+ if (!fs.existsSync(dirPath)) {
64
+ fs.mkdirSync(dirPath, { recursive: true });
65
+ }
66
+ }
67
+ /**
68
+ * Remove directory recursively
69
+ */
70
+ function removeDir(dirPath) {
71
+ if (fs.existsSync(dirPath)) {
72
+ fs.rmSync(dirPath, { recursive: true, force: true });
73
+ }
74
+ }
75
+ /**
76
+ * Write file with content
77
+ */
78
+ function writeFile(filePath, content) {
79
+ const dir = path.dirname(filePath);
80
+ ensureDir(dir);
81
+ fs.writeFileSync(filePath, content, 'utf-8');
82
+ }
83
+ /**
84
+ * Read file content
85
+ */
86
+ function readFile(filePath) {
87
+ return fs.readFileSync(filePath, 'utf-8');
88
+ }
89
+ /**
90
+ * Check if file exists
91
+ */
92
+ function fileExists(filePath) {
93
+ return fs.existsSync(filePath);
94
+ }
95
+ /**
96
+ * Get the target directory for feature
97
+ */
98
+ function getFeatureDir(featureName) {
99
+ return path.join(process.cwd(), 'src', 'features', featureName);
100
+ }
101
+ /**
102
+ * Get routes directory
103
+ */
104
+ function getRoutesDir() {
105
+ return path.join(process.cwd(), 'src', 'routes');
106
+ }
107
+ /**
108
+ * Get core interfaces directory
109
+ */
110
+ function getCoreInterfacesDir() {
111
+ return path.join(process.cwd(), 'src', 'core', 'interfaces');
112
+ }
113
+ //# sourceMappingURL=file-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-utils.js","sourceRoot":"","sources":["../../src/utils/file-utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,kCASC;AAKD,8BAIC;AAKD,8BAIC;AAKD,8BAIC;AAKD,4BAEC;AAKD,gCAEC;AAKD,sCAEC;AAKD,oCAEC;AAKD,oDAEC;AAnFD,uCAAyB;AACzB,2CAA6B;AAQ7B;;GAEG;AACH,SAAgB,WAAW,CAAC,IAAY;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;QACvC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;aACR,WAAW,EAAE;aACb,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE/D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,OAAe;IACrC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,OAAe;IACrC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,QAAgB,EAAE,OAAe;IACvD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,SAAS,CAAC,GAAG,CAAC,CAAC;IACf,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,SAAgB,QAAQ,CAAC,QAAgB;IACrC,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,QAAgB;IACvC,OAAO,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,WAAmB;IAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AACpE,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY;IACxB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;AACjE,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function updateRoutes(featureName: string, version?: string): void;
2
+ export declare function cleanupRoutes(featureName: string): void;
3
+ //# sourceMappingURL=route-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-utils.d.ts","sourceRoot":"","sources":["../../src/utils/route-utils.ts"],"names":[],"mappings":"AAGA,wBAAgB,YAAY,CACxB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,MAAa,GACvB,IAAI,CAsFN;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CA0CvD"}
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.updateRoutes = updateRoutes;
37
+ exports.cleanupRoutes = cleanupRoutes;
38
+ const path = __importStar(require("path"));
39
+ const file_utils_1 = require("./file-utils");
40
+ function updateRoutes(featureName, version = 'v1') {
41
+ const routesDir = (0, file_utils_1.getRoutesDir)();
42
+ const versionDir = path.join(routesDir, version);
43
+ const versionIndexPath = path.join(versionDir, 'index.ts');
44
+ // Create version directory if it doesn't exist
45
+ if (!(0, file_utils_1.fileExists)(versionDir)) {
46
+ (0, file_utils_1.ensureDir)(versionDir);
47
+ const initialVersionContent = `import express from 'express';
48
+
49
+ const router = express.Router();
50
+
51
+ export default router;
52
+ `;
53
+ (0, file_utils_1.writeFile)(versionIndexPath, initialVersionContent);
54
+ }
55
+ // Update version index file
56
+ let versionContent = (0, file_utils_1.fileExists)(versionIndexPath)
57
+ ? (0, file_utils_1.readFile)(versionIndexPath)
58
+ : `import express from 'express';\n\nconst router = express.Router();\n\nexport default router;\n`;
59
+ // Add import statement if not exists
60
+ const importStatement = `import ${featureName}Routes from '../../features/${featureName}/routes/${featureName}.routes';`;
61
+ if (!versionContent.includes(importStatement)) {
62
+ const lastImportIndex = versionContent.lastIndexOf('import');
63
+ const insertPosition = lastImportIndex === -1
64
+ ? 0
65
+ : versionContent.indexOf(';', lastImportIndex) + 1;
66
+ const beforeImport = versionContent.substring(0, insertPosition);
67
+ const afterImport = versionContent.substring(insertPosition);
68
+ versionContent =
69
+ beforeImport +
70
+ (insertPosition ? '\n' : '') +
71
+ importStatement +
72
+ afterImport;
73
+ }
74
+ // Add route registration if not exists
75
+ const routeRegistration = `router.use('/${featureName}', ${featureName}Routes);`;
76
+ if (!versionContent.includes(routeRegistration)) {
77
+ const exportIndex = versionContent.lastIndexOf('export');
78
+ const beforeExport = versionContent.substring(0, exportIndex);
79
+ const afterExport = versionContent.substring(exportIndex);
80
+ versionContent = beforeExport + routeRegistration + '\n\n' + afterExport;
81
+ }
82
+ // Write updated version content
83
+ (0, file_utils_1.writeFile)(versionIndexPath, versionContent);
84
+ // Update main routes index file
85
+ const mainIndexPath = path.join(routesDir, 'index.ts');
86
+ let mainContent = (0, file_utils_1.fileExists)(mainIndexPath)
87
+ ? (0, file_utils_1.readFile)(mainIndexPath)
88
+ : `import express from 'express';\n\nconst router = express.Router();\n\nexport default router;\n`;
89
+ // Add version import if not exists
90
+ const versionImport = `import ${version}Routes from './${version}';`;
91
+ if (!mainContent.includes(versionImport)) {
92
+ const lastImportIndex = mainContent.lastIndexOf('import');
93
+ const insertPosition = lastImportIndex === -1
94
+ ? 0
95
+ : mainContent.indexOf(';', lastImportIndex) + 1;
96
+ const beforeImport = mainContent.substring(0, insertPosition);
97
+ const afterImport = mainContent.substring(insertPosition);
98
+ mainContent =
99
+ beforeImport + (insertPosition ? '\n' : '') + versionImport + afterImport;
100
+ }
101
+ // Add version route registration if not exists
102
+ const versionRegistration = `router.use('/${version}', ${version}Routes);`;
103
+ if (!mainContent.includes(versionRegistration)) {
104
+ const exportIndex = mainContent.lastIndexOf('export');
105
+ const beforeExport = mainContent.substring(0, exportIndex);
106
+ const afterExport = mainContent.substring(exportIndex);
107
+ mainContent = beforeExport + versionRegistration + '\n\n' + afterExport;
108
+ }
109
+ // Write updated main content
110
+ (0, file_utils_1.writeFile)(mainIndexPath, mainContent);
111
+ }
112
+ function cleanupRoutes(featureName) {
113
+ const routesDir = (0, file_utils_1.getRoutesDir)();
114
+ if (!(0, file_utils_1.fileExists)(routesDir)) {
115
+ return;
116
+ }
117
+ // Get all version directories
118
+ const fs = require('fs');
119
+ const versionDirs = fs
120
+ .readdirSync(routesDir)
121
+ .filter((dir) => dir.startsWith('v') &&
122
+ fs.statSync(path.join(routesDir, dir)).isDirectory());
123
+ versionDirs.forEach((version) => {
124
+ const versionIndexPath = path.join(routesDir, version, 'index.ts');
125
+ if ((0, file_utils_1.fileExists)(versionIndexPath)) {
126
+ let content = (0, file_utils_1.readFile)(versionIndexPath);
127
+ // Remove import statement
128
+ const importRegex = new RegExp(`import\\s+${featureName}Routes\\s+from\\s+['"]../../features/${featureName}/routes/${featureName}.routes['"];?\\n?`, 'g');
129
+ content = content.replace(importRegex, '');
130
+ // Remove route registration
131
+ const routeRegex = new RegExp(`\\s*router\\.use\\s*\\(['"]/${featureName}['"]\\s*,\\s*${featureName}Routes\\);?\\n?`, 'g');
132
+ content = content.replace(routeRegex, '');
133
+ // Clean up extra newlines
134
+ content = content.replace(/\n{3,}/g, '\n\n');
135
+ (0, file_utils_1.writeFile)(versionIndexPath, content);
136
+ }
137
+ });
138
+ }
139
+ //# sourceMappingURL=route-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-utils.js","sourceRoot":"","sources":["../../src/utils/route-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ export interface TemplateContext {
2
+ featureNameKebab: string;
3
+ featureNamePascal: string;
4
+ featureNameCamel: string;
5
+ }
6
+ export declare const templates: {
7
+ baseRepositoryInterface: () => string;
8
+ entity: (ctx: TemplateContext) => string;
9
+ entityMinimal: (ctx: TemplateContext) => string;
10
+ repositoryInterface: (ctx: TemplateContext) => string;
11
+ repositoryInterfaceMinimal: (ctx: TemplateContext) => string;
12
+ repository: (ctx: TemplateContext) => string;
13
+ repositoryMinimal: (ctx: TemplateContext) => string;
14
+ mapper: (ctx: TemplateContext) => string;
15
+ validation: (ctx: TemplateContext) => string;
16
+ createDto: (ctx: TemplateContext) => string;
17
+ updateDto: (ctx: TemplateContext) => string;
18
+ model: (ctx: TemplateContext) => string;
19
+ modelMinimal: (ctx: TemplateContext) => string;
20
+ serviceInterface: (ctx: TemplateContext) => string;
21
+ serviceInterfaceMinimal: (ctx: TemplateContext) => string;
22
+ service: (ctx: TemplateContext) => string;
23
+ serviceMinimal: (ctx: TemplateContext) => string;
24
+ controller: (ctx: TemplateContext) => string;
25
+ controllerMinimal: (ctx: TemplateContext) => string;
26
+ routes: (ctx: TemplateContext) => string;
27
+ routesMinimal: (ctx: TemplateContext) => string;
28
+ };
29
+ //# sourceMappingURL=template-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-generator.d.ts","sourceRoot":"","sources":["../../src/utils/template-generator.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;CAC5B;AAED,eAAO,MAAM,SAAS;;kBAWJ,eAAe;yBAkBR,eAAe;+BAUT,eAAe;sCAOR,eAAe;sBAK/B,eAAe;6BAgDR,eAAe;kBAkC1B,eAAe;sBA+BX,eAAe;qBA2BhB,eAAe;qBAcf,eAAe;iBAcnB,eAAe;wBAuBR,eAAe;4BAaX,eAAe;mCAYR,eAAe;mBAM/B,eAAe;0BAqCR,eAAe;sBAenB,eAAe;6BA6ER,eAAe;kBAW1B,eAAe;yBAcR,eAAe;CAOvC,CAAC"}