@warlock.js/core 4.0.131 → 4.0.133
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/create-database.command.d.ts +2 -0
- package/esm/cli/commands/create-database.command.d.ts.map +1 -0
- package/esm/cli/commands/create-database.command.js +18 -0
- package/esm/cli/commands/create-database.command.js.map +1 -0
- 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 +12 -1
- package/esm/cli/framework-cli-commands.js.map +1 -1
- package/esm/database/create-database-action.d.ts +3 -0
- package/esm/database/create-database-action.d.ts.map +1 -0
- package/esm/database/create-database-action.js +28 -0
- package/esm/database/create-database-action.js.map +1 -0
- 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 @@
|
|
|
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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import {colors}from'@mongez/copper';import {putFileAsync}from'@mongez/fs';import {repositoryStub}from'../templates/stubs.js';import {parseModulePath,parseName}from'../utils/name-parser.js';import {moduleExists,componentExists,ensureComponentDirectory,resolveComponentPath}from'../utils/path-resolver.js';async function generateRepository(data) {
|
|
2
|
+
const input = data.args[0];
|
|
3
|
+
if (!input) {
|
|
4
|
+
console.log(colors.red("Error: Repository name is required"));
|
|
5
|
+
console.log(colors.yellow("Usage: warlock create.repository <module>/<name>"));
|
|
6
|
+
console.log(colors.yellow("Example: warlock create.repository 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.repository <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
|
+
// Check if repository already exists
|
|
24
|
+
if ((await componentExists(module, "repositories", `${name.kebab}.repository`)) && !force) {
|
|
25
|
+
console.log(colors.red(`Error: Repository "${name.kebab}.repository.ts" already exists`));
|
|
26
|
+
console.log(colors.yellow("Use --force to overwrite"));
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
// Ensure directories exist
|
|
30
|
+
await ensureComponentDirectory(module, "repositories");
|
|
31
|
+
// Generate repository
|
|
32
|
+
const repositoryPath = resolveComponentPath(module, "repositories", `${name.kebab}.repository`);
|
|
33
|
+
const repositoryContent = repositoryStub(name);
|
|
34
|
+
await putFileAsync(repositoryPath, repositoryContent);
|
|
35
|
+
console.log(colors.green(`✓ Created repository: ${repositoryPath}`));
|
|
36
|
+
console.log(colors.cyan(`\n✨ Repository "${name.pascal}Repository" generated successfully!`));
|
|
37
|
+
}export{generateRepository};//# sourceMappingURL=repository.generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository.generator.js","sources":["../../../../../src/cli/commands/generate/generators/repository.generator.ts"],"sourcesContent":[null],"names":[],"mappings":"gTAYO,eAAe,kBAAkB,CAAC,IAAuB,EAAA;IAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE3B,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,kDAAkD,CAAC,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC;AAC5E,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,kDAAkD,CAAC,CAAC,CAAC;AAC/E,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;;AAGnD,IAAA,IAAI,CAAC,MAAM,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,CAAA,EAAG,IAAI,CAAC,KAAK,CAAa,WAAA,CAAA,CAAC,KAAK,CAAC,KAAK,EAAE;AACzF,QAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAsB,mBAAA,EAAA,IAAI,CAAC,KAAK,CAAgC,8BAAA,CAAA,CAAC,CAAC,CAAC;QAC1F,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,wBAAwB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;;AAGvD,IAAA,MAAM,cAAc,GAAG,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,CAAA,EAAG,IAAI,CAAC,KAAK,CAAA,WAAA,CAAa,CAAC,CAAC;AAChG,IAAA,MAAM,iBAAiB,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;AAE/C,IAAA,MAAM,YAAY,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;AACtD,IAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,sBAAA,EAAyB,cAAc,CAAA,CAAE,CAAC,CAAC,CAAC;AAErE,IAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAmB,gBAAA,EAAA,IAAI,CAAC,MAAM,CAAqC,mCAAA,CAAA,CAAC,CAAC,CAAC;AAChG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource.generator.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/generate/generators/resource.generator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAUxD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8C7E"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import {colors}from'@mongez/copper';import {putFileAsync}from'@mongez/fs';import {resourceStub}from'../templates/stubs.js';import {parseModulePath,parseName}from'../utils/name-parser.js';import {moduleExists,componentExists,ensureComponentDirectory,resolveComponentPath}from'../utils/path-resolver.js';async function generateResource(data) {
|
|
2
|
+
const input = data.args[0];
|
|
3
|
+
if (!input) {
|
|
4
|
+
console.log(colors.red("Error: Resource name is required"));
|
|
5
|
+
console.log(colors.yellow("Usage: warlock create.resource <module>/<name>"));
|
|
6
|
+
console.log(colors.yellow("Example: warlock create.resource 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.resource <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
|
+
// Check if resource already exists
|
|
24
|
+
if ((await componentExists(module, "resources", `${name.kebab}.resource`)) && !force) {
|
|
25
|
+
console.log(colors.red(`Error: Resource "${name.kebab}.resource.ts" already exists`));
|
|
26
|
+
console.log(colors.yellow("Use --force to overwrite"));
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
// Ensure directories exist
|
|
30
|
+
await ensureComponentDirectory(module, "resources");
|
|
31
|
+
// Generate resource
|
|
32
|
+
const resourcePath = resolveComponentPath(module, "resources", `${name.kebab}.resource`);
|
|
33
|
+
const resourceContent = resourceStub(name);
|
|
34
|
+
await putFileAsync(resourcePath, resourceContent);
|
|
35
|
+
console.log(colors.green(`✓ Created resource: ${resourcePath}`));
|
|
36
|
+
console.log(colors.cyan(`\n✨ Resource "${name.pascal}Resource" generated successfully!`));
|
|
37
|
+
}export{generateResource};//# sourceMappingURL=resource.generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource.generator.js","sources":["../../../../../src/cli/commands/generate/generators/resource.generator.ts"],"sourcesContent":[null],"names":[],"mappings":"8SAYO,eAAe,gBAAgB,CAAC,IAAuB,EAAA;IAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE3B,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,gDAAgD,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC,CAAC;AAC1E,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,gDAAgD,CAAC,CAAC,CAAC;AAC7E,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;;AAGnD,IAAA,IAAI,CAAC,MAAM,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,CAAA,EAAG,IAAI,CAAC,KAAK,CAAW,SAAA,CAAA,CAAC,KAAK,CAAC,KAAK,EAAE;AACpF,QAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAoB,iBAAA,EAAA,IAAI,CAAC,KAAK,CAA8B,4BAAA,CAAA,CAAC,CAAC,CAAC;QACtF,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,wBAAwB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;;AAGpD,IAAA,MAAM,YAAY,GAAG,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,CAAA,EAAG,IAAI,CAAC,KAAK,CAAA,SAAA,CAAW,CAAC,CAAC;AACzF,IAAA,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;AAE3C,IAAA,MAAM,YAAY,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;AAClD,IAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,oBAAA,EAAuB,YAAY,CAAA,CAAE,CAAC,CAAC,CAAC;AAEjE,IAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAiB,cAAA,EAAA,IAAI,CAAC,MAAM,CAAmC,iCAAA,CAAA,CAAC,CAAC,CAAC;AAC5F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.generator.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/generate/generators/service.generator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAUxD,wBAAsB,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8C5E"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import {colors}from'@mongez/copper';import {putFileAsync}from'@mongez/fs';import {serviceStub}from'../templates/stubs.js';import {parseModulePath,parseName}from'../utils/name-parser.js';import {moduleExists,componentExists,ensureComponentDirectory,resolveComponentPath}from'../utils/path-resolver.js';async function generateService(data) {
|
|
2
|
+
const input = data.args[0];
|
|
3
|
+
if (!input) {
|
|
4
|
+
console.log(colors.red("Error: Service name is required"));
|
|
5
|
+
console.log(colors.yellow("Usage: warlock create.service <module>/<name>"));
|
|
6
|
+
console.log(colors.yellow("Example: warlock create.service 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.service <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
|
+
// Check if service already exists
|
|
24
|
+
if ((await componentExists(module, "services", `${name.kebab}.service`)) && !force) {
|
|
25
|
+
console.log(colors.red(`Error: Service "${name.kebab}.service.ts" already exists`));
|
|
26
|
+
console.log(colors.yellow("Use --force to overwrite"));
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
// Ensure directories exist
|
|
30
|
+
await ensureComponentDirectory(module, "services");
|
|
31
|
+
// Generate service
|
|
32
|
+
const servicePath = resolveComponentPath(module, "services", `${name.kebab}.service`);
|
|
33
|
+
const serviceContent = serviceStub(name);
|
|
34
|
+
await putFileAsync(servicePath, serviceContent);
|
|
35
|
+
console.log(colors.green(`✓ Created service: ${servicePath}`));
|
|
36
|
+
console.log(colors.cyan(`\n✨ Service "${name.camel}" generated successfully!`));
|
|
37
|
+
}export{generateService};//# sourceMappingURL=service.generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.generator.js","sources":["../../../../../src/cli/commands/generate/generators/service.generator.ts"],"sourcesContent":[null],"names":[],"mappings":"6SAYO,eAAe,eAAe,CAAC,IAAuB,EAAA;IAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE3B,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,mDAAmD,CAAC,CAAC,CAAC;AAChF,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,+CAA+C,CAAC,CAAC,CAAC;AAC5E,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;;AAGnD,IAAA,IAAI,CAAC,MAAM,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,CAAA,EAAG,IAAI,CAAC,KAAK,CAAU,QAAA,CAAA,CAAC,KAAK,CAAC,KAAK,EAAE;AAClF,QAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAmB,gBAAA,EAAA,IAAI,CAAC,KAAK,CAA6B,2BAAA,CAAA,CAAC,CAAC,CAAC;QACpF,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,wBAAwB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;;AAGnD,IAAA,MAAM,WAAW,GAAG,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,CAAA,EAAG,IAAI,CAAC,KAAK,CAAA,QAAA,CAAU,CAAC,CAAC;AACtF,IAAA,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAEzC,IAAA,MAAM,YAAY,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;AAChD,IAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,mBAAA,EAAsB,WAAW,CAAA,CAAE,CAAC,CAAC,CAAC;AAE/D,IAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAgB,aAAA,EAAA,IAAI,CAAC,KAAK,CAA2B,yBAAA,CAAA,CAAC,CAAC,CAAC;AAClF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.generator.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/generate/generators/validation.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,CA0D/E"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import {colors}from'@mongez/copper';import {putFileAsync}from'@mongez/fs';import {validationStub,requestStub}from'../templates/stubs.js';import {parseModulePath,parseName}from'../utils/name-parser.js';import {moduleExists,componentExists,ensureComponentDirectory,resolveComponentPath}from'../utils/path-resolver.js';async function generateValidation(data) {
|
|
2
|
+
const input = data.args[0];
|
|
3
|
+
if (!input) {
|
|
4
|
+
console.log(colors.red("Error: Validation name is required"));
|
|
5
|
+
console.log(colors.yellow("Usage: warlock create.validation <module>/<name>"));
|
|
6
|
+
console.log(colors.yellow("Example: warlock create.validation 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.validation <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 withRequest = data.options.withRequest || data.options.r;
|
|
24
|
+
// Check if validation already exists
|
|
25
|
+
if ((await componentExists(module, "validation", `${name.kebab}.schema`)) && !force) {
|
|
26
|
+
console.log(colors.red(`Error: Validation "${name.kebab}.schema.ts" already exists`));
|
|
27
|
+
console.log(colors.yellow("Use --force to overwrite"));
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
// Ensure directories exist
|
|
31
|
+
await ensureComponentDirectory(module, "validation");
|
|
32
|
+
// Generate validation
|
|
33
|
+
const validationPath = resolveComponentPath(module, "validation", `${name.kebab}.schema`);
|
|
34
|
+
const validationContent = validationStub(name);
|
|
35
|
+
await putFileAsync(validationPath, validationContent);
|
|
36
|
+
console.log(colors.green(`✓ Created validation: ${validationPath}`));
|
|
37
|
+
// Generate request if requested
|
|
38
|
+
if (withRequest) {
|
|
39
|
+
await ensureComponentDirectory(module, "requests");
|
|
40
|
+
const requestPath = resolveComponentPath(module, "requests", `${name.kebab}.request`);
|
|
41
|
+
const requestContent = requestStub(name);
|
|
42
|
+
await putFileAsync(requestPath, requestContent);
|
|
43
|
+
console.log(colors.green(`✓ Created request: ${requestPath}`));
|
|
44
|
+
}
|
|
45
|
+
console.log(colors.cyan(`\n✨ Validation "${name.camel}Schema" generated successfully!`));
|
|
46
|
+
}export{generateValidation};//# sourceMappingURL=validation.generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.generator.js","sources":["../../../../../src/cli/commands/generate/generators/validation.generator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import type { ParsedName } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Controller template stub
|
|
4
|
+
*/
|
|
5
|
+
export declare function controllerStub(name: ParsedName, options?: {
|
|
6
|
+
withValidation?: boolean;
|
|
7
|
+
}): string;
|
|
8
|
+
/**
|
|
9
|
+
* CRUD Create Controller template
|
|
10
|
+
* Note: moduleName is the module (plural), we need singular entity name
|
|
11
|
+
*/
|
|
12
|
+
export declare function crudCreateControllerStub(moduleName: ParsedName): string;
|
|
13
|
+
/**
|
|
14
|
+
* CRUD Update Controller template
|
|
15
|
+
*/
|
|
16
|
+
export declare function crudUpdateControllerStub(moduleName: ParsedName): string;
|
|
17
|
+
/**
|
|
18
|
+
* CRUD List Controller template
|
|
19
|
+
*/
|
|
20
|
+
export declare function crudListControllerStub(moduleName: ParsedName): string;
|
|
21
|
+
/**
|
|
22
|
+
* CRUD Show/Get Controller template
|
|
23
|
+
*/
|
|
24
|
+
export declare function crudShowControllerStub(moduleName: ParsedName): string;
|
|
25
|
+
/**
|
|
26
|
+
* CRUD Delete Controller template
|
|
27
|
+
*/
|
|
28
|
+
export declare function crudDeleteControllerStub(moduleName: ParsedName): string;
|
|
29
|
+
/**
|
|
30
|
+
* CRUD Routes template
|
|
31
|
+
*/
|
|
32
|
+
export declare function crudRoutesStub(moduleName: ParsedName): string;
|
|
33
|
+
/**
|
|
34
|
+
* CRUD Model template
|
|
35
|
+
*/
|
|
36
|
+
export declare function crudModelStub(moduleName: ParsedName): string;
|
|
37
|
+
/**
|
|
38
|
+
* CRUD Resource template
|
|
39
|
+
*/
|
|
40
|
+
export declare function crudResourceStub(moduleName: ParsedName): string;
|
|
41
|
+
/**
|
|
42
|
+
* CRUD Repository template
|
|
43
|
+
*/
|
|
44
|
+
export declare function crudRepositoryStub(moduleName: ParsedName): string;
|
|
45
|
+
/**
|
|
46
|
+
* CRUD Create Service template
|
|
47
|
+
*/
|
|
48
|
+
export declare function crudCreateServiceStub(moduleName: ParsedName): string;
|
|
49
|
+
/**
|
|
50
|
+
* CRUD Update Service template
|
|
51
|
+
*/
|
|
52
|
+
export declare function crudUpdateServiceStub(moduleName: ParsedName): string;
|
|
53
|
+
/**
|
|
54
|
+
* CRUD List Service template
|
|
55
|
+
*/
|
|
56
|
+
export declare function crudListServiceStub(moduleName: ParsedName): string;
|
|
57
|
+
/**
|
|
58
|
+
* CRUD Get Service template
|
|
59
|
+
*/
|
|
60
|
+
export declare function crudGetServiceStub(moduleName: ParsedName): string;
|
|
61
|
+
/**
|
|
62
|
+
* CRUD Delete Service template
|
|
63
|
+
*/
|
|
64
|
+
export declare function crudDeleteServiceStub(moduleName: ParsedName): string;
|
|
65
|
+
/**
|
|
66
|
+
* CRUD Seed template
|
|
67
|
+
*/
|
|
68
|
+
export declare function crudSeedStub(moduleName: ParsedName): string;
|
|
69
|
+
/**
|
|
70
|
+
* Migration template
|
|
71
|
+
*/
|
|
72
|
+
export declare function migrationStub(entityName: ParsedName): string;
|
|
73
|
+
/**
|
|
74
|
+
* CRUD Create Validation template
|
|
75
|
+
*/
|
|
76
|
+
export declare function crudCreateValidationStub(moduleName: ParsedName): string;
|
|
77
|
+
/**
|
|
78
|
+
* CRUD Update Validation template
|
|
79
|
+
*/
|
|
80
|
+
export declare function crudUpdateValidationStub(moduleName: ParsedName): string;
|
|
81
|
+
/**
|
|
82
|
+
* Service template stub
|
|
83
|
+
*/
|
|
84
|
+
export declare function serviceStub(name: ParsedName): string;
|
|
85
|
+
/**
|
|
86
|
+
* Validation schema template stub
|
|
87
|
+
*/
|
|
88
|
+
export declare function validationStub(name: ParsedName): string;
|
|
89
|
+
/**
|
|
90
|
+
* Request type template stub
|
|
91
|
+
*/
|
|
92
|
+
export declare function requestStub(name: ParsedName): string;
|
|
93
|
+
/**
|
|
94
|
+
* Model template stub
|
|
95
|
+
*/
|
|
96
|
+
export declare function modelStub(name: ParsedName, options?: {
|
|
97
|
+
tableName?: string;
|
|
98
|
+
withResource?: boolean;
|
|
99
|
+
}): string;
|
|
100
|
+
/**
|
|
101
|
+
* Repository template stub
|
|
102
|
+
*/
|
|
103
|
+
export declare function repositoryStub(name: ParsedName): string;
|
|
104
|
+
/**
|
|
105
|
+
* Resource template stub
|
|
106
|
+
*/
|
|
107
|
+
export declare function resourceStub(name: ParsedName): string;
|
|
108
|
+
/**
|
|
109
|
+
* Migration template stub
|
|
110
|
+
*/
|
|
111
|
+
//# sourceMappingURL=stubs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stubs.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/generate/templates/stubs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GACzC,MAAM,CA2BR;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CA2BvE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CA+BvE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAqBrE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAwBrE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAoBvE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAwB7D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CA8B5D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAoB/D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CA4BjE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAapE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAkBpE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAWlE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAWjE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAgBpE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CA0B3D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CA4B5D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAgBvE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAgBvE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAMpD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CASvD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAMpD;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,GAC3D,MAAM,CAyBR;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAiBvD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAWrD;AAED;;GAEG"}
|