@nestledjs/api 0.0.6 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/package.json +2 -2
  2. package/src/account/generator.d.ts +3 -0
  3. package/src/account/generator.js +19 -0
  4. package/src/account/generator.js.map +1 -0
  5. package/src/app/generator.d.ts +6 -0
  6. package/src/app/generator.js +96 -0
  7. package/src/app/generator.js.map +1 -0
  8. package/src/config/files/src/index.ts__tmpl__ +1 -0
  9. package/src/config/files/src/lib/config.modules.ts__tmpl__ +8 -0
  10. package/src/config/files/src/lib/config.service.ts__tmpl__ +3 -3
  11. package/src/config/generator.d.ts +3 -0
  12. package/src/config/generator.js +18 -0
  13. package/src/config/generator.js.map +1 -0
  14. package/src/core/files/models/src/lib/generate-models.ts__tmpl__ +36 -25
  15. package/src/core/generator.d.ts +3 -0
  16. package/src/core/generator.js +31 -0
  17. package/src/core/generator.js.map +1 -0
  18. package/src/custom/generator.d.ts +24 -0
  19. package/src/custom/generator.js +199 -0
  20. package/src/custom/generator.js.map +1 -0
  21. package/src/custom/schema.d.ts +5 -0
  22. package/src/custom/schema.js +3 -0
  23. package/src/custom/schema.js.map +1 -0
  24. package/src/extended/generator.d.ts +3 -0
  25. package/src/extended/generator.js +136 -0
  26. package/src/extended/generator.js.map +1 -0
  27. package/src/extended/index.d.ts +1 -0
  28. package/src/extended/index.js +7 -0
  29. package/src/extended/index.js.map +1 -0
  30. package/src/extended/{schema.ts → schema.d.ts} +2 -2
  31. package/src/extended/schema.js +3 -0
  32. package/src/extended/schema.js.map +1 -0
  33. package/src/generate-crud/generator.d.ts +50 -0
  34. package/src/generate-crud/generator.js +295 -0
  35. package/src/generate-crud/generator.js.map +1 -0
  36. package/src/generate-crud/schema.d.ts +8 -0
  37. package/src/generate-crud/schema.js +3 -0
  38. package/src/generate-crud/schema.js.map +1 -0
  39. package/src/index.d.ts +13 -0
  40. package/src/index.js +17 -0
  41. package/src/index.js.map +1 -0
  42. package/src/plugin/generator.d.ts +3 -0
  43. package/src/plugin/generator.js +74 -0
  44. package/src/plugin/generator.js.map +1 -0
  45. package/src/plugin/{schema.ts → schema.d.ts} +3 -3
  46. package/src/plugin/schema.js +3 -0
  47. package/src/plugin/schema.js.map +1 -0
  48. package/src/prisma/generator.d.ts +3 -0
  49. package/src/prisma/generator.js +61 -0
  50. package/src/prisma/generator.js.map +1 -0
  51. package/src/setup/generator.d.ts +3 -0
  52. package/src/setup/generator.js +104 -0
  53. package/src/setup/generator.js.map +1 -0
  54. package/src/smtp-mailer/generator.d.ts +2 -0
  55. package/src/smtp-mailer/generator.js +17 -0
  56. package/src/smtp-mailer/generator.js.map +1 -0
  57. package/src/user/generator.d.ts +2 -0
  58. package/src/user/generator.js +18 -0
  59. package/src/user/generator.js.map +1 -0
  60. package/src/utils/generator.d.ts +2 -0
  61. package/src/utils/generator.js +17 -0
  62. package/src/utils/generator.js.map +1 -0
  63. package/src/workspace-setup/generator.d.ts +1 -0
  64. package/src/workspace-setup/generator.js +42 -0
  65. package/src/workspace-setup/generator.js.map +1 -0
  66. package/src/workspace-setup/lib/helpers.d.ts +16 -0
  67. package/src/workspace-setup/lib/helpers.js +164 -0
  68. package/src/workspace-setup/lib/helpers.js.map +1 -0
  69. package/eslint.config.cjs +0 -28
  70. package/project.json +0 -47
  71. package/src/account/generator.spec.ts +0 -71
  72. package/src/account/generator.ts +0 -20
  73. package/src/app/generator.spec.ts +0 -112
  74. package/src/app/generator.ts +0 -105
  75. package/src/config/generator.spec.ts +0 -47
  76. package/src/config/generator.ts +0 -16
  77. package/src/core/generator.spec.ts +0 -85
  78. package/src/core/generator.ts +0 -35
  79. package/src/custom/generator.spec.ts +0 -75
  80. package/src/custom/generator.ts +0 -239
  81. package/src/custom/schema.ts +0 -5
  82. package/src/extended/generator.spec.ts +0 -95
  83. package/src/extended/generator.ts +0 -161
  84. package/src/extended/index.ts +0 -1
  85. package/src/generate-crud/generator.spec.ts +0 -84
  86. package/src/generate-crud/generator.ts +0 -354
  87. package/src/generate-crud/schema.ts +0 -8
  88. package/src/index.ts +0 -13
  89. package/src/plugin/generator.spec.ts +0 -18
  90. package/src/plugin/generator.ts +0 -74
  91. package/src/prisma/generator.spec.ts +0 -60
  92. package/src/prisma/generator.ts +0 -61
  93. package/src/setup/generator.spec.ts +0 -18
  94. package/src/setup/generator.ts +0 -107
  95. package/src/smtp-mailer/generator.spec.ts +0 -41
  96. package/src/smtp-mailer/generator.ts +0 -14
  97. package/src/user/generator.spec.ts +0 -41
  98. package/src/user/generator.ts +0 -15
  99. package/src/utils/generator.ts +0 -14
  100. package/src/workspace-setup/generator.spec.ts +0 -85
  101. package/src/workspace-setup/generator.ts +0 -57
  102. package/src/workspace-setup/lib/helpers.ts +0 -149
  103. package/tsconfig.json +0 -16
  104. package/tsconfig.lib.json +0 -23
  105. package/tsconfig.spec.json +0 -22
  106. package/vite.config.mts +0 -31
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../generators/api/src/custom/generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export interface GenerateCustomGeneratorSchema {
2
+ name?: string;
3
+ directory?: string;
4
+ overwrite?: boolean;
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../../generators/api/src/custom/schema.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import { GenerateExtendedGeneratorSchema } from './schema';
3
+ export default function (tree: Tree, schema: GenerateExtendedGeneratorSchema): Promise<() => void>;
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = default_1;
4
+ const tslib_1 = require("tslib");
5
+ const devkit_1 = require("@nx/devkit");
6
+ const internals_1 = require("@prisma/internals");
7
+ const utils_1 = require("@nestledjs/utils");
8
+ const get_npm_scope_1 = require("@nx/js/src/utils/package-json/get-npm-scope");
9
+ const pluralize_1 = tslib_1.__importDefault(require("pluralize"));
10
+ const path_1 = require("path");
11
+ function toKebabCase(str) {
12
+ return str
13
+ .replace(/([a-z])([A-Z])/g, '$1-$2')
14
+ .replace(/([A-Z])([A-Z][a-z])/g, '$1-$2')
15
+ .toLowerCase();
16
+ }
17
+ function getAllPrismaModels(tree) {
18
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
19
+ const prismaPath = (0, utils_1.getPrismaSchemaPath)(tree);
20
+ const prismaSchema = (0, utils_1.readPrismaSchema)(tree, prismaPath);
21
+ if (!prismaSchema) {
22
+ console.error(`No Prisma schema found at ${prismaPath}`);
23
+ return [];
24
+ }
25
+ try {
26
+ const dmmf = yield (0, internals_1.getDMMF)({ datamodel: prismaSchema });
27
+ return dmmf.datamodel.models.map((model) => {
28
+ var _a;
29
+ const singularPropertyName = model.name.charAt(0).toLowerCase() + model.name.slice(1);
30
+ const pluralPropertyName = (0, pluralize_1.default)(singularPropertyName);
31
+ const fields = model.fields.map((field) => (Object.assign({ name: field.name, type: field.type, isId: field.isId, isRequired: field.isRequired, isList: field.isList, isUnique: field.isUnique, isReadOnly: field.isReadOnly, isGenerated: field.isGenerated, isUpdatedAt: field.isUpdatedAt, documentation: field.documentation }, field)));
32
+ return {
33
+ name: model.name,
34
+ pluralName: (0, pluralize_1.default)(model.name),
35
+ fields,
36
+ primaryField: ((_a = model.fields.find((f) => !f.isId && f.type === 'String')) === null || _a === void 0 ? void 0 : _a.name) || 'name',
37
+ modelName: model.name,
38
+ modelPropertyName: singularPropertyName,
39
+ pluralModelName: (0, pluralize_1.default)(model.name),
40
+ pluralModelPropertyName: pluralPropertyName,
41
+ };
42
+ });
43
+ }
44
+ catch (error) {
45
+ console.error('Error parsing Prisma schema:', error);
46
+ return [];
47
+ }
48
+ });
49
+ }
50
+ function generateModelLibrary(tree, model, npmScope, overwrite) {
51
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
52
+ const kebabModel = toKebabCase(model.modelName);
53
+ const libName = kebabModel;
54
+ const libRoot = `libs/api/extended/${libName}`;
55
+ // Create the Nx library for this model
56
+ yield (0, utils_1.apiLibraryGenerator)(tree, { name: `extended-${libName}`, overwrite }, '', undefined, false);
57
+ // Generate service.ts
58
+ const serviceContent = `import { Injectable } from '@nestjs/common'
59
+
60
+ @Injectable()
61
+ export class ${model.modelName}Service {
62
+ // Empty for now; will override or extend later if needed
63
+ }
64
+ `;
65
+ tree.write((0, path_1.join)(libRoot, 'src/lib', `${kebabModel}.service.ts`), serviceContent);
66
+ // Generate resolver.ts
67
+ const resolverContent = `import { ${model.modelName}Service } from './${kebabModel}.service'
68
+ import { ApiCrudDataAccessService } from '${npmScope}/api/generated-crud/data-access'
69
+ import { Generated${model.modelName}Resolver } from '${npmScope}/api/generated-crud/feature'
70
+ import { Injectable } from '@nestjs/common'
71
+ import { Resolver } from '@nestjs/graphql'
72
+ import { ${model.modelName} } from '${npmScope}/api/core/models'
73
+
74
+ @Resolver(() => ${model.modelName})
75
+ @Injectable()
76
+ export class ${model.modelName}Resolver extends Generated${model.modelName}Resolver {
77
+ constructor(
78
+ private readonly customService: ${model.modelName}Service,
79
+ private readonly generatedService: ApiCrudDataAccessService,
80
+ ) {
81
+ super(generatedService)
82
+ }
83
+ }
84
+ `;
85
+ tree.write((0, path_1.join)(libRoot, 'src/lib', `${kebabModel}.resolver.ts`), resolverContent);
86
+ // Generate module.ts
87
+ const moduleContent = `import { Module } from '@nestjs/common'
88
+ import { ${model.modelName}Service } from './${kebabModel}.service'
89
+ import { ${model.modelName}Resolver } from './${kebabModel}.resolver'
90
+
91
+ @Module({
92
+ providers: [${model.modelName}Service, ${model.modelName}Resolver],
93
+ exports: [${model.modelName}Service, ${model.modelName}Resolver],
94
+ })
95
+ export class ${model.modelName}Module {}
96
+ `;
97
+ tree.write((0, path_1.join)(libRoot, 'src/lib', `${kebabModel}.module.ts`), moduleContent);
98
+ // Update index.ts to export the module
99
+ const indexContent = `export * from './lib/${kebabModel}.module'`;
100
+ tree.write((0, path_1.join)(libRoot, 'src/index.ts'), indexContent);
101
+ // Optionally, add to app.module.ts or other registration logic here
102
+ // addToModules({ ... })
103
+ });
104
+ }
105
+ function default_1(tree, schema) {
106
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
107
+ try {
108
+ // Ensure the extended folder exists (not an Nx project)
109
+ const extendedRoot = 'libs/api/extended';
110
+ if (!tree.exists(extendedRoot)) {
111
+ tree.write((0, path_1.join)(extendedRoot, '.gitkeep'), '');
112
+ }
113
+ // Get all Prisma models
114
+ const models = yield getAllPrismaModels(tree);
115
+ if (models.length === 0) {
116
+ console.error('No Prisma models found');
117
+ return;
118
+ }
119
+ const npmScope = `@${(0, get_npm_scope_1.getNpmScope)(tree)}`;
120
+ const overwrite = !!schema.overwrite;
121
+ // For each model, generate a library and custom files
122
+ for (const model of models) {
123
+ yield generateModelLibrary(tree, model, npmScope, overwrite);
124
+ }
125
+ yield (0, devkit_1.formatFiles)(tree);
126
+ return () => {
127
+ (0, devkit_1.installPackagesTask)(tree);
128
+ };
129
+ }
130
+ catch (error) {
131
+ console.error('Error in Extended generator:', error);
132
+ throw error;
133
+ }
134
+ });
135
+ }
136
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../generators/api/src/extended/generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export { default } from './generator';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = void 0;
4
+ const tslib_1 = require("tslib");
5
+ var generator_1 = require("./generator");
6
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return tslib_1.__importDefault(generator_1).default; } });
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../generators/api/src/extended/index.ts"],"names":[],"mappings":";;;;AAAA,yCAAqC;AAA5B,6HAAA,OAAO,OAAA"}
@@ -1,3 +1,3 @@
1
1
  export interface GenerateExtendedGeneratorSchema {
2
- overwrite?: boolean;
3
- }
2
+ overwrite?: boolean;
3
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../../generators/api/src/extended/schema.ts"],"names":[],"mappings":""}
@@ -0,0 +1,50 @@
1
+ import { formatFiles, generateFiles, installPackagesTask, joinPathFragments, names, Tree } from '@nx/devkit';
2
+ import { getDMMF } from '@prisma/internals';
3
+ import { apiLibraryGenerator, getPrismaSchemaPath, readPrismaSchema } from '@nestledjs/utils';
4
+ import { GenerateCrudGeneratorSchema } from './schema';
5
+ import { getNpmScope } from '@nx/js/src/utils/package-json/get-npm-scope';
6
+ import pluralize from 'pluralize';
7
+ interface CrudAuthConfig {
8
+ readOne?: string;
9
+ readMany?: string;
10
+ count?: string;
11
+ create?: string;
12
+ update?: string;
13
+ delete?: string;
14
+ }
15
+ interface ModelType {
16
+ name: string;
17
+ pluralName: string;
18
+ fields: ReadonlyArray<Record<string, unknown> & {
19
+ name: string;
20
+ type: string;
21
+ }>;
22
+ primaryField: string;
23
+ modelName: string;
24
+ modelPropertyName: string;
25
+ pluralModelName: string;
26
+ pluralModelPropertyName: string;
27
+ auth?: CrudAuthConfig;
28
+ }
29
+ export interface GenerateCrudGeneratorDependencies {
30
+ formatFiles: typeof formatFiles;
31
+ generateFiles: typeof generateFiles;
32
+ installPackagesTask: typeof installPackagesTask;
33
+ joinPathFragments: typeof joinPathFragments;
34
+ names: typeof names;
35
+ getDMMF: typeof getDMMF;
36
+ apiLibraryGenerator: typeof apiLibraryGenerator;
37
+ getPrismaSchemaPath: typeof getPrismaSchemaPath;
38
+ readPrismaSchema: typeof readPrismaSchema;
39
+ getNpmScope: typeof getNpmScope;
40
+ pluralize: typeof pluralize;
41
+ }
42
+ export declare function parseCrudAuth(comment: string): CrudAuthConfig | null;
43
+ export declare function getCrudAuthForModel(schema: string, modelName: string): CrudAuthConfig;
44
+ export declare function getGuardForAuthLevel(level: string): string | null;
45
+ export declare function generateResolverContent(model: ModelType, npmScope: string): string;
46
+ export declare function generateFeatureModuleContent(models: ModelType[], npmScope: string): string;
47
+ export declare function generateFeatureIndexContent(models: ModelType[]): string;
48
+ export declare function generateCrudLogic(tree: Tree, schema: GenerateCrudGeneratorSchema, dependencies: GenerateCrudGeneratorDependencies): Promise<() => void>;
49
+ export default function (tree: Tree, schema: GenerateCrudGeneratorSchema): Promise<() => void>;
50
+ export {};
@@ -0,0 +1,295 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseCrudAuth = parseCrudAuth;
4
+ exports.getCrudAuthForModel = getCrudAuthForModel;
5
+ exports.getGuardForAuthLevel = getGuardForAuthLevel;
6
+ exports.generateResolverContent = generateResolverContent;
7
+ exports.generateFeatureModuleContent = generateFeatureModuleContent;
8
+ exports.generateFeatureIndexContent = generateFeatureIndexContent;
9
+ exports.generateCrudLogic = generateCrudLogic;
10
+ exports.default = default_1;
11
+ const tslib_1 = require("tslib");
12
+ const devkit_1 = require("@nx/devkit");
13
+ const internals_1 = require("@prisma/internals");
14
+ const utils_1 = require("@nestledjs/utils");
15
+ const get_npm_scope_1 = require("@nx/js/src/utils/package-json/get-npm-scope");
16
+ const pluralize_1 = tslib_1.__importDefault(require("pluralize"));
17
+ // STEP 2: DEFINE PURE HELPER & CONTENT GENERATION FUNCTIONS
18
+ // These functions are side-effect free and can be tested independently.
19
+ function parseCrudAuth(comment) {
20
+ try {
21
+ const match = comment.match(/@crudAuth:\s*(\{.*\})/);
22
+ if (!match)
23
+ return null;
24
+ return JSON.parse(match[1]);
25
+ }
26
+ catch (e) {
27
+ console.error('Error parsing @crudAuth:', e);
28
+ return null;
29
+ }
30
+ }
31
+ function getCrudAuthForModel(schema, modelName) {
32
+ const defaultConfig = {
33
+ readOne: 'admin',
34
+ readMany: 'admin',
35
+ count: 'admin',
36
+ create: 'admin',
37
+ update: 'admin',
38
+ delete: 'admin',
39
+ };
40
+ const lines = schema.split('\n');
41
+ let modelDoc = [];
42
+ let foundModel = false;
43
+ for (const line of lines) {
44
+ const trimmedLine = line.trim();
45
+ if (trimmedLine.startsWith(`model ${modelName}`) ||
46
+ trimmedLine.startsWith(`model ${modelName} `) ||
47
+ trimmedLine.startsWith(`model ${modelName}{`)) {
48
+ foundModel = true;
49
+ break;
50
+ }
51
+ else if (trimmedLine.startsWith('model ')) {
52
+ modelDoc = [];
53
+ }
54
+ else if (trimmedLine.startsWith('///') && !foundModel) {
55
+ modelDoc.push(trimmedLine);
56
+ }
57
+ }
58
+ if (!foundModel)
59
+ return defaultConfig;
60
+ const authLine = modelDoc.find((line) => line.includes('@crudAuth:'));
61
+ if (!authLine)
62
+ return defaultConfig;
63
+ const config = parseCrudAuth(authLine);
64
+ return config ? Object.assign(Object.assign({}, defaultConfig), config) : defaultConfig;
65
+ }
66
+ function getGuardForAuthLevel(level) {
67
+ if (!level)
68
+ return 'GqlAuthAdminGuard';
69
+ level = level.toLowerCase();
70
+ if (level === 'public')
71
+ return null;
72
+ if (level === 'user')
73
+ return 'GqlAuthGuard';
74
+ if (level === 'admin')
75
+ return 'GqlAuthAdminGuard';
76
+ const pascalCase = level.charAt(0).toUpperCase() + level.slice(1).toLowerCase();
77
+ return `GqlAuth${pascalCase}Guard`;
78
+ }
79
+ function toKebabCase(str) {
80
+ return str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
81
+ }
82
+ function generateResolverContent(model, npmScope) {
83
+ var _a, _b, _c, _d, _e, _f;
84
+ const usedGuards = new Set();
85
+ if (model.auth) {
86
+ Object.values(model.auth).forEach((level) => {
87
+ if (level === 'public')
88
+ return;
89
+ const guard = getGuardForAuthLevel(level);
90
+ if (guard)
91
+ usedGuards.add(guard);
92
+ });
93
+ }
94
+ else {
95
+ usedGuards.add('GqlAuthAdminGuard');
96
+ }
97
+ const guardImports = usedGuards.size > 0 ? `import { ${Array.from(usedGuards).sort().join(', ')} } from '@${npmScope}/api/utils'` : '';
98
+ const readManyGuardDecorator = ((_a = model.auth) === null || _a === void 0 ? void 0 : _a.readMany) ? getGuardForAuthLevel(model.auth.readMany) : 'GqlAuthAdminGuard';
99
+ const countGuardDecorator = ((_b = model.auth) === null || _b === void 0 ? void 0 : _b.count) ? getGuardForAuthLevel(model.auth.count) : 'GqlAuthAdminGuard';
100
+ const readOneGuardDecorator = ((_c = model.auth) === null || _c === void 0 ? void 0 : _c.readOne) ? getGuardForAuthLevel(model.auth.readOne) : 'GqlAuthAdminGuard';
101
+ const createGuardDecorator = ((_d = model.auth) === null || _d === void 0 ? void 0 : _d.create) ? getGuardForAuthLevel(model.auth.create) : 'GqlAuthAdminGuard';
102
+ const updateGuardDecorator = ((_e = model.auth) === null || _e === void 0 ? void 0 : _e.update) ? getGuardForAuthLevel(model.auth.update) : 'GqlAuthAdminGuard';
103
+ const deleteGuardDecorator = ((_f = model.auth) === null || _f === void 0 ? void 0 : _f.delete) ? getGuardForAuthLevel(model.auth.delete) : 'GqlAuthAdminGuard';
104
+ const readManyMethodName = model.pluralModelPropertyName;
105
+ const countMethodName = `${model.pluralModelPropertyName}Count`;
106
+ const readOneMethodName = model.modelPropertyName;
107
+ return `import { Args, Mutation, Query, Resolver, Info } from '@nestjs/graphql'
108
+ import { UseGuards } from '@nestjs/common'
109
+ import type { GraphQLResolveInfo } from 'graphql'
110
+ import { CorePaging } from '@${npmScope}/api/core/data-access'
111
+ import { ApiCrudDataAccessService } from '@${npmScope}/api/generated-crud/data-access'
112
+ import { ${model.modelName} } from '@${npmScope}/api/core/models'
113
+ import { Create${model.modelName}Input, List${model.modelName}Input, Update${model.modelName}Input } from '@${npmScope}/api/generated-crud/data-access'
114
+ ${guardImports}
115
+
116
+ @Resolver(() => ${model.modelName})
117
+ export class Generated${model.modelName}Resolver {
118
+ constructor(private readonly generatedService: ApiCrudDataAccessService) {}
119
+
120
+ @Query(() => [${model.modelName}], { nullable: true })
121
+ ${readManyGuardDecorator ? `@UseGuards(${readManyGuardDecorator})` : ''}
122
+ ${readManyMethodName}(
123
+ @Info() info: GraphQLResolveInfo,
124
+ @Args({ name: 'input', type: () => List${model.modelName}Input, nullable: true }) input?: List${model.modelName}Input,
125
+ ) {
126
+ return this.generatedService.${readManyMethodName}(info, input)
127
+ }
128
+
129
+ @Query(() => CorePaging, { nullable: true })
130
+ ${countGuardDecorator ? `@UseGuards(${countGuardDecorator})` : ''}
131
+ ${countMethodName}(
132
+ @Args({ name: 'input', type: () => List${model.modelName}Input, nullable: true }) input?: List${model.modelName}Input,
133
+ ) {
134
+ return this.generatedService.${countMethodName}(input)
135
+ }
136
+
137
+ @Query(() => ${model.modelName}, { nullable: true })
138
+ ${readOneGuardDecorator ? `@UseGuards(${readOneGuardDecorator})` : ''}
139
+ ${readOneMethodName}(
140
+ @Info() info: GraphQLResolveInfo,
141
+ @Args('${model.modelPropertyName}Id') ${model.modelPropertyName}Id: string
142
+ ) {
143
+ return this.generatedService.${readOneMethodName}(info, ${model.modelPropertyName}Id)
144
+ }
145
+
146
+ @Mutation(() => ${model.modelName}, { nullable: true })
147
+ ${createGuardDecorator ? `@UseGuards(${createGuardDecorator})` : ''}
148
+ create${model.modelName}(
149
+ @Info() info: GraphQLResolveInfo,
150
+ @Args('input') input: Create${model.modelName}Input,
151
+ ) {
152
+ return this.generatedService.create${model.modelName}(info, input)
153
+ }
154
+
155
+ @Mutation(() => ${model.modelName}, { nullable: true })
156
+ ${updateGuardDecorator ? `@UseGuards(${updateGuardDecorator})` : ''}
157
+ update${model.modelName}(
158
+ @Info() info: GraphQLResolveInfo,
159
+ @Args('${model.modelPropertyName}Id') ${model.modelPropertyName}Id: string,
160
+ @Args('input') input: Update${model.modelName}Input,
161
+ ) {
162
+ return this.generatedService.update${model.modelName}(info, ${model.modelPropertyName}Id, input)
163
+ }
164
+
165
+ @Mutation(() => ${model.modelName}, { nullable: true })
166
+ ${deleteGuardDecorator ? `@UseGuards(${deleteGuardDecorator})` : ''}
167
+ delete${model.modelName}(
168
+ @Args('${model.modelPropertyName}Id') ${model.modelPropertyName}Id: string,
169
+ ) {
170
+ return this.generatedService.delete${model.modelName}(${model.modelPropertyName}Id)
171
+ }
172
+ }
173
+ `;
174
+ }
175
+ function generateFeatureModuleContent(models, npmScope) {
176
+ return `import { Module } from '@nestjs/common'\nimport { ApiCrudDataAccessModule } from '@${npmScope}/api/generated-crud/data-access'\n${models
177
+ .map((model) => `import { Generated${model.modelName}Resolver } from './${toKebabCase(model.modelName)}.resolver'`)
178
+ .join('\n')}\n\n@Module({\n imports: [ApiCrudDataAccessModule],\n providers: [${models
179
+ .map((model) => `Generated${model.modelName}Resolver`)
180
+ .join(', ')}],\n})\nexport class ApiGeneratedCrudFeatureModule {}\n`;
181
+ }
182
+ function generateFeatureIndexContent(models) {
183
+ return `export * from './lib/api-admin-crud-feature.module'\n${models
184
+ .map((model) => `export * from './lib/${toKebabCase(model.modelName)}.resolver'`)
185
+ .join('\n')}\n`;
186
+ }
187
+ // STEP 3: DEFINE THE CORE LOGIC FUNCTION
188
+ // This function contains all the generator's logic but uses injected dependencies, making it testable.
189
+ function generateCrudLogic(tree, schema, dependencies) {
190
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
191
+ // Helper functions that now use injected dependencies
192
+ function getAllPrismaModels(tree) {
193
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
194
+ const prismaPath = dependencies.getPrismaSchemaPath(tree);
195
+ const prismaSchema = dependencies.readPrismaSchema(tree, prismaPath);
196
+ if (!prismaSchema) {
197
+ console.error(`No Prisma schema found at ${prismaPath}`);
198
+ return [];
199
+ }
200
+ try {
201
+ const dmmf = yield dependencies.getDMMF({ datamodel: prismaSchema });
202
+ return dmmf.datamodel.models.map((model) => {
203
+ var _a;
204
+ const singularPropertyName = model.name.charAt(0).toLowerCase() + model.name.slice(1);
205
+ const pluralPropertyName = dependencies.pluralize(singularPropertyName);
206
+ const authConfig = getCrudAuthForModel(prismaSchema, model.name);
207
+ return {
208
+ name: model.name,
209
+ pluralName: dependencies.pluralize(model.name),
210
+ fields: model.fields.map((field) => (Object.assign({}, field))),
211
+ primaryField: ((_a = model.fields.find((f) => !f.isId && f.type === 'String')) === null || _a === void 0 ? void 0 : _a.name) || 'name',
212
+ modelName: model.name,
213
+ modelPropertyName: singularPropertyName,
214
+ pluralModelName: dependencies.pluralize(model.name),
215
+ pluralModelPropertyName: pluralPropertyName,
216
+ auth: authConfig,
217
+ };
218
+ });
219
+ }
220
+ catch (error) {
221
+ console.error('Error parsing Prisma schema:', error);
222
+ return [];
223
+ }
224
+ });
225
+ }
226
+ function createLibraries(tree, name) {
227
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
228
+ const dataAccessLibraryRoot = `libs/api/${name}/data-access`;
229
+ const featureLibraryRoot = `libs/api/${name}/feature`;
230
+ const templatePath = dependencies.joinPathFragments(__dirname, './files');
231
+ yield dependencies.apiLibraryGenerator(tree, { name }, templatePath, 'data-access');
232
+ yield dependencies.apiLibraryGenerator(tree, { name }, templatePath, 'feature');
233
+ return { dataAccessLibraryRoot, featureLibraryRoot };
234
+ });
235
+ }
236
+ function generateModelFiles(tree, dataAccessLibraryRoot, featureLibraryRoot, models, name) {
237
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
238
+ const npmScope = dependencies.getNpmScope(tree);
239
+ const nameObj = dependencies.names(name);
240
+ const substitutions = Object.assign(Object.assign({}, nameObj), { name, models, npmScope: `@${npmScope}`, apiClassName: 'PrismaCrud', tmpl: '' });
241
+ dependencies.generateFiles(tree, dependencies.joinPathFragments(__dirname, './files/data-access/src/lib'), dependencies.joinPathFragments(dataAccessLibraryRoot, 'src/lib'), Object.assign(Object.assign({}, substitutions), { type: 'data-access' }));
242
+ dependencies.generateFiles(tree, dependencies.joinPathFragments(__dirname, './files/data-access/src'), dependencies.joinPathFragments(dataAccessLibraryRoot, 'src'), Object.assign(Object.assign({}, substitutions), { type: 'data-access' }));
243
+ const featureModuleContent = generateFeatureModuleContent(models, npmScope);
244
+ tree.write(dependencies.joinPathFragments(featureLibraryRoot, 'src/lib/api-admin-crud-feature.module.ts'), featureModuleContent);
245
+ const featureIndexContent = generateFeatureIndexContent(models);
246
+ tree.write(dependencies.joinPathFragments(featureLibraryRoot, 'src/index.ts'), featureIndexContent);
247
+ for (const model of models) {
248
+ const resolverFilePath = dependencies.joinPathFragments(featureLibraryRoot, `src/lib/${toKebabCase(model.modelName)}.resolver.ts`);
249
+ const resolverContent = generateResolverContent(model, npmScope);
250
+ tree.write(resolverFilePath, resolverContent);
251
+ }
252
+ });
253
+ }
254
+ // Main Orchestration Logic
255
+ const name = schema.name || 'generated-crud';
256
+ const models = yield getAllPrismaModels(tree);
257
+ if (models.length === 0) {
258
+ console.error('No Prisma models found');
259
+ return; // Return early for the test case
260
+ }
261
+ const { dataAccessLibraryRoot, featureLibraryRoot } = yield createLibraries(tree, name);
262
+ yield generateModelFiles(tree, dataAccessLibraryRoot, featureLibraryRoot, models, name);
263
+ yield dependencies.formatFiles(tree);
264
+ return () => {
265
+ dependencies.installPackagesTask(tree);
266
+ };
267
+ });
268
+ }
269
+ // STEP 4: DEFINE THE DEFAULT EXPORT
270
+ // This is what Nx CLI executes. It's a simple wrapper that provides the *real* dependencies to the logic function.
271
+ function default_1(tree, schema) {
272
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
273
+ const dependencies = {
274
+ formatFiles: devkit_1.formatFiles,
275
+ generateFiles: devkit_1.generateFiles,
276
+ installPackagesTask: devkit_1.installPackagesTask,
277
+ joinPathFragments: devkit_1.joinPathFragments,
278
+ names: devkit_1.names,
279
+ getDMMF: internals_1.getDMMF,
280
+ apiLibraryGenerator: utils_1.apiLibraryGenerator,
281
+ getPrismaSchemaPath: utils_1.getPrismaSchemaPath,
282
+ readPrismaSchema: utils_1.readPrismaSchema,
283
+ getNpmScope: get_npm_scope_1.getNpmScope,
284
+ pluralize: pluralize_1.default,
285
+ };
286
+ try {
287
+ return yield generateCrudLogic(tree, schema, dependencies);
288
+ }
289
+ catch (error) {
290
+ console.error('Error in CRUD generator:', error);
291
+ throw error;
292
+ }
293
+ });
294
+ }
295
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../generators/api/src/generate-crud/generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export interface GenerateCrudGeneratorSchema {
2
+ name: string;
3
+ directory: string;
4
+ model: string;
5
+ plural: string;
6
+ description?: string;
7
+ overwrite?: boolean;
8
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../../generators/api/src/generate-crud/schema.ts"],"names":[],"mappings":""}
package/src/index.d.ts ADDED
@@ -0,0 +1,13 @@
1
+ export * from './account/generator';
2
+ export * from './app/generator';
3
+ export * from './config/generator';
4
+ export * from './core/generator';
5
+ export * from './custom/generator';
6
+ export * from './generate-crud/generator';
7
+ export * from './smtp-mailer/generator';
8
+ export * from './prisma/generator';
9
+ export * from './setup/generator';
10
+ export * from './user/generator';
11
+ export * from './workspace-setup/generator';
12
+ export * from './plugin/generator';
13
+ export * from './utils/generator';
package/src/index.js ADDED
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./account/generator"), exports);
5
+ tslib_1.__exportStar(require("./app/generator"), exports);
6
+ tslib_1.__exportStar(require("./config/generator"), exports);
7
+ tslib_1.__exportStar(require("./core/generator"), exports);
8
+ tslib_1.__exportStar(require("./custom/generator"), exports);
9
+ tslib_1.__exportStar(require("./generate-crud/generator"), exports);
10
+ tslib_1.__exportStar(require("./smtp-mailer/generator"), exports);
11
+ tslib_1.__exportStar(require("./prisma/generator"), exports);
12
+ tslib_1.__exportStar(require("./setup/generator"), exports);
13
+ tslib_1.__exportStar(require("./user/generator"), exports);
14
+ tslib_1.__exportStar(require("./workspace-setup/generator"), exports);
15
+ tslib_1.__exportStar(require("./plugin/generator"), exports);
16
+ tslib_1.__exportStar(require("./utils/generator"), exports);
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../generators/api/src/index.ts"],"names":[],"mappings":";;;AAAA,8DAAmC;AACnC,0DAA+B;AAC/B,6DAAkC;AAClC,2DAAgC;AAChC,6DAAkC;AAClC,oEAAyC;AACzC,kEAAuC;AACvC,6DAAkC;AAClC,4DAAiC;AACjC,2DAAgC;AAChC,sEAA2C;AAC3C,6DAAkC;AAClC,4DAAiC"}
@@ -0,0 +1,3 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import { GeneratePluginGeneratorSchema } from './schema';
3
+ export default function (tree: Tree, schema: GeneratePluginGeneratorSchema): Promise<() => void>;