@diagramers/cli 1.0.25 → 1.0.27
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/README.md +239 -388
- package/dist/commands/extend.d.ts.map +1 -1
- package/dist/commands/extend.js +49 -10
- package/dist/commands/extend.js.map +1 -1
- package/dist/commands/init.js +1 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/services/project-extender.d.ts +17 -0
- package/dist/services/project-extender.d.ts.map +1 -1
- package/dist/services/project-extender.js +677 -1
- package/dist/services/project-extender.js.map +1 -1
- package/dist/services/project-initializer.d.ts.map +1 -1
- package/dist/services/project-initializer.js +4 -3
- package/dist/services/project-initializer.js.map +1 -1
- package/dist/services/template-processor.js +1 -1
- package/dist/services/template-processor.js.map +1 -1
- package/package.json +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"extend.d.ts","sourceRoot":"","sources":["../../src/commands/extend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,
|
1
|
+
{"version":3,"file":"extend.d.ts","sourceRoot":"","sources":["../../src/commands/extend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,QAuE7C"}
|
package/dist/commands/extend.js
CHANGED
@@ -9,9 +9,15 @@ const chalk_1 = __importDefault(require("chalk"));
|
|
9
9
|
function extendCommand(program) {
|
10
10
|
program
|
11
11
|
.command('extend')
|
12
|
-
.description('Extend project with additional features')
|
12
|
+
.description('Extend project with additional features and modules')
|
13
13
|
.option('-f, --feature <feature>', 'Feature to add (auth, email, socket, etc.)')
|
14
|
-
.option('-
|
14
|
+
.option('-m, --module <module>', 'Generate new module with full CRUD operations')
|
15
|
+
.option('-t, --table <table>', 'Generate database table/collection')
|
16
|
+
.option('-r, --relation <relation>', 'Generate database relations')
|
17
|
+
.option('-l, --list', 'List available features and templates')
|
18
|
+
.option('--crud', 'Generate full CRUD operations for module')
|
19
|
+
.option('--fields <fields>', 'Comma-separated list of fields for module/table')
|
20
|
+
.option('--type <type>', 'Database type (mongodb, mysql, postgres)')
|
15
21
|
.action(async (options) => {
|
16
22
|
try {
|
17
23
|
if (options.list) {
|
@@ -19,17 +25,50 @@ function extendCommand(program) {
|
|
19
25
|
await extender.listFeatures();
|
20
26
|
return;
|
21
27
|
}
|
22
|
-
if (!options.feature) {
|
23
|
-
console.log(chalk_1.default.red('❌ Please specify a feature to add or use --list to see available features'));
|
24
|
-
process.exit(1);
|
25
|
-
}
|
26
|
-
console.log(chalk_1.default.blue(`🔧 Adding feature: ${options.feature}`));
|
27
28
|
const extender = new project_extender_1.ProjectExtender();
|
28
|
-
|
29
|
-
|
29
|
+
// Generate new module
|
30
|
+
if (options.module) {
|
31
|
+
console.log(chalk_1.default.blue(`🔧 Generating module: ${options.module}`));
|
32
|
+
await extender.generateModule(options.module, {
|
33
|
+
crud: options.crud,
|
34
|
+
fields: options.fields?.split(','),
|
35
|
+
type: options.type || 'mongodb'
|
36
|
+
});
|
37
|
+
console.log(chalk_1.default.green(`✅ Module ${options.module} generated successfully!`));
|
38
|
+
return;
|
39
|
+
}
|
40
|
+
// Generate database table
|
41
|
+
if (options.table) {
|
42
|
+
console.log(chalk_1.default.blue(`🗄️ Generating table: ${options.table}`));
|
43
|
+
await extender.generateTable(options.table, {
|
44
|
+
fields: options.fields?.split(','),
|
45
|
+
type: options.type || 'mongodb'
|
46
|
+
});
|
47
|
+
console.log(chalk_1.default.green(`✅ Table ${options.table} generated successfully!`));
|
48
|
+
return;
|
49
|
+
}
|
50
|
+
// Generate database relations
|
51
|
+
if (options.relation) {
|
52
|
+
console.log(chalk_1.default.blue(`🔗 Generating relations: ${options.relation}`));
|
53
|
+
await extender.generateRelations(options.relation, {
|
54
|
+
type: options.type || 'mongodb'
|
55
|
+
});
|
56
|
+
console.log(chalk_1.default.green(`✅ Relations ${options.relation} generated successfully!`));
|
57
|
+
return;
|
58
|
+
}
|
59
|
+
// Add feature (legacy support)
|
60
|
+
if (options.feature) {
|
61
|
+
console.log(chalk_1.default.blue(`🔧 Adding feature: ${options.feature}`));
|
62
|
+
await extender.addFeature(options.feature);
|
63
|
+
console.log(chalk_1.default.green(`✅ Feature ${options.feature} added successfully!`));
|
64
|
+
return;
|
65
|
+
}
|
66
|
+
console.log(chalk_1.default.red('❌ Please specify what to generate: --module, --table, --relation, or --feature'));
|
67
|
+
console.log(chalk_1.default.yellow('💡 Use --list to see available options'));
|
68
|
+
process.exit(1);
|
30
69
|
}
|
31
70
|
catch (error) {
|
32
|
-
console.error(chalk_1.default.red(`❌ Failed to
|
71
|
+
console.error(chalk_1.default.red(`❌ Failed to extend project: ${error.message}`));
|
33
72
|
process.exit(1);
|
34
73
|
}
|
35
74
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"extend.js","sourceRoot":"","sources":["../../src/commands/extend.ts"],"names":[],"mappings":";;;;;AAIA,
|
1
|
+
{"version":3,"file":"extend.js","sourceRoot":"","sources":["../../src/commands/extend.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.js
CHANGED
@@ -24,7 +24,7 @@ function initCommand(program) {
|
|
24
24
|
console.log(chalk_1.default.green(`✅ Project ${projectName} initialized successfully!`));
|
25
25
|
console.log(chalk_1.default.yellow(`📁 Navigate to the project: cd ${projectName}`));
|
26
26
|
console.log(chalk_1.default.yellow(`🔧 Install dependencies: npm install`));
|
27
|
-
console.log(chalk_1.default.yellow(`🚀 Start development: npm
|
27
|
+
console.log(chalk_1.default.yellow(`🚀 Start development: npm start`));
|
28
28
|
}
|
29
29
|
catch (error) {
|
30
30
|
console.error(chalk_1.default.red(`❌ Failed to initialize project: ${error.message}`));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;AAIA,kCA2BC;AA9BD,yEAAqE;AACrE,kDAA0B;AAE1B,SAAgB,WAAW,CAAC,OAAgB;IAC1C,OAAO;SACJ,OAAO,CAAC,qCAAqC,CAAC;SAC9C,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,2BAA2B,EAAE,yBAAyB,EAAE,QAAQ,CAAC;SACxE,MAAM,CAAC,WAAW,EAAE,+BAA+B,CAAC;SACpD,MAAM,CAAC,KAAK,EAAE,YAAoB,EAAE,WAAmB,EAAE,OAAY,EAAE,EAAE;QACxE,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,uBAAuB,YAAY,aAAa,WAAW,EAAE,CAAC,CAAC,CAAC;YAEvF,yBAAyB;YACzB,IAAI,YAAY,KAAK,KAAK,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;gBACvD,MAAM,IAAI,KAAK,CAAC,8BAA8B,YAAY,+BAA+B,CAAC,CAAC;YAC7F,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,wCAAkB,EAAE,CAAC;YAC7C,MAAM,WAAW,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;YAElF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,aAAa,WAAW,4BAA4B,CAAC,CAAC,CAAC;YAC/E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,kCAAkC,WAAW,EAAE,CAAC,CAAC,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;AAIA,kCA2BC;AA9BD,yEAAqE;AACrE,kDAA0B;AAE1B,SAAgB,WAAW,CAAC,OAAgB;IAC1C,OAAO;SACJ,OAAO,CAAC,qCAAqC,CAAC;SAC9C,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,2BAA2B,EAAE,yBAAyB,EAAE,QAAQ,CAAC;SACxE,MAAM,CAAC,WAAW,EAAE,+BAA+B,CAAC;SACpD,MAAM,CAAC,KAAK,EAAE,YAAoB,EAAE,WAAmB,EAAE,OAAY,EAAE,EAAE;QACxE,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,uBAAuB,YAAY,aAAa,WAAW,EAAE,CAAC,CAAC,CAAC;YAEvF,yBAAyB;YACzB,IAAI,YAAY,KAAK,KAAK,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;gBACvD,MAAM,IAAI,KAAK,CAAC,8BAA8B,YAAY,+BAA+B,CAAC,CAAC;YAC7F,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,wCAAkB,EAAE,CAAC;YAC7C,MAAM,WAAW,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;YAElF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,aAAa,WAAW,4BAA4B,CAAC,CAAC,CAAC;YAC/E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,kCAAkC,WAAW,EAAE,CAAC,CAAC,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,mCAAmC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
@@ -8,7 +8,24 @@ export declare class ProjectExtender {
|
|
8
8
|
private features;
|
9
9
|
listFeatures(): Promise<void>;
|
10
10
|
addFeature(featureName: string): Promise<void>;
|
11
|
+
generateModule(moduleName: string, options?: any): Promise<void>;
|
12
|
+
generateTable(tableName: string, options?: any): Promise<void>;
|
13
|
+
generateRelations(relationName: string, options?: any): Promise<void>;
|
11
14
|
private createFeatureStructure;
|
15
|
+
private createModuleStructure;
|
16
|
+
private createEntity;
|
17
|
+
private createSchema;
|
18
|
+
private createService;
|
19
|
+
private createController;
|
20
|
+
private createRoutes;
|
21
|
+
private generateCRUDOperations;
|
22
|
+
private registerModule;
|
23
|
+
private createTableSchema;
|
24
|
+
private createMongoDBSchema;
|
25
|
+
private createSQLSchema;
|
26
|
+
private createRelations;
|
27
|
+
private createMongoDBRelations;
|
28
|
+
private createSQLRelations;
|
12
29
|
private addDependencies;
|
13
30
|
private updateMainConfiguration;
|
14
31
|
private updateServerFile;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"project-extender.d.ts","sourceRoot":"","sources":["../../src/services/project-extender.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CA8Bd;IAEI,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;
|
1
|
+
{"version":3,"file":"project-extender.d.ts","sourceRoot":"","sources":["../../src/services/project-extender.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CA8Bd;IAEI,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B7B,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B9C,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBpE,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAWlE,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;YAWjE,sBAAsB;YAmGtB,qBAAqB;YAuCrB,YAAY;YAsBZ,YAAY;YAiCZ,aAAa;YAsHb,gBAAgB;YAyOhB,YAAY;YAwBZ,sBAAsB;YAKtB,cAAc;YAyCd,iBAAiB;YAYjB,mBAAmB;YAiCnB,eAAe;YAqBf,eAAe;YAYf,sBAAsB;YAyCtB,kBAAkB;YA4ClB,eAAe;YASf,uBAAuB;YAevB,gBAAgB;YAkDhB,iBAAiB;YAqCjB,iBAAiB;IA4B/B,OAAO,CAAC,eAAe;CAGxB"}
|