@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.
- package/package.json +2 -2
- package/src/account/generator.d.ts +3 -0
- package/src/account/generator.js +19 -0
- package/src/account/generator.js.map +1 -0
- package/src/app/generator.d.ts +6 -0
- package/src/app/generator.js +96 -0
- package/src/app/generator.js.map +1 -0
- package/src/config/files/src/index.ts__tmpl__ +1 -0
- package/src/config/files/src/lib/config.modules.ts__tmpl__ +8 -0
- package/src/config/files/src/lib/config.service.ts__tmpl__ +3 -3
- package/src/config/generator.d.ts +3 -0
- package/src/config/generator.js +18 -0
- package/src/config/generator.js.map +1 -0
- package/src/core/files/models/src/lib/generate-models.ts__tmpl__ +36 -25
- package/src/core/generator.d.ts +3 -0
- package/src/core/generator.js +31 -0
- package/src/core/generator.js.map +1 -0
- package/src/custom/generator.d.ts +24 -0
- package/src/custom/generator.js +199 -0
- package/src/custom/generator.js.map +1 -0
- package/src/custom/schema.d.ts +5 -0
- package/src/custom/schema.js +3 -0
- package/src/custom/schema.js.map +1 -0
- package/src/extended/generator.d.ts +3 -0
- package/src/extended/generator.js +136 -0
- package/src/extended/generator.js.map +1 -0
- package/src/extended/index.d.ts +1 -0
- package/src/extended/index.js +7 -0
- package/src/extended/index.js.map +1 -0
- package/src/extended/{schema.ts → schema.d.ts} +2 -2
- package/src/extended/schema.js +3 -0
- package/src/extended/schema.js.map +1 -0
- package/src/generate-crud/generator.d.ts +50 -0
- package/src/generate-crud/generator.js +295 -0
- package/src/generate-crud/generator.js.map +1 -0
- package/src/generate-crud/schema.d.ts +8 -0
- package/src/generate-crud/schema.js +3 -0
- package/src/generate-crud/schema.js.map +1 -0
- package/src/index.d.ts +13 -0
- package/src/index.js +17 -0
- package/src/index.js.map +1 -0
- package/src/plugin/generator.d.ts +3 -0
- package/src/plugin/generator.js +74 -0
- package/src/plugin/generator.js.map +1 -0
- package/src/plugin/{schema.ts → schema.d.ts} +3 -3
- package/src/plugin/schema.js +3 -0
- package/src/plugin/schema.js.map +1 -0
- package/src/prisma/generator.d.ts +3 -0
- package/src/prisma/generator.js +61 -0
- package/src/prisma/generator.js.map +1 -0
- package/src/setup/generator.d.ts +3 -0
- package/src/setup/generator.js +104 -0
- package/src/setup/generator.js.map +1 -0
- package/src/smtp-mailer/generator.d.ts +2 -0
- package/src/smtp-mailer/generator.js +17 -0
- package/src/smtp-mailer/generator.js.map +1 -0
- package/src/user/generator.d.ts +2 -0
- package/src/user/generator.js +18 -0
- package/src/user/generator.js.map +1 -0
- package/src/utils/generator.d.ts +2 -0
- package/src/utils/generator.js +17 -0
- package/src/utils/generator.js.map +1 -0
- package/src/workspace-setup/generator.d.ts +1 -0
- package/src/workspace-setup/generator.js +42 -0
- package/src/workspace-setup/generator.js.map +1 -0
- package/src/workspace-setup/lib/helpers.d.ts +16 -0
- package/src/workspace-setup/lib/helpers.js +164 -0
- package/src/workspace-setup/lib/helpers.js.map +1 -0
- package/eslint.config.cjs +0 -28
- package/project.json +0 -47
- package/src/account/generator.spec.ts +0 -71
- package/src/account/generator.ts +0 -20
- package/src/app/generator.spec.ts +0 -112
- package/src/app/generator.ts +0 -105
- package/src/config/generator.spec.ts +0 -47
- package/src/config/generator.ts +0 -16
- package/src/core/generator.spec.ts +0 -85
- package/src/core/generator.ts +0 -35
- package/src/custom/generator.spec.ts +0 -75
- package/src/custom/generator.ts +0 -239
- package/src/custom/schema.ts +0 -5
- package/src/extended/generator.spec.ts +0 -95
- package/src/extended/generator.ts +0 -161
- package/src/extended/index.ts +0 -1
- package/src/generate-crud/generator.spec.ts +0 -84
- package/src/generate-crud/generator.ts +0 -354
- package/src/generate-crud/schema.ts +0 -8
- package/src/index.ts +0 -13
- package/src/plugin/generator.spec.ts +0 -18
- package/src/plugin/generator.ts +0 -74
- package/src/prisma/generator.spec.ts +0 -60
- package/src/prisma/generator.ts +0 -61
- package/src/setup/generator.spec.ts +0 -18
- package/src/setup/generator.ts +0 -107
- package/src/smtp-mailer/generator.spec.ts +0 -41
- package/src/smtp-mailer/generator.ts +0 -14
- package/src/user/generator.spec.ts +0 -41
- package/src/user/generator.ts +0 -15
- package/src/utils/generator.ts +0 -14
- package/src/workspace-setup/generator.spec.ts +0 -85
- package/src/workspace-setup/generator.ts +0 -57
- package/src/workspace-setup/lib/helpers.ts +0 -149
- package/tsconfig.json +0 -16
- package/tsconfig.lib.json +0 -23
- package/tsconfig.spec.json +0 -22
- 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 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../../generators/api/src/custom/schema.ts"],"names":[],"mappings":""}
|
|
@@ -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
|
-
|
|
3
|
-
}
|
|
2
|
+
overwrite?: boolean;
|
|
3
|
+
}
|
|
@@ -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 @@
|
|
|
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
|
package/src/index.js.map
ADDED
|
@@ -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"}
|