@warlock.js/core 4.0.130 → 4.0.132
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/esm/cli/commands/generate/generate.command.d.ts +10 -0
- package/esm/cli/commands/generate/generate.command.d.ts.map +1 -0
- package/esm/cli/commands/generate/generate.command.js +167 -0
- package/esm/cli/commands/generate/generate.command.js.map +1 -0
- package/esm/cli/commands/generate/generators/controller.generator.d.ts +3 -0
- package/esm/cli/commands/generate/generators/controller.generator.d.ts.map +1 -0
- package/esm/cli/commands/generate/generators/controller.generator.js +51 -0
- package/esm/cli/commands/generate/generators/controller.generator.js.map +1 -0
- package/esm/cli/commands/generate/generators/migration.generator.d.ts +13 -0
- package/esm/cli/commands/generate/generators/migration.generator.d.ts.map +1 -0
- package/esm/cli/commands/generate/generators/migration.generator.js +42 -0
- package/esm/cli/commands/generate/generators/migration.generator.js.map +1 -0
- package/esm/cli/commands/generate/generators/model.generator.d.ts +3 -0
- package/esm/cli/commands/generate/generators/model.generator.d.ts.map +1 -0
- package/esm/cli/commands/generate/generators/model.generator.js +56 -0
- package/esm/cli/commands/generate/generators/model.generator.js.map +1 -0
- package/esm/cli/commands/generate/generators/module.generator.d.ts +3 -0
- package/esm/cli/commands/generate/generators/module.generator.d.ts.map +1 -0
- package/esm/cli/commands/generate/generators/module.generator.js +156 -0
- package/esm/cli/commands/generate/generators/module.generator.js.map +1 -0
- package/esm/cli/commands/generate/generators/repository.generator.d.ts +3 -0
- package/esm/cli/commands/generate/generators/repository.generator.d.ts.map +1 -0
- package/esm/cli/commands/generate/generators/repository.generator.js +37 -0
- package/esm/cli/commands/generate/generators/repository.generator.js.map +1 -0
- package/esm/cli/commands/generate/generators/resource.generator.d.ts +3 -0
- package/esm/cli/commands/generate/generators/resource.generator.d.ts.map +1 -0
- package/esm/cli/commands/generate/generators/resource.generator.js +37 -0
- package/esm/cli/commands/generate/generators/resource.generator.js.map +1 -0
- package/esm/cli/commands/generate/generators/service.generator.d.ts +3 -0
- package/esm/cli/commands/generate/generators/service.generator.d.ts.map +1 -0
- package/esm/cli/commands/generate/generators/service.generator.js +37 -0
- package/esm/cli/commands/generate/generators/service.generator.js.map +1 -0
- package/esm/cli/commands/generate/generators/validation.generator.d.ts +3 -0
- package/esm/cli/commands/generate/generators/validation.generator.d.ts.map +1 -0
- package/esm/cli/commands/generate/generators/validation.generator.js +46 -0
- package/esm/cli/commands/generate/generators/validation.generator.js.map +1 -0
- package/esm/cli/commands/generate/templates/stubs.d.ts +111 -0
- package/esm/cli/commands/generate/templates/stubs.d.ts.map +1 -0
- package/esm/cli/commands/generate/templates/stubs.js +569 -0
- package/esm/cli/commands/generate/templates/stubs.js.map +1 -0
- package/esm/cli/commands/generate/types.d.ts +53 -0
- package/esm/cli/commands/generate/types.d.ts.map +1 -0
- package/esm/cli/commands/generate/utils/name-parser.d.ts +45 -0
- package/esm/cli/commands/generate/utils/name-parser.d.ts.map +1 -0
- package/esm/cli/commands/generate/utils/name-parser.js +76 -0
- package/esm/cli/commands/generate/utils/name-parser.js.map +1 -0
- package/esm/cli/commands/generate/utils/path-resolver.d.ts +30 -0
- package/esm/cli/commands/generate/utils/path-resolver.d.ts.map +1 -0
- package/esm/cli/commands/generate/utils/path-resolver.js +42 -0
- package/esm/cli/commands/generate/utils/path-resolver.js.map +1 -0
- package/esm/cli/commands/generate/utils/prompt.d.ts +13 -0
- package/esm/cli/commands/generate/utils/prompt.d.ts.map +1 -0
- package/esm/cli/framework-cli-commands.d.ts.map +1 -1
- package/esm/cli/framework-cli-commands.js +11 -1
- package/esm/cli/framework-cli-commands.js.map +1 -1
- package/esm/index.js +1 -1
- package/esm/resource/define-resource.d.ts.map +1 -1
- package/esm/resource/define-resource.js +6 -2
- package/esm/resource/define-resource.js.map +1 -1
- package/esm/resource/index.d.ts +1 -0
- package/esm/resource/index.d.ts.map +1 -1
- package/esm/resource/register-resource.d.ts +21 -0
- package/esm/resource/register-resource.d.ts.map +1 -0
- package/esm/resource/register-resource.js +23 -0
- package/esm/resource/register-resource.js.map +1 -0
- package/esm/resource/resource-field-builder.d.ts +22 -1
- package/esm/resource/resource-field-builder.d.ts.map +1 -1
- package/esm/resource/resource-field-builder.js +71 -14
- package/esm/resource/resource-field-builder.js.map +1 -1
- package/esm/resource/resource.d.ts +19 -8
- package/esm/resource/resource.d.ts.map +1 -1
- package/esm/resource/resource.js +59 -40
- package/esm/resource/resource.js.map +1 -1
- package/esm/resource/types.d.ts +25 -1
- package/esm/resource/types.d.ts.map +1 -1
- package/esm/router/types.d.ts +6 -0
- package/esm/router/types.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const generateCommand: import("../../cli-command").CLICommand;
|
|
2
|
+
export declare const generateModuleCommand: import("../../cli-command").CLICommand;
|
|
3
|
+
export declare const generateControllerCommand: import("../../cli-command").CLICommand;
|
|
4
|
+
export declare const generateServiceCommand: import("../../cli-command").CLICommand;
|
|
5
|
+
export declare const generateModelCommand: import("../../cli-command").CLICommand;
|
|
6
|
+
export declare const generateRepositoryCommand: import("../../cli-command").CLICommand;
|
|
7
|
+
export declare const generateResourceCommand: import("../../cli-command").CLICommand;
|
|
8
|
+
export declare const generateValidationCommand: import("../../cli-command").CLICommand;
|
|
9
|
+
export declare const generateMigrationCommand: import("../../cli-command").CLICommand;
|
|
10
|
+
//# sourceMappingURL=generate.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/generate/generate.command.ts"],"names":[],"mappings":"AAyDA,eAAO,MAAM,eAAe,wCAW1B,CAAC;AAGH,eAAO,MAAM,qBAAqB,wCAehC,CAAC;AAEH,eAAO,MAAM,yBAAyB,wCAepC,CAAC;AAEH,eAAO,MAAM,sBAAsB,wCAWjC,CAAC;AAEH,eAAO,MAAM,oBAAoB,wCAmB/B,CAAC;AAEH,eAAO,MAAM,yBAAyB,wCAWpC,CAAC;AAEH,eAAO,MAAM,uBAAuB,wCAWlC,CAAC;AAEH,eAAO,MAAM,yBAAyB,wCAepC,CAAC;AAEH,eAAO,MAAM,wBAAwB,wCAWnC,CAAC"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import {colors}from'@mongez/copper';import {command}from'../../cli-command.js';import {generateController}from'./generators/controller.generator.js';import {generateMigration}from'./generators/migration.generator.js';import {generateModel}from'./generators/model.generator.js';import {generateModule}from'./generators/module.generator.js';import {generateRepository}from'./generators/repository.generator.js';import {generateResource}from'./generators/resource.generator.js';import {generateService}from'./generators/service.generator.js';import {generateValidation}from'./generators/validation.generator.js';const generators = {
|
|
2
|
+
module: generateModule,
|
|
3
|
+
controller: generateController,
|
|
4
|
+
service: generateService,
|
|
5
|
+
model: generateModel,
|
|
6
|
+
migration: generateMigration,
|
|
7
|
+
repository: generateRepository,
|
|
8
|
+
resource: generateResource,
|
|
9
|
+
validation: generateValidation,
|
|
10
|
+
};
|
|
11
|
+
async function generateCommandAction(data) {
|
|
12
|
+
const commandName = data.args[0];
|
|
13
|
+
if (!commandName) {
|
|
14
|
+
console.log(colors.red("Error: Generator name is required"));
|
|
15
|
+
console.log(colors.yellow("\nAvailable generators:"));
|
|
16
|
+
Object.keys(generators).forEach((cmd) => {
|
|
17
|
+
console.log(colors.cyan(` - ${cmd}`));
|
|
18
|
+
});
|
|
19
|
+
console.log(colors.yellow("\nUsage: warlock generate <generator> <name> [options]"));
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
const generator = generators[commandName];
|
|
23
|
+
if (!generator) {
|
|
24
|
+
console.log(colors.red(`Error: Unknown generator "${commandName}"`));
|
|
25
|
+
console.log(colors.yellow("\nAvailable generators:"));
|
|
26
|
+
Object.keys(generators).forEach((cmd) => {
|
|
27
|
+
console.log(colors.cyan(` - ${cmd}`));
|
|
28
|
+
});
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
// Remove the command name from args for the generator
|
|
32
|
+
const generatorData = {
|
|
33
|
+
...data,
|
|
34
|
+
args: data.args.slice(1),
|
|
35
|
+
};
|
|
36
|
+
await generator(generatorData);
|
|
37
|
+
}
|
|
38
|
+
// Master generate command
|
|
39
|
+
const generateCommand = command({
|
|
40
|
+
name: "generate <generator> [args...]",
|
|
41
|
+
alias: "g",
|
|
42
|
+
description: "Scaffold a new component",
|
|
43
|
+
action: generateCommandAction,
|
|
44
|
+
options: [
|
|
45
|
+
{
|
|
46
|
+
text: "--force, -f",
|
|
47
|
+
description: "Overwrite existing files",
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
});
|
|
51
|
+
// Individual commands
|
|
52
|
+
const generateModuleCommand = command({
|
|
53
|
+
name: "generate.module <name>",
|
|
54
|
+
alias: "gen.m",
|
|
55
|
+
description: "Generate a new module",
|
|
56
|
+
action: generateModule,
|
|
57
|
+
options: [
|
|
58
|
+
{
|
|
59
|
+
text: "--crud, -c",
|
|
60
|
+
description: "Generate full CRUD scaffold (controllers, model, validation, routes)",
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
text: "--force, -f",
|
|
64
|
+
description: "Overwrite existing files",
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
});
|
|
68
|
+
const generateControllerCommand = command({
|
|
69
|
+
name: "generate.controller <module>/<name>",
|
|
70
|
+
alias: "gen.c",
|
|
71
|
+
description: "Generate a new controller",
|
|
72
|
+
action: generateController,
|
|
73
|
+
options: [
|
|
74
|
+
{
|
|
75
|
+
text: "--with-validation, -v",
|
|
76
|
+
description: "Generate validation schema and request type",
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
text: "--force, -f",
|
|
80
|
+
description: "Overwrite existing files",
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
});
|
|
84
|
+
const generateServiceCommand = command({
|
|
85
|
+
name: "generate.service <module>/<name>",
|
|
86
|
+
alias: "gen.s",
|
|
87
|
+
description: "Generate a new service",
|
|
88
|
+
action: generateService,
|
|
89
|
+
options: [
|
|
90
|
+
{
|
|
91
|
+
text: "--force, -f",
|
|
92
|
+
description: "Overwrite existing files",
|
|
93
|
+
},
|
|
94
|
+
],
|
|
95
|
+
});
|
|
96
|
+
const generateModelCommand = command({
|
|
97
|
+
name: "generate.model <module>/<name>",
|
|
98
|
+
alias: "gen.md",
|
|
99
|
+
description: "Generate a new model with migration",
|
|
100
|
+
action: generateModel,
|
|
101
|
+
options: [
|
|
102
|
+
{
|
|
103
|
+
text: "--with-resource, -rs",
|
|
104
|
+
description: "Generate resource",
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
text: "--table <name>",
|
|
108
|
+
description: "Specify table name",
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
text: "--force, -f",
|
|
112
|
+
description: "Overwrite existing files",
|
|
113
|
+
},
|
|
114
|
+
],
|
|
115
|
+
});
|
|
116
|
+
const generateRepositoryCommand = command({
|
|
117
|
+
name: "generate.repository <module>/<name>",
|
|
118
|
+
alias: "gen.r",
|
|
119
|
+
description: "Generate a new repository",
|
|
120
|
+
action: generateRepository,
|
|
121
|
+
options: [
|
|
122
|
+
{
|
|
123
|
+
text: "--force, -f",
|
|
124
|
+
description: "Overwrite existing files",
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
});
|
|
128
|
+
const generateResourceCommand = command({
|
|
129
|
+
name: "generate.resource <module>/<name>",
|
|
130
|
+
alias: "gen.rs",
|
|
131
|
+
description: "Generate a new resource",
|
|
132
|
+
action: generateResource,
|
|
133
|
+
options: [
|
|
134
|
+
{
|
|
135
|
+
text: "--force, -f",
|
|
136
|
+
description: "Overwrite existing files",
|
|
137
|
+
},
|
|
138
|
+
],
|
|
139
|
+
});
|
|
140
|
+
const generateValidationCommand = command({
|
|
141
|
+
name: "generate.validation <module>/<name>",
|
|
142
|
+
alias: "gen.v",
|
|
143
|
+
description: "Generate a new validation schema",
|
|
144
|
+
action: generateValidation,
|
|
145
|
+
options: [
|
|
146
|
+
{
|
|
147
|
+
text: "--with-request, -r",
|
|
148
|
+
description: "Generate request type",
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
text: "--force, -f",
|
|
152
|
+
description: "Overwrite existing files",
|
|
153
|
+
},
|
|
154
|
+
],
|
|
155
|
+
});
|
|
156
|
+
const generateMigrationCommand = command({
|
|
157
|
+
name: "generate.migration <model-path>",
|
|
158
|
+
alias: "gen.mig",
|
|
159
|
+
description: "Generate a new migration for a model",
|
|
160
|
+
action: generateMigration,
|
|
161
|
+
options: [
|
|
162
|
+
{
|
|
163
|
+
text: "--force, -f",
|
|
164
|
+
description: "Overwrite existing files",
|
|
165
|
+
},
|
|
166
|
+
],
|
|
167
|
+
});export{generateCommand,generateControllerCommand,generateMigrationCommand,generateModelCommand,generateModuleCommand,generateRepositoryCommand,generateResourceCommand,generateServiceCommand,generateValidationCommand};//# sourceMappingURL=generate.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.command.js","sources":["../../../../src/cli/commands/generate/generate.command.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.generator.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/generate/generators/controller.generator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAUxD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgE/E"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import {colors}from'@mongez/copper';import {putFileAsync}from'@mongez/fs';import {controllerStub,validationStub,requestStub}from'../templates/stubs.js';import {parseModulePath,parseName}from'../utils/name-parser.js';import {moduleExists,resolveComponentPath,componentExists,ensureComponentDirectory}from'../utils/path-resolver.js';async function generateController(data) {
|
|
2
|
+
const input = data.args[0];
|
|
3
|
+
if (!input) {
|
|
4
|
+
console.log(colors.red("Error: Controller name is required"));
|
|
5
|
+
console.log(colors.yellow("Usage: warlock create.controller <module>/<name>"));
|
|
6
|
+
console.log(colors.yellow("Example: warlock create.controller users/create-user"));
|
|
7
|
+
process.exit(1);
|
|
8
|
+
}
|
|
9
|
+
const { module, name: componentName } = parseModulePath(input);
|
|
10
|
+
if (!module) {
|
|
11
|
+
console.log(colors.red("Error: Module name is required"));
|
|
12
|
+
console.log(colors.yellow("Usage: warlock create.controller <module>/<name>"));
|
|
13
|
+
process.exit(1);
|
|
14
|
+
}
|
|
15
|
+
// Check if module exists
|
|
16
|
+
if (!(await moduleExists(module))) {
|
|
17
|
+
console.log(colors.red(`Error: Module "${module}" does not exist`));
|
|
18
|
+
console.log(colors.yellow(`Run: warlock create.module ${module}`));
|
|
19
|
+
process.exit(1);
|
|
20
|
+
}
|
|
21
|
+
const name = parseName(componentName, module);
|
|
22
|
+
const withValidation = data.options.withValidation || data.options.v;
|
|
23
|
+
const force = data.options.force || data.options.f;
|
|
24
|
+
// Check if controller already exists
|
|
25
|
+
const controllerPath = resolveComponentPath(module, "controllers", `${name.kebab}.controller`);
|
|
26
|
+
if ((await componentExists(module, "controllers", `${name.kebab}.controller`)) && !force) {
|
|
27
|
+
console.log(colors.red(`Error: Controller "${name.kebab}.controller.ts" already exists`));
|
|
28
|
+
console.log(colors.yellow("Use --force to overwrite"));
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
// Ensure directories exist
|
|
32
|
+
await ensureComponentDirectory(module, "controllers");
|
|
33
|
+
// Generate controller
|
|
34
|
+
const controllerContent = controllerStub(name, { withValidation: !!withValidation });
|
|
35
|
+
await putFileAsync(controllerPath, controllerContent);
|
|
36
|
+
console.log(colors.green(`✓ Created controller: ${controllerPath}`));
|
|
37
|
+
// Generate validation and request if requested
|
|
38
|
+
if (withValidation) {
|
|
39
|
+
await ensureComponentDirectory(module, "validation");
|
|
40
|
+
await ensureComponentDirectory(module, "requests");
|
|
41
|
+
const validationPath = resolveComponentPath(module, "validation", `${name.kebab}.schema`);
|
|
42
|
+
const requestPath = resolveComponentPath(module, "requests", `${name.kebab}.request`);
|
|
43
|
+
const validationContent = validationStub(name);
|
|
44
|
+
const requestContent = requestStub(name);
|
|
45
|
+
await putFileAsync(validationPath, validationContent);
|
|
46
|
+
await putFileAsync(requestPath, requestContent);
|
|
47
|
+
console.log(colors.green(`✓ Created validation: ${validationPath}`));
|
|
48
|
+
console.log(colors.green(`✓ Created request: ${requestPath}`));
|
|
49
|
+
}
|
|
50
|
+
console.log(colors.cyan(`\n✨ Controller "${name.camel}" generated successfully!`));
|
|
51
|
+
}export{generateController};//# sourceMappingURL=controller.generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.generator.js","sources":["../../../../../src/cli/commands/generate/generators/controller.generator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { CommandActionData } from "../../../types";
|
|
2
|
+
/**
|
|
3
|
+
* Generate a migration file for a model
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Create a migration file for a model
|
|
7
|
+
*/
|
|
8
|
+
export declare function createMigrationFile(moduleName: string, entityName: string): Promise<string>;
|
|
9
|
+
/**
|
|
10
|
+
* Generate a migration file for a model
|
|
11
|
+
*/
|
|
12
|
+
export declare function generateMigration(data: CommandActionData): Promise<void>;
|
|
13
|
+
//# sourceMappingURL=migration.generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration.generator.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/generate/generators/migration.generator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAIxD;;GAEG;AACH;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,mBAmB/E;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,iBAwB9D"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import {colors}from'@mongez/copper';import {ensureDirectoryAsync,putFileAsync}from'@mongez/fs';import path from'node:path';import'@warlock.js/logger';import'../../../../database/models/database-log/database-log.js';import'../../../../http/context/request-context.js';import {appPath}from'../../../../utils/paths.js';import'@mongez/slug';import'@mongez/supportive-is';import'@mongez/reinforcements';import {migrationStub}from'../templates/stubs.js';import {parseName}from'../utils/name-parser.js';/**
|
|
2
|
+
* Generate a migration file for a model
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Create a migration file for a model
|
|
6
|
+
*/
|
|
7
|
+
async function createMigrationFile(moduleName, entityName) {
|
|
8
|
+
const entity = parseName(entityName);
|
|
9
|
+
// Generate timestamp: MM-DD-YYYY_HH-MM-SS
|
|
10
|
+
const now = new Date();
|
|
11
|
+
const timestamp = `${String(now.getMonth() + 1).padStart(2, "0")}-${String(now.getDate()).padStart(2, "0")}-${now.getFullYear()}_${String(now.getHours()).padStart(2, "0")}-${String(now.getMinutes()).padStart(2, "0")}-${String(now.getSeconds()).padStart(2, "0")}`;
|
|
12
|
+
const migrationFileName = `${timestamp}-${entity.kebab}.migration.ts`;
|
|
13
|
+
const migrationsPath = path.join(appPath(), moduleName, "models", entity.kebab, "migrations");
|
|
14
|
+
// Ensure migrations directory exists
|
|
15
|
+
await ensureDirectoryAsync(migrationsPath);
|
|
16
|
+
// Create migration file
|
|
17
|
+
const migrationFilePath = path.join(migrationsPath, migrationFileName);
|
|
18
|
+
await putFileAsync(migrationFilePath, migrationStub(entity));
|
|
19
|
+
console.log(colors.green(`✓ Created ${migrationFileName}`));
|
|
20
|
+
return migrationFilePath;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Generate a migration file for a model
|
|
24
|
+
*/
|
|
25
|
+
async function generateMigration(data) {
|
|
26
|
+
const modelPath = data.args[0];
|
|
27
|
+
if (!modelPath) {
|
|
28
|
+
console.log(colors.red("Error: Model path is required"));
|
|
29
|
+
console.log(colors.gray("Usage: warlock gen.migration <model-path>"));
|
|
30
|
+
console.log(colors.gray("Example: warlock gen.migration products/product"));
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
// Parse model path (e.g., "products/product")
|
|
34
|
+
const [moduleName, entityName] = modelPath.split("/");
|
|
35
|
+
if (!moduleName || !entityName) {
|
|
36
|
+
console.log(colors.red("Error: Invalid model path format. Expected: <module>/<entity>"));
|
|
37
|
+
console.log(colors.gray("Example: warlock gen.migration products/product"));
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const migrationFilePath = await createMigrationFile(moduleName, entityName);
|
|
41
|
+
console.log(colors.cyan(`\n✨ Migration file created at: ${path.relative(appPath(), migrationFilePath)}`));
|
|
42
|
+
}export{createMigrationFile,generateMigration};//# sourceMappingURL=migration.generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration.generator.js","sources":["../../../../../src/cli/commands/generate/generators/migration.generator.ts"],"sourcesContent":[null],"names":[],"mappings":"gfAQA;;AAEG;AACH;;AAEG;AACI,eAAe,mBAAmB,CAAC,UAAkB,EAAE,UAAkB,EAAA;AAC9E,IAAA,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;;AAGrC,IAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;AACvB,IAAA,MAAM,SAAS,GAAG,CAAA,EAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAA,EAAI,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAI,CAAA,EAAA,GAAG,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAA,EAAI,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IAEvQ,MAAM,iBAAiB,GAAG,CAAG,EAAA,SAAS,IAAI,MAAM,CAAC,KAAK,CAAA,aAAA,CAAe,CAAC;AACtE,IAAA,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;;AAG9F,IAAA,MAAM,oBAAoB,CAAC,cAAc,CAAC,CAAC;;IAG3C,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;IACvE,MAAM,YAAY,CAAC,iBAAiB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;AAE7D,IAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,UAAA,EAAa,iBAAiB,CAAA,CAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;AAEG;AACI,eAAe,iBAAiB,CAAC,IAAuB,EAAA;IAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAW,CAAC;IAEzC,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC,CAAC;QAC5E,OAAO;AACR,KAAA;;AAGD,IAAA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAEtD,IAAA,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC,CAAC;QACzF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC,CAAC;QAC5E,OAAO;AACR,KAAA;IAED,MAAM,iBAAiB,GAAG,MAAM,mBAAmB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAE5E,OAAO,CAAC,GAAG,CACT,MAAM,CAAC,IAAI,CAAC,kCAAkC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,iBAAiB,CAAC,CAAE,CAAA,CAAC,CAC7F,CAAC;AACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.generator.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/generate/generators/model.generator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAKxD,wBAAsB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0E1E"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import {colors}from'@mongez/copper';import {ensureDirectoryAsync,putFileAsync}from'@mongez/fs';import path from'node:path';import {modelStub,migrationStub}from'../templates/stubs.js';import {parseModulePath,parseName}from'../utils/name-parser.js';import {moduleExists,resolveModulePath,componentExists}from'../utils/path-resolver.js';async function generateModel(data) {
|
|
2
|
+
const input = data.args[0];
|
|
3
|
+
if (!input) {
|
|
4
|
+
console.log(colors.red("Error: Model name is required"));
|
|
5
|
+
console.log(colors.yellow("Usage: warlock create.model <module>/<name>"));
|
|
6
|
+
console.log(colors.yellow("Example: warlock create.model users/user"));
|
|
7
|
+
process.exit(1);
|
|
8
|
+
}
|
|
9
|
+
const { module, name: componentName } = parseModulePath(input);
|
|
10
|
+
if (!module) {
|
|
11
|
+
console.log(colors.red("Error: Module name is required"));
|
|
12
|
+
console.log(colors.yellow("Usage: warlock create.model <module>/<name>"));
|
|
13
|
+
process.exit(1);
|
|
14
|
+
}
|
|
15
|
+
// Check if module exists
|
|
16
|
+
if (!(await moduleExists(module))) {
|
|
17
|
+
console.log(colors.red(`Error: Module "${module}" does not exist`));
|
|
18
|
+
console.log(colors.yellow(`Run: warlock create.module ${module}`));
|
|
19
|
+
process.exit(1);
|
|
20
|
+
}
|
|
21
|
+
const name = parseName(componentName, module);
|
|
22
|
+
const force = data.options.force || data.options.f;
|
|
23
|
+
const withResource = data.options.withResource || data.options.rs;
|
|
24
|
+
const tableName = data.options.table || `${name.snake}s`;
|
|
25
|
+
// Check if model already exists
|
|
26
|
+
const modelDir = path.join(resolveModulePath(module), "models", name.kebab);
|
|
27
|
+
const modelPath = path.join(modelDir, `${name.kebab}.model.ts`);
|
|
28
|
+
if ((await componentExists(module, `models/${name.kebab}`, `${name.kebab}.model`)) && !force) {
|
|
29
|
+
console.log(colors.red(`Error: Model "${name.kebab}" already exists`));
|
|
30
|
+
console.log(colors.yellow("Use --force to overwrite"));
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
// Ensure directories exist
|
|
34
|
+
await ensureDirectoryAsync(modelDir);
|
|
35
|
+
await ensureDirectoryAsync(path.join(modelDir, "migrations"));
|
|
36
|
+
// Generate model
|
|
37
|
+
const modelContent = modelStub(name, { tableName, withResource: !!withResource });
|
|
38
|
+
await putFileAsync(modelPath, modelContent);
|
|
39
|
+
console.log(colors.green(`✓ Created model: ${modelPath}`));
|
|
40
|
+
// Generate index.ts
|
|
41
|
+
const indexContent = `export * from "./${name.kebab}.model";
|
|
42
|
+
`;
|
|
43
|
+
await putFileAsync(path.join(modelDir, "index.ts"), indexContent);
|
|
44
|
+
console.log(colors.green(`✓ Created index.ts`));
|
|
45
|
+
// Generate migration
|
|
46
|
+
const timestamp = new Date().toISOString().replace(/[-:T]/g, "_").split(".")[0];
|
|
47
|
+
const migrationPath = path.join(modelDir, "migrations", `${timestamp}_${name.kebab}.migration.ts`);
|
|
48
|
+
const migrationContent = migrationStub(name);
|
|
49
|
+
await putFileAsync(migrationPath, migrationContent);
|
|
50
|
+
console.log(colors.green(`✓ Created migration: ${migrationPath}`));
|
|
51
|
+
console.log(colors.cyan(`\n✨ Model "${name.pascal}" generated successfully!`));
|
|
52
|
+
console.log(colors.gray(`\nNext steps:`));
|
|
53
|
+
console.log(colors.gray(` 1. Update model schema in ${name.kebab}.model.ts`));
|
|
54
|
+
console.log(colors.gray(` 2. Update migration in migrations/${timestamp}_${name.kebab}.migration.ts`));
|
|
55
|
+
console.log(colors.gray(` 3. Run migration: warlock migrate`));
|
|
56
|
+
}export{generateModel};//# sourceMappingURL=model.generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.generator.js","sources":["../../../../../src/cli/commands/generate/generators/model.generator.ts"],"sourcesContent":[null],"names":[],"mappings":"8UAQO,eAAe,aAAa,CAAC,IAAuB,EAAA;IACzD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE3B,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC,CAAC;AACvE,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,KAAA;AAED,IAAA,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAE/D,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC,CAAC;AAC1E,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,KAAA;;IAGD,IAAI,EAAE,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE;AACjC,QAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA,eAAA,EAAkB,MAAM,CAAA,gBAAA,CAAkB,CAAC,CAAC,CAAC;AACpE,QAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA,2BAAA,EAA8B,MAAM,CAAA,CAAE,CAAC,CAAC,CAAC;AACnE,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,KAAA;IAED,MAAM,IAAI,GAAG,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AAC9C,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AAClE,IAAA,MAAM,SAAS,GAAI,IAAI,CAAC,OAAO,CAAC,KAAgB,IAAI,CAAG,EAAA,IAAI,CAAC,KAAK,GAAG,CAAC;;AAGrE,IAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5E,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA,EAAG,IAAI,CAAC,KAAK,CAAA,SAAA,CAAW,CAAC,CAAC;IAEhE,IAAI,CAAC,MAAM,eAAe,CAAC,MAAM,EAAE,CAAA,OAAA,EAAU,IAAI,CAAC,KAAK,CAAA,CAAE,EAAE,CAAG,EAAA,IAAI,CAAC,KAAK,CAAA,MAAA,CAAQ,CAAC,KAAK,CAAC,KAAK,EAAE;AAC5F,QAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAiB,cAAA,EAAA,IAAI,CAAC,KAAK,CAAkB,gBAAA,CAAA,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC;AACvD,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,KAAA;;AAGD,IAAA,MAAM,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;;AAG9D,IAAA,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;AAClF,IAAA,MAAM,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AAC5C,IAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,iBAAA,EAAoB,SAAS,CAAA,CAAE,CAAC,CAAC,CAAC;;AAG3D,IAAA,MAAM,YAAY,GAAG,CAAoB,iBAAA,EAAA,IAAI,CAAC,KAAK,CAAA;CACpD,CAAC;AACA,IAAA,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,kBAAA,CAAoB,CAAC,CAAC,CAAC;;IAGhD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,IAAA,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAC7B,QAAQ,EACR,YAAY,EACZ,CAAA,EAAG,SAAS,CAAI,CAAA,EAAA,IAAI,CAAC,KAAK,CAAA,aAAA,CAAe,CAC1C,CAAC;IACF,MAAM,gBAAgB,GAAG,aAAa,CAAC,IAAe,CAAC,CAAC;AAExD,IAAA,MAAM,YAAY,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;AACpD,IAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,qBAAA,EAAwB,aAAa,CAAA,CAAE,CAAC,CAAC,CAAC;AAEnE,IAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAc,WAAA,EAAA,IAAI,CAAC,MAAM,CAA2B,yBAAA,CAAA,CAAC,CAAC,CAAC;IAC/E,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,aAAA,CAAe,CAAC,CAAC,CAAC;AAC1C,IAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAA+B,4BAAA,EAAA,IAAI,CAAC,KAAK,CAAW,SAAA,CAAA,CAAC,CAAC,CAAC;AAC/E,IAAA,OAAO,CAAC,GAAG,CACT,MAAM,CAAC,IAAI,CAAC,CAAA,oCAAA,EAAuC,SAAS,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,CAAe,aAAA,CAAA,CAAC,CAC3F,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,mCAAA,CAAqC,CAAC,CAAC,CAAC;AAClE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.generator.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/generate/generators/module.generator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAyBxD,wBAAsB,cAAc,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwP3E"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import {colors}from'@mongez/copper';import {ensureDirectoryAsync,putFileAsync}from'@mongez/fs';import path from'node:path';import'@warlock.js/logger';import'../../../../database/models/database-log/database-log.js';import'../../../../http/context/request-context.js';import {appPath}from'../../../../utils/paths.js';import'@mongez/slug';import'@mongez/supportive-is';import'@mongez/reinforcements';import {crudRoutesStub,crudCreateControllerStub,crudUpdateControllerStub,crudListControllerStub,crudShowControllerStub,crudDeleteControllerStub,crudCreateValidationStub,crudUpdateValidationStub,requestStub,crudModelStub,crudResourceStub,crudRepositoryStub,crudCreateServiceStub,crudUpdateServiceStub,crudListServiceStub,crudGetServiceStub,crudDeleteServiceStub,crudSeedStub}from'../templates/stubs.js';import {parseName}from'../utils/name-parser.js';import {moduleExists}from'../utils/path-resolver.js';import {createMigrationFile}from'./migration.generator.js';async function generateModule(data) {
|
|
2
|
+
const moduleName = data.args[0];
|
|
3
|
+
if (!moduleName) {
|
|
4
|
+
console.log(colors.red("Error: Module name is required"));
|
|
5
|
+
console.log(colors.yellow("Usage: warlock generate.module <name> [options]"));
|
|
6
|
+
console.log(colors.yellow("Example: warlock generate.module products"));
|
|
7
|
+
console.log(colors.yellow(" warlock generate.module products --crud"));
|
|
8
|
+
process.exit(1);
|
|
9
|
+
}
|
|
10
|
+
const name = parseName(moduleName);
|
|
11
|
+
const force = data.options.force || data.options.f;
|
|
12
|
+
const withCrud = data.options.crud || data.options.c;
|
|
13
|
+
// Check if module already exists
|
|
14
|
+
if ((await moduleExists(name.kebab)) && !force) {
|
|
15
|
+
console.log(colors.red(`Error: Module "${name.kebab}" already exists`));
|
|
16
|
+
console.log(colors.yellow("Use --force to overwrite"));
|
|
17
|
+
process.exit(1);
|
|
18
|
+
}
|
|
19
|
+
const modulePath = appPath(name.kebab);
|
|
20
|
+
// Create module directory structure
|
|
21
|
+
const directories = [
|
|
22
|
+
"controllers",
|
|
23
|
+
"services",
|
|
24
|
+
"models",
|
|
25
|
+
"repositories",
|
|
26
|
+
"validation",
|
|
27
|
+
"requests",
|
|
28
|
+
"resources",
|
|
29
|
+
"events",
|
|
30
|
+
"types",
|
|
31
|
+
"utils",
|
|
32
|
+
];
|
|
33
|
+
for (const dir of directories) {
|
|
34
|
+
await ensureDirectoryAsync(path.join(modulePath, dir));
|
|
35
|
+
}
|
|
36
|
+
console.log(colors.green(`✓ Created module structure`));
|
|
37
|
+
// Create main.ts
|
|
38
|
+
const mainContent = `import { onceConnected } from "@warlock.js/cascade";
|
|
39
|
+
|
|
40
|
+
// This function will be called once the app is connected to the database
|
|
41
|
+
onceConnected(async () => {
|
|
42
|
+
// Module initialization code
|
|
43
|
+
// Register event listeners
|
|
44
|
+
// Setup module-specific configurations
|
|
45
|
+
});
|
|
46
|
+
`;
|
|
47
|
+
await putFileAsync(path.join(modulePath, "main.ts"), mainContent);
|
|
48
|
+
console.log(colors.green(`✓ Created main.ts`));
|
|
49
|
+
// Create routes.ts
|
|
50
|
+
const routesContent = withCrud
|
|
51
|
+
? crudRoutesStub(name)
|
|
52
|
+
: `import { router } from "@warlock.js/core";
|
|
53
|
+
import { guarded } from "app/shared/utils/router";
|
|
54
|
+
|
|
55
|
+
// Define your routes here
|
|
56
|
+
// Example:
|
|
57
|
+
// router.get("/${name.kebab}", listController);
|
|
58
|
+
`;
|
|
59
|
+
await putFileAsync(path.join(modulePath, "routes.ts"), routesContent);
|
|
60
|
+
console.log(colors.green(`✓ Created routes.ts`));
|
|
61
|
+
// Create utils/locales.ts
|
|
62
|
+
const localesContent = `import { groupedTranslations } from "@mongez/localization";
|
|
63
|
+
|
|
64
|
+
groupedTranslations("${name.camel}", {
|
|
65
|
+
// Add your translations here
|
|
66
|
+
// Example:
|
|
67
|
+
// welcome: {
|
|
68
|
+
// en: "Welcome",
|
|
69
|
+
// ar: "مرحبا",
|
|
70
|
+
// },
|
|
71
|
+
});
|
|
72
|
+
`;
|
|
73
|
+
await putFileAsync(path.join(modulePath, "utils", "locales.ts"), localesContent);
|
|
74
|
+
console.log(colors.green(`✓ Created utils/locales.ts`));
|
|
75
|
+
// If --crud flag is set, generate full CRUD scaffold
|
|
76
|
+
if (withCrud) {
|
|
77
|
+
// Derive singular entity name from plural module name
|
|
78
|
+
const entityKebab = name.kebab.endsWith("s") ? name.kebab.slice(0, -1) : name.kebab;
|
|
79
|
+
const entity = parseName(entityKebab);
|
|
80
|
+
// Create controllers
|
|
81
|
+
await putFileAsync(path.join(modulePath, "controllers", `create-${entity.kebab}.controller.ts`), crudCreateControllerStub(name));
|
|
82
|
+
console.log(colors.green(`✓ Created create-${entity.kebab}.controller.ts`));
|
|
83
|
+
await putFileAsync(path.join(modulePath, "controllers", `update-${entity.kebab}.controller.ts`), crudUpdateControllerStub(name));
|
|
84
|
+
console.log(colors.green(`✓ Created update-${entity.kebab}.controller.ts`));
|
|
85
|
+
await putFileAsync(path.join(modulePath, "controllers", `list-${name.kebab}.controller.ts`), crudListControllerStub(name));
|
|
86
|
+
console.log(colors.green(`✓ Created list-${name.kebab}.controller.ts`));
|
|
87
|
+
await putFileAsync(path.join(modulePath, "controllers", `get-${entity.kebab}.controller.ts`), crudShowControllerStub(name));
|
|
88
|
+
console.log(colors.green(`✓ Created get-${entity.kebab}.controller.ts`));
|
|
89
|
+
await putFileAsync(path.join(modulePath, "controllers", `delete-${entity.kebab}.controller.ts`), crudDeleteControllerStub(name));
|
|
90
|
+
console.log(colors.green(`✓ Created delete-${entity.kebab}.controller.ts`));
|
|
91
|
+
// Create validation schemas
|
|
92
|
+
await putFileAsync(path.join(modulePath, "validation", `create-${entity.kebab}.schema.ts`), crudCreateValidationStub(name));
|
|
93
|
+
console.log(colors.green(`✓ Created create-${entity.kebab}.schema.ts`));
|
|
94
|
+
await putFileAsync(path.join(modulePath, "validation", `update-${entity.kebab}.schema.ts`), crudUpdateValidationStub(name));
|
|
95
|
+
console.log(colors.green(`✓ Created update-${entity.kebab}.schema.ts`));
|
|
96
|
+
// Create request types
|
|
97
|
+
const createRequestName = parseName(`create-${entity.kebab}`);
|
|
98
|
+
await putFileAsync(path.join(modulePath, "requests", `create-${entity.kebab}.request.ts`), requestStub(createRequestName));
|
|
99
|
+
console.log(colors.green(`✓ Created create-${entity.kebab}.request.ts`));
|
|
100
|
+
const updateRequestName = parseName(`update-${entity.kebab}`);
|
|
101
|
+
await putFileAsync(path.join(modulePath, "requests", `update-${entity.kebab}.request.ts`), requestStub(updateRequestName));
|
|
102
|
+
console.log(colors.green(`✓ Created update-${entity.kebab}.request.ts`));
|
|
103
|
+
// Create model
|
|
104
|
+
await ensureDirectoryAsync(path.join(modulePath, "models", entity.kebab));
|
|
105
|
+
await putFileAsync(path.join(modulePath, "models", entity.kebab, `${entity.kebab}.model.ts`), crudModelStub(name));
|
|
106
|
+
console.log(colors.green(`✓ Created ${entity.kebab}.model.ts`));
|
|
107
|
+
// Create model index
|
|
108
|
+
await putFileAsync(path.join(modulePath, "models", entity.kebab, "index.ts"), `export * from "./${entity.kebab}.model";\n`);
|
|
109
|
+
// Create migrations folder
|
|
110
|
+
await ensureDirectoryAsync(path.join(modulePath, "models", entity.kebab, "migrations"));
|
|
111
|
+
// Create resource
|
|
112
|
+
await putFileAsync(path.join(modulePath, "resources", `${entity.kebab}.resource.ts`), crudResourceStub(name));
|
|
113
|
+
console.log(colors.green(`✓ Created ${entity.kebab}.resource.ts`));
|
|
114
|
+
// Create repository
|
|
115
|
+
await putFileAsync(path.join(modulePath, "repositories", `${name.kebab}.repository.ts`), crudRepositoryStub(name));
|
|
116
|
+
console.log(colors.green(`✓ Created ${name.kebab}.repository.ts`));
|
|
117
|
+
// Create services
|
|
118
|
+
await putFileAsync(path.join(modulePath, "services", `create-${entity.kebab}.service.ts`), crudCreateServiceStub(name));
|
|
119
|
+
console.log(colors.green(`✓ Created create-${entity.kebab}.service.ts`));
|
|
120
|
+
await putFileAsync(path.join(modulePath, "services", `update-${entity.kebab}.service.ts`), crudUpdateServiceStub(name));
|
|
121
|
+
console.log(colors.green(`✓ Created update-${entity.kebab}.service.ts`));
|
|
122
|
+
await putFileAsync(path.join(modulePath, "services", `list-${name.kebab}.service.ts`), crudListServiceStub(name));
|
|
123
|
+
console.log(colors.green(`✓ Created list-${name.kebab}.service.ts`));
|
|
124
|
+
await putFileAsync(path.join(modulePath, "services", `get-${entity.kebab}.service.ts`), crudGetServiceStub(name));
|
|
125
|
+
console.log(colors.green(`✓ Created get-${entity.kebab}.service.ts`));
|
|
126
|
+
await putFileAsync(path.join(modulePath, "services", `delete-${entity.kebab}.service.ts`), crudDeleteServiceStub(name));
|
|
127
|
+
console.log(colors.green(`✓ Created delete-${entity.kebab}.service.ts`));
|
|
128
|
+
// Create seeds
|
|
129
|
+
await ensureDirectoryAsync(path.join(modulePath, "seeds"));
|
|
130
|
+
await putFileAsync(path.join(modulePath, "seeds", `${name.kebab}.seed.ts`), crudSeedStub(name));
|
|
131
|
+
console.log(colors.green(`✓ Created ${name.kebab}.seed.ts`));
|
|
132
|
+
// Create migration
|
|
133
|
+
await createMigrationFile(name.kebab, entity.kebab);
|
|
134
|
+
}
|
|
135
|
+
console.log(colors.cyan(`\n✨ Module "${name.kebab}" generated successfully!`));
|
|
136
|
+
if (withCrud) {
|
|
137
|
+
console.log(colors.gray(`\n📦 CRUD scaffold created with:`));
|
|
138
|
+
console.log(colors.gray(` - List, Get, Create & Update controllers`));
|
|
139
|
+
console.log(colors.gray(` - Repository`));
|
|
140
|
+
console.log(colors.gray(` - Validation schemas`));
|
|
141
|
+
console.log(colors.gray(` - Request types`));
|
|
142
|
+
console.log(colors.gray(` - Model with resource`));
|
|
143
|
+
console.log(colors.gray(` - Routes configured`));
|
|
144
|
+
console.log(colors.gray(`\nNext steps:`));
|
|
145
|
+
console.log(colors.gray(` 1. Update model schema in models/${name.kebab}/${name.kebab}.model.ts`));
|
|
146
|
+
console.log(colors.gray(` 2. Update validation rules in validation/*.schema.ts`));
|
|
147
|
+
console.log(colors.gray(` 3. Create migration: warlock generate.model ${name.kebab}/${name.kebab}`));
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
console.log(colors.gray(`\nNext steps:`));
|
|
151
|
+
console.log(colors.gray(` 1. Define routes in ${name.kebab}/routes.ts`));
|
|
152
|
+
console.log(colors.gray(` 2. Create controllers: warlock generate.controller ${name.kebab}/<name>`));
|
|
153
|
+
console.log(colors.gray(` 3. Create models: warlock generate.model ${name.kebab}/<name>`));
|
|
154
|
+
console.log(colors.gray(`\nTip: Use --crud flag to generate a full CRUD scaffold`));
|
|
155
|
+
}
|
|
156
|
+
}export{generateModule};//# sourceMappingURL=module.generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.generator.js","sources":["../../../../../src/cli/commands/generate/generators/module.generator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository.generator.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/generate/generators/repository.generator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAUxD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8C/E"}
|