@gadmin2n/prisma-nest-generator 0.0.20

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 (53) hide show
  1. package/LICENSE +177 -0
  2. package/README.md +2 -0
  3. package/dist/cli.d.ts +2 -0
  4. package/dist/cli.js +4 -0
  5. package/dist/generator/annotations.d.ts +14 -0
  6. package/dist/generator/annotations.js +28 -0
  7. package/dist/generator/compute-model-params/compute-connect-dto-params.d.ts +7 -0
  8. package/dist/generator/compute-model-params/compute-connect-dto-params.js +14 -0
  9. package/dist/generator/compute-model-params/compute-create-dto-params.d.ts +9 -0
  10. package/dist/generator/compute-model-params/compute-create-dto-params.js +80 -0
  11. package/dist/generator/compute-model-params/compute-entity-params.d.ts +9 -0
  12. package/dist/generator/compute-model-params/compute-entity-params.js +74 -0
  13. package/dist/generator/compute-model-params/compute-update-dto-params.d.ts +9 -0
  14. package/dist/generator/compute-model-params/compute-update-dto-params.js +72 -0
  15. package/dist/generator/compute-model-params/index.d.ts +9 -0
  16. package/dist/generator/compute-model-params/index.js +22 -0
  17. package/dist/generator/field-classifiers.d.ts +14 -0
  18. package/dist/generator/field-classifiers.js +51 -0
  19. package/dist/generator/generate-connect-dto.d.ts +7 -0
  20. package/dist/generator/generate-connect-dto.js +14 -0
  21. package/dist/generator/generate-controller-spec.d.ts +8 -0
  22. package/dist/generator/generate-controller-spec.js +28 -0
  23. package/dist/generator/generate-controller.d.ts +8 -0
  24. package/dist/generator/generate-controller.js +207 -0
  25. package/dist/generator/generate-create-dto.d.ts +8 -0
  26. package/dist/generator/generate-create-dto.js +15 -0
  27. package/dist/generator/generate-entity.d.ts +7 -0
  28. package/dist/generator/generate-entity.js +16 -0
  29. package/dist/generator/generate-form-validator-class.d.ts +8 -0
  30. package/dist/generator/generate-form-validator-class.js +42 -0
  31. package/dist/generator/generate-module.d.ts +8 -0
  32. package/dist/generator/generate-module.js +18 -0
  33. package/dist/generator/generate-modules-index.d.ts +8 -0
  34. package/dist/generator/generate-modules-index.js +13 -0
  35. package/dist/generator/generate-service-spec.d.ts +8 -0
  36. package/dist/generator/generate-service-spec.js +406 -0
  37. package/dist/generator/generate-service.d.ts +8 -0
  38. package/dist/generator/generate-service.js +91 -0
  39. package/dist/generator/generate-types-dto.d.ts +7 -0
  40. package/dist/generator/generate-types-dto.js +160 -0
  41. package/dist/generator/generate-update-dto.d.ts +8 -0
  42. package/dist/generator/generate-update-dto.js +12 -0
  43. package/dist/generator/helpers.d.ts +32 -0
  44. package/dist/generator/helpers.js +167 -0
  45. package/dist/generator/index.d.ts +17 -0
  46. package/dist/generator/index.js +187 -0
  47. package/dist/generator/template-helpers.d.ts +56 -0
  48. package/dist/generator/template-helpers.js +138 -0
  49. package/dist/generator/types.d.ts +56 -0
  50. package/dist/generator/types.js +2 -0
  51. package/dist/index.d.ts +3 -0
  52. package/dist/index.js +77 -0
  53. package/package.json +71 -0
package/dist/index.js ADDED
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.generate = exports.stringToBoolean = void 0;
7
+ const promises_1 = __importDefault(require("node:fs/promises"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const make_dir_1 = __importDefault(require("make-dir"));
10
+ const generator_helper_1 = require("@prisma/generator-helper");
11
+ const sdk_1 = require("@prisma/sdk");
12
+ const generator_1 = require("./generator");
13
+ const stringToBoolean = (input, defaultValue = false) => {
14
+ if (input === 'true') {
15
+ return true;
16
+ }
17
+ if (input === 'false') {
18
+ return false;
19
+ }
20
+ return defaultValue;
21
+ };
22
+ exports.stringToBoolean = stringToBoolean;
23
+ const generate = (options) => {
24
+ const output = (0, sdk_1.parseEnvValue)(options.generator.output);
25
+ const { connectDtoPrefix = 'Connect', createDtoPrefix = 'Create', updateDtoPrefix = 'Update', dtoSuffix = 'Dto', entityPrefix = '', entitySuffix = '', fileNamingStyle = 'camel', } = options.generator.config;
26
+ const exportRelationModifierClasses = (0, exports.stringToBoolean)(options.generator.config.exportRelationModifierClasses, true);
27
+ const outputToNestJsResourceStructure = (0, exports.stringToBoolean)(options.generator.config.outputToNestJsResourceStructure, false);
28
+ const reExport = (0, exports.stringToBoolean)(options.generator.config.reExport, false);
29
+ const supportedFileNamingStyles = ['kebab', 'camel', 'pascal', 'snake'];
30
+ const isSupportedFileNamingStyle = (style) => supportedFileNamingStyles.includes(style);
31
+ if (!isSupportedFileNamingStyle(fileNamingStyle)) {
32
+ throw new Error(`'${fileNamingStyle}' is not a valid file naming style. Valid options are ${supportedFileNamingStyles
33
+ .map((s) => `'${s}'`)
34
+ .join(', ')}.`);
35
+ }
36
+ const results = (0, generator_1.run)({
37
+ output,
38
+ dmmf: options.dmmf,
39
+ exportRelationModifierClasses,
40
+ outputToNestJsResourceStructure,
41
+ connectDtoPrefix,
42
+ createDtoPrefix,
43
+ updateDtoPrefix,
44
+ dtoSuffix,
45
+ entityPrefix,
46
+ entitySuffix,
47
+ fileNamingStyle,
48
+ });
49
+ const indexCollections = {};
50
+ if (reExport) {
51
+ results.forEach(({ fileName }) => {
52
+ const dirName = node_path_1.default.dirname(fileName);
53
+ const { [dirName]: fileSpec } = indexCollections;
54
+ indexCollections[dirName] = {
55
+ fileName: (fileSpec === null || fileSpec === void 0 ? void 0 : fileSpec.fileName) || node_path_1.default.join(dirName, 'index.ts'),
56
+ content: [
57
+ (fileSpec === null || fileSpec === void 0 ? void 0 : fileSpec.content) || '',
58
+ `export * from './${node_path_1.default.basename(fileName, '.ts')}';`,
59
+ ].join('\n'),
60
+ };
61
+ });
62
+ }
63
+ return Promise.all(results
64
+ .concat(Object.values(indexCollections))
65
+ .map(async ({ fileName, content }) => {
66
+ await (0, make_dir_1.default)(node_path_1.default.dirname(fileName));
67
+ return promises_1.default.writeFile(fileName, content);
68
+ }));
69
+ };
70
+ exports.generate = generate;
71
+ (0, generator_helper_1.generatorHandler)({
72
+ onManifest: () => ({
73
+ defaultOutput: '../src/generated/nestjs-dto',
74
+ prettyName: 'Gadmin2 nestjs code Generator',
75
+ }),
76
+ onGenerate: exports.generate,
77
+ });
package/package.json ADDED
@@ -0,0 +1,71 @@
1
+ {
2
+ "name": "@gadmin2n/prisma-nest-generator",
3
+ "description": "Generates DTO and Entity classes from Prisma Schema for NestJS",
4
+ "version": "0.0.20",
5
+ "license": "Apache-2.0",
6
+ "author": {
7
+ "name": "mage"
8
+ },
9
+ "main": "dist/index.js",
10
+ "keywords": [
11
+ "prisma",
12
+ "generator",
13
+ "nestjs",
14
+ "dto",
15
+ "typescript"
16
+ ],
17
+ "scripts": {
18
+ "prebuild": "npm run cleanup:generated",
19
+ "build": "tsc --project tsconfig.build.json",
20
+ "format": "prettier --write \"{src,test}/**/*.{js,ts}\"",
21
+ "prelint": "npm run format -- --loglevel error",
22
+ "lint": "eslint \"{src,test}/**/*.{js,ts}\" --fix",
23
+ "pretest": "npm run lint",
24
+ "test": "jest",
25
+ "test:watch": "jest --watch",
26
+ "cleanup:generated": "rimraf src/@generated",
27
+ "pregenerate": "npm run cleanup:generated",
28
+ "generate": "npx prisma generate && npm run format -- --loglevel error"
29
+ },
30
+ "repository": {
31
+ "type": "git",
32
+ "url": ""
33
+ },
34
+ "bin": {
35
+ "prisma-nest-generator": "dist/cli.js"
36
+ },
37
+ "engines": {
38
+ "node": ">=14.18"
39
+ },
40
+ "files": [
41
+ "dist"
42
+ ],
43
+ "publishConfig": {
44
+ "access": "public"
45
+ },
46
+ "dependencies": {
47
+ "@prisma/generator-helper": "^4.12.0",
48
+ "@prisma/sdk": "^4.0.0",
49
+ "case": "^1.6.3",
50
+ "make-dir": "^3.1.0",
51
+ "slash": "^3.0.0",
52
+ "tar": "^6.1.11"
53
+ },
54
+ "devDependencies": {
55
+ "@types/jest": "^27.0.2",
56
+ "@types/node": "^17.0.1",
57
+ "@typescript-eslint/eslint-plugin": "^4.33.0",
58
+ "@typescript-eslint/parser": "^4.33.0",
59
+ "eslint": "^7.32.0",
60
+ "eslint-config-prettier": "^8.3.0",
61
+ "eslint-plugin-prettier": "^4.0.0",
62
+ "ts-toolbelt": "^9.6.0",
63
+ "jest": "^27.2.4",
64
+ "prettier": "^2.4.1",
65
+ "prisma": "^4.12.0",
66
+ "rimraf": "^3.0.2",
67
+ "ts-jest": "^27.0.5",
68
+ "ts-node": "^10.2.1",
69
+ "typescript": "^4.4.3"
70
+ }
71
+ }