@k0lyan/typegraphql-prisma-nestjs 0.28.20 → 0.28.22

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 (88) hide show
  1. package/lib/cli/dev.d.ts +1 -0
  2. package/lib/cli/dev.js +5 -0
  3. package/lib/cli/dev.js.map +1 -0
  4. package/lib/cli/generator.d.ts +1 -0
  5. package/lib/cli/generator.js +13 -0
  6. package/lib/cli/generator.js.map +1 -0
  7. package/lib/cli/helpers.d.ts +4 -0
  8. package/lib/cli/helpers.js +52 -0
  9. package/lib/cli/helpers.js.map +1 -0
  10. package/lib/cli/prisma-generator.d.ts +2 -0
  11. package/lib/cli/prisma-generator.js +79 -0
  12. package/lib/cli/prisma-generator.js.map +1 -0
  13. package/lib/generator/args-class.d.ts +4 -0
  14. package/lib/generator/args-class.js +56 -0
  15. package/lib/generator/args-class.js.map +1 -0
  16. package/lib/generator/config.d.ts +22 -0
  17. package/lib/generator/config.js +39 -0
  18. package/lib/generator/config.js.map +1 -0
  19. package/lib/generator/dmmf/dmmf-document.d.ts +19 -0
  20. package/lib/generator/dmmf/dmmf-document.js +60 -0
  21. package/lib/generator/dmmf/dmmf-document.js.map +1 -0
  22. package/lib/generator/dmmf/helpers.d.ts +5 -0
  23. package/lib/generator/dmmf/helpers.js +42 -0
  24. package/lib/generator/dmmf/helpers.js.map +1 -0
  25. package/lib/generator/dmmf/transform.d.ts +11 -0
  26. package/lib/generator/dmmf/transform.js +456 -0
  27. package/lib/generator/dmmf/transform.js.map +1 -0
  28. package/lib/generator/dmmf/types.d.ts +230 -0
  29. package/lib/generator/dmmf/types.js +28 -0
  30. package/lib/generator/dmmf/types.js.map +1 -0
  31. package/lib/generator/emit-block.d.ts +4 -0
  32. package/lib/generator/emit-block.js +35 -0
  33. package/lib/generator/emit-block.js.map +1 -0
  34. package/lib/generator/enum.d.ts +4 -0
  35. package/lib/generator/enum.js +39 -0
  36. package/lib/generator/enum.js.map +1 -0
  37. package/lib/generator/generate-code.d.ts +3 -0
  38. package/lib/generator/generate-code.js +229 -0
  39. package/lib/generator/generate-code.js.map +1 -0
  40. package/lib/generator/generate-enhance.d.ts +5 -0
  41. package/lib/generator/generate-enhance.js +492 -0
  42. package/lib/generator/generate-enhance.js.map +1 -0
  43. package/lib/generator/generate-helpers.d.ts +3 -0
  44. package/lib/generator/generate-helpers.js +113 -0
  45. package/lib/generator/generate-helpers.js.map +1 -0
  46. package/lib/generator/generate-scalars.d.ts +3 -0
  47. package/lib/generator/generate-scalars.js +27 -0
  48. package/lib/generator/generate-scalars.js.map +1 -0
  49. package/lib/generator/helpers.d.ts +14 -0
  50. package/lib/generator/helpers.js +226 -0
  51. package/lib/generator/helpers.js.map +1 -0
  52. package/lib/generator/imports.d.ts +28 -0
  53. package/lib/generator/imports.js +311 -0
  54. package/lib/generator/imports.js.map +1 -0
  55. package/lib/generator/model-type-class.d.ts +4 -0
  56. package/lib/generator/model-type-class.js +152 -0
  57. package/lib/generator/model-type-class.js.map +1 -0
  58. package/lib/generator/options.d.ts +40 -0
  59. package/lib/generator/options.js +3 -0
  60. package/lib/generator/options.js.map +1 -0
  61. package/lib/generator/resolvers/full-crud.d.ts +5 -0
  62. package/lib/generator/resolvers/full-crud.js +45 -0
  63. package/lib/generator/resolvers/full-crud.js.map +1 -0
  64. package/lib/generator/resolvers/helpers.d.ts +5 -0
  65. package/lib/generator/resolvers/helpers.js +81 -0
  66. package/lib/generator/resolvers/helpers.js.map +1 -0
  67. package/lib/generator/resolvers/relations.d.ts +5 -0
  68. package/lib/generator/resolvers/relations.js +254 -0
  69. package/lib/generator/resolvers/relations.js.map +1 -0
  70. package/lib/generator/resolvers/separate-action.d.ts +5 -0
  71. package/lib/generator/resolvers/separate-action.js +33 -0
  72. package/lib/generator/resolvers/separate-action.js.map +1 -0
  73. package/lib/generator/type-class.d.ts +12 -0
  74. package/lib/generator/type-class.js +340 -0
  75. package/lib/generator/type-class.js.map +1 -0
  76. package/lib/generator/types.d.ts +5 -0
  77. package/lib/generator/types.js +3 -0
  78. package/lib/generator/types.js.map +1 -0
  79. package/lib/generator.d.ts +2 -0
  80. package/lib/generator.js +5 -0
  81. package/lib/generator.js.map +1 -0
  82. package/lib/utils/prisma-version.d.ts +1 -0
  83. package/lib/utils/prisma-version.js +34 -0
  84. package/lib/utils/prisma-version.js.map +1 -0
  85. package/lib/utils/removeDir.d.ts +1 -0
  86. package/lib/utils/removeDir.js +19 -0
  87. package/lib/utils/removeDir.js.map +1 -0
  88. package/package.json +5 -5
@@ -0,0 +1 @@
1
+ #!/usr/bin/env node
package/lib/cli/dev.js ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ require("ts-node/register/transpile-only");
4
+ require("./generator");
5
+ //# sourceMappingURL=dev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/cli/dev.ts"],"names":[],"mappings":";;AACA,OAAO,CAAC,iCAAiC,CAAC,CAAC;AAC3C,OAAO,CAAC,aAAa,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const generator_helper_1 = require("@prisma/generator-helper");
4
+ const prisma_generator_1 = require("./prisma-generator");
5
+ (0, generator_helper_1.generatorHandler)({
6
+ onManifest: () => ({
7
+ defaultOutput: "node_modules/@generated/type-graphql-nestjs",
8
+ prettyName: "TypeGraphQL + NestJS integration",
9
+ // requiresGenerators: ["prisma-client-js"],
10
+ }),
11
+ onGenerate: prisma_generator_1.generate,
12
+ });
13
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/cli/generator.ts"],"names":[],"mappings":";;AAAA,+DAA4D;AAE5D,yDAA8C;AAE9C,IAAA,mCAAgB,EAAC;IACf,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QACjB,aAAa,EAAE,6CAA6C;QAC5D,UAAU,EAAE,kCAAkC;QAC9C,4CAA4C;KAC7C,CAAC;IACF,UAAU,EAAE,2BAAQ;CACrB,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function parseStringBoolean(stringBoolean: string | string[] | undefined): boolean | undefined;
2
+ export declare function parseString(value: string | string[] | undefined, optionPropertyName: string): string | undefined;
3
+ export declare function parseStringArray<TAllowedValue extends string>(stringArray: string | string[] | undefined, optionPropertyName: string, allowedValues?: readonly TAllowedValue[]): TAllowedValue[] | undefined;
4
+ export declare function parseStringEnum<TAllowedValue extends string>(stringEnum: string | string[] | undefined, optionPropertyName: string, allowedValues: readonly TAllowedValue[]): TAllowedValue | undefined;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseStringBoolean = parseStringBoolean;
4
+ exports.parseString = parseString;
5
+ exports.parseStringArray = parseStringArray;
6
+ exports.parseStringEnum = parseStringEnum;
7
+ function parseStringBoolean(stringBoolean) {
8
+ return stringBoolean === "true"
9
+ ? true
10
+ : stringBoolean === "false"
11
+ ? false
12
+ : undefined;
13
+ }
14
+ function parseString(value, optionPropertyName) {
15
+ if (Array.isArray(value)) {
16
+ throw new Error(`Invalid "${optionPropertyName}" option value "${value}" provided for TypeGraphQL generator.`);
17
+ }
18
+ return value;
19
+ }
20
+ function parseStringArray(stringArray, optionPropertyName, allowedValues) {
21
+ if (!stringArray) {
22
+ return undefined;
23
+ }
24
+ let parsedArray;
25
+ if (typeof stringArray === "string") {
26
+ if (!stringArray.includes(",")) {
27
+ throw new Error(`Invalid "${optionPropertyName}" value "${stringArray}" provided for TypeGraphQL generator.`);
28
+ }
29
+ parsedArray = stringArray.split(",").map(it => it.trim());
30
+ }
31
+ else {
32
+ parsedArray = stringArray;
33
+ }
34
+ if (allowedValues) {
35
+ for (const option of parsedArray) {
36
+ if (!allowedValues.includes(option)) {
37
+ throw new Error(`Invalid "${optionPropertyName}" option value "${option}" provided for TypeGraphQL generator.`);
38
+ }
39
+ }
40
+ }
41
+ return parsedArray;
42
+ }
43
+ function parseStringEnum(stringEnum, optionPropertyName, allowedValues) {
44
+ if (!stringEnum) {
45
+ return undefined;
46
+ }
47
+ if (!allowedValues.includes(stringEnum)) {
48
+ throw new Error(`Invalid "${optionPropertyName}" option value "${stringEnum}" provided for TypeGraphQL generator.`);
49
+ }
50
+ return stringEnum;
51
+ }
52
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/cli/helpers.ts"],"names":[],"mappings":";;AAAA,gDAQC;AAED,kCAUC;AAED,4CAgCC;AAED,0CAcC;AAtED,SAAgB,kBAAkB,CAChC,aAA4C;IAE5C,OAAO,aAAa,KAAK,MAAM;QAC7B,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,aAAa,KAAK,OAAO;YACzB,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,SAAS,CAAC;AAClB,CAAC;AAED,SAAgB,WAAW,CACzB,KAAoC,EACpC,kBAA0B;IAE1B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,YAAY,kBAAkB,mBAAmB,KAAK,uCAAuC,CAC9F,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,gBAAgB,CAC9B,WAA0C,EAC1C,kBAA0B,EAC1B,aAAwC;IAExC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,WAAqB,CAAC;IAC1B,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACpC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,YAAY,kBAAkB,YAAY,WAAW,uCAAuC,CAC7F,CAAC;QACJ,CAAC;QACD,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,WAAW,CAAC;IAC5B,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAa,CAAC,EAAE,CAAC;gBAC3C,MAAM,IAAI,KAAK,CACb,YAAY,kBAAkB,mBAAmB,MAAM,uCAAuC,CAC/F,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,WAA8B,CAAC;AACxC,CAAC;AAED,SAAgB,eAAe,CAC7B,UAAyC,EACzC,kBAA0B,EAC1B,aAAuC;IAEvC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAiB,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CACb,YAAY,kBAAkB,mBAAmB,UAAU,uCAAuC,CACnG,CAAC;IACJ,CAAC;IACD,OAAO,UAA2B,CAAC;AACrC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { GeneratorOptions } from "@prisma/generator-helper";
2
+ export declare function generate(options: GeneratorOptions): Promise<string>;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generate = generate;
4
+ const tslib_1 = require("tslib");
5
+ const internals_1 = require("@prisma/internals");
6
+ const fs_1 = require("fs");
7
+ const path_1 = tslib_1.__importDefault(require("path"));
8
+ const generate_code_1 = tslib_1.__importDefault(require("../generator/generate-code"));
9
+ const removeDir_1 = tslib_1.__importDefault(require("../utils/removeDir"));
10
+ const emit_block_1 = require("../generator/emit-block");
11
+ const helpers_1 = require("./helpers");
12
+ async function generate(options) {
13
+ const outputDir = (0, internals_1.parseEnvValue)(options.generator.output);
14
+ await fs_1.promises.mkdir(outputDir, { recursive: true });
15
+ await (0, removeDir_1.default)(outputDir, true);
16
+ const prismaClientProvider = options.otherGenerators.find(it => (0, internals_1.parseEnvValue)(it.provider) === "prisma-client-js") ||
17
+ options.otherGenerators.find(it => (0, internals_1.parseEnvValue)(it.provider) === "prisma-client");
18
+ const prismaClientPath = (0, internals_1.parseEnvValue)(prismaClientProvider.output);
19
+ const prismaClientDmmf = await (0, internals_1.getDMMF)({
20
+ datamodel: options.datamodel,
21
+ previewFeatures: prismaClientProvider.previewFeatures,
22
+ });
23
+ const generatorConfig = options.generator.config;
24
+ // TODO: make this type `?-` and `| undefined`
25
+ const externalConfig = {
26
+ emitDMMF: (0, helpers_1.parseStringBoolean)(generatorConfig.emitDMMF),
27
+ emitTranspiledCode: (0, helpers_1.parseStringBoolean)(generatorConfig.emitTranspiledCode),
28
+ simpleResolvers: (0, helpers_1.parseStringBoolean)(generatorConfig.simpleResolvers),
29
+ useOriginalMapping: (0, helpers_1.parseStringBoolean)(generatorConfig.useOriginalMapping),
30
+ useUncheckedScalarInputs: (0, helpers_1.parseStringBoolean)(generatorConfig.useUncheckedScalarInputs),
31
+ emitIdAsIDType: (0, helpers_1.parseStringBoolean)(generatorConfig.emitIdAsIDType),
32
+ emitOnly: (0, helpers_1.parseStringArray)(generatorConfig.emitOnly, "emitOnly", emit_block_1.ALL_EMIT_BLOCK_KINDS),
33
+ useSimpleInputs: (0, helpers_1.parseStringBoolean)(generatorConfig.useSimpleInputs),
34
+ emitRedundantTypesInfo: (0, helpers_1.parseStringBoolean)(generatorConfig.emitRedundantTypesInfo),
35
+ customPrismaImportPath: (0, helpers_1.parseString)(generatorConfig.customPrismaImportPath, "customPrismaImportPath"),
36
+ customPrismaImportPathIgnoreLevels: (0, helpers_1.parseStringBoolean)(generatorConfig.customPrismaImportPathIgnoreLevels),
37
+ useDataloaderForResolveFields: (0, helpers_1.parseStringBoolean)(generatorConfig.useDataloaderForResolveFields) ??
38
+ false,
39
+ useDataloaderForAllResolveFields: (0, helpers_1.parseStringBoolean)(generatorConfig.useDataloaderForAllResolveFields) ??
40
+ false,
41
+ useDataloaderMaxBatchSize: generatorConfig.useDataloaderForResolveFields === undefined ||
42
+ isNaN(+generatorConfig.useDataloaderForResolveFields)
43
+ ? undefined
44
+ : +generatorConfig.useDataloaderForResolveFields,
45
+ useDataloaderBatchScheduleFnDelay: generatorConfig.useDataloaderForResolveFields === undefined ||
46
+ isNaN(+generatorConfig.useDataloaderForResolveFields)
47
+ ? 100
48
+ : +generatorConfig.useDataloaderForResolveFields,
49
+ useDataloaderCache: (0, helpers_1.parseStringBoolean)(generatorConfig.useDataloaderCache) ?? false,
50
+ contextPrismaKey: (0, helpers_1.parseString)(generatorConfig.contextPrismaKey, "contextPrismaKey"),
51
+ omitInputFieldsByDefault: (0, helpers_1.parseStringArray)(generatorConfig.omitInputFieldsByDefault, "omitInputFieldsByDefault"),
52
+ omitOutputFieldsByDefault: (0, helpers_1.parseStringArray)(generatorConfig.omitOutputFieldsByDefault, "omitOutputFieldsByDefault"),
53
+ formatGeneratedCode: (0, helpers_1.parseStringBoolean)(generatorConfig.formatGeneratedCode) ??
54
+ (0, helpers_1.parseStringEnum)(generatorConfig.formatGeneratedCode, "formatGeneratedCode", ["prettier", "tsc"]),
55
+ emitIsAbstract: (0, helpers_1.parseStringBoolean)(generatorConfig.emitIsAbstract) ?? false,
56
+ objectTypePrefix: (0, helpers_1.parseString)(generatorConfig.objectTypePrefix, "objectTypePrefix"),
57
+ inputTypePrefix: (0, helpers_1.parseString)(generatorConfig.objectTypePrefix, "inputTypePrefix"),
58
+ enumTypePrefix: (0, helpers_1.parseString)(generatorConfig.enumTypePrefix, "enumTypePrefix"),
59
+ emitActions: (0, helpers_1.parseStringArray)(generatorConfig.emitActions, "emitActions"),
60
+ emitPropertyMethods: (0, helpers_1.parseStringArray)(generatorConfig.emitPropertyMethods, "emitPropertyMethods"),
61
+ };
62
+ const internalConfig = {
63
+ outputDirPath: outputDir,
64
+ prismaClientPath,
65
+ };
66
+ if (externalConfig.emitDMMF) {
67
+ await Promise.all([
68
+ fs_1.promises.writeFile(path_1.default.resolve(outputDir, "./dmmf.json"), JSON.stringify(options.dmmf, null, 2)),
69
+ fs_1.promises.writeFile(path_1.default.resolve(outputDir, "./prisma-client-dmmf.json"), JSON.stringify(prismaClientDmmf, null, 2)),
70
+ ]);
71
+ }
72
+ // TODO: replace with `options.dmmf` when the spec match prisma client output
73
+ await (0, generate_code_1.default)(prismaClientDmmf, {
74
+ ...externalConfig,
75
+ ...internalConfig,
76
+ });
77
+ return "";
78
+ }
79
+ //# sourceMappingURL=prisma-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prisma-generator.js","sourceRoot":"","sources":["../../src/cli/prisma-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Project } from "ts-morph";
2
+ import { DmmfDocument } from "./dmmf/dmmf-document";
3
+ import { DMMF } from "./dmmf/types";
4
+ export default function generateArgsTypeClassFromArgs(project: Project, generateDirPath: string, fields: readonly DMMF.SchemaArg[], argsTypeName: string, dmmfDocument: DmmfDocument, inputImportsLevel?: number): void;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = generateArgsTypeClassFromArgs;
4
+ const tslib_1 = require("tslib");
5
+ const ts_morph_1 = require("ts-morph");
6
+ const path_1 = tslib_1.__importDefault(require("path"));
7
+ const config_1 = require("./config");
8
+ const imports_1 = require("./imports");
9
+ function generateArgsTypeClassFromArgs(project, generateDirPath, fields, argsTypeName, dmmfDocument, inputImportsLevel = 3) {
10
+ const dirPath = path_1.default.resolve(generateDirPath, config_1.argsFolderName);
11
+ const filePath = path_1.default.resolve(dirPath, `${argsTypeName}.ts`);
12
+ const sourceFile = project.createSourceFile(filePath, undefined, {
13
+ overwrite: true,
14
+ });
15
+ (0, imports_1.generateTypeGraphQLImport)(sourceFile);
16
+ (0, imports_1.generateGraphQLScalarsImport)(sourceFile);
17
+ (0, imports_1.generateInputsImports)(sourceFile, fields
18
+ .map(arg => arg.selectedInputType)
19
+ .filter(argInputType => argInputType.location === "inputObjectTypes")
20
+ .map(argInputType => argInputType.type), inputImportsLevel);
21
+ (0, imports_1.generateEnumsImports)(sourceFile, fields
22
+ .map(field => field.selectedInputType)
23
+ .filter(argType => argType.location === "enumTypes")
24
+ .map(argType => argType.type), 4);
25
+ sourceFile.addClass({
26
+ name: argsTypeName,
27
+ isExported: true,
28
+ decorators: [
29
+ {
30
+ name: "ArgsType",
31
+ arguments: [],
32
+ },
33
+ ],
34
+ properties: fields.map(arg => {
35
+ return {
36
+ name: arg.typeName,
37
+ type: arg.fieldTSType,
38
+ hasExclamationToken: arg.isRequired,
39
+ hasQuestionToken: !arg.isRequired,
40
+ trailingTrivia: "\r\n",
41
+ decorators: [
42
+ {
43
+ name: "Field",
44
+ arguments: [
45
+ `_type => ${arg.typeGraphQLType}`,
46
+ ts_morph_1.Writers.object({
47
+ nullable: `${!arg.isRequired}`,
48
+ }),
49
+ ],
50
+ },
51
+ ],
52
+ };
53
+ }),
54
+ });
55
+ }
56
+ //# sourceMappingURL=args-class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"args-class.js","sourceRoot":"","sources":["../../src/generator/args-class.ts"],"names":[],"mappings":";;AAkBA,gDA+DC;;AAjFD,uCAKkB;AAClB,wDAAwB;AAExB,qCAA0C;AAC1C,uCAKmB;AAInB,SAAwB,6BAA6B,CACnD,OAAgB,EAChB,eAAuB,EACvB,MAAiC,EACjC,YAAoB,EACpB,YAA0B,EAC1B,iBAAiB,GAAG,CAAC;IAErB,MAAM,OAAO,GAAG,cAAI,CAAC,OAAO,CAAC,eAAe,EAAE,uBAAc,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,EAAE;QAC/D,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,IAAA,mCAAyB,EAAC,UAAU,CAAC,CAAC;IACtC,IAAA,sCAA4B,EAAC,UAAU,CAAC,CAAC;IACzC,IAAA,+BAAqB,EACnB,UAAU,EACV,MAAM;SACH,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC;SACjC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,KAAK,kBAAkB,CAAC;SACpE,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EACzC,iBAAiB,CAClB,CAAC;IACF,IAAA,8BAAoB,EAClB,UAAU,EACV,MAAM;SACH,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC;SACrC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,WAAW,CAAC;SACnD,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAc,CAAC,EACzC,CAAC,CACF,CAAC;IAEF,UAAU,CAAC,QAAQ,CAAC;QAClB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE;YACV;gBACE,IAAI,EAAE,UAAU;gBAChB,SAAS,EAAE,EAAE;aACd;SACF;QACD,UAAU,EAAE,MAAM,CAAC,GAAG,CAA6C,GAAG,CAAC,EAAE;YACvE,OAAO;gBACL,IAAI,EAAE,GAAG,CAAC,QAAQ;gBAClB,IAAI,EAAE,GAAG,CAAC,WAAW;gBACrB,mBAAmB,EAAE,GAAG,CAAC,UAAU;gBACnC,gBAAgB,EAAE,CAAC,GAAG,CAAC,UAAU;gBACjC,cAAc,EAAE,MAAM;gBACtB,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,OAAO;wBACb,SAAS,EAAE;4BACT,YAAY,GAAG,CAAC,eAAe,EAAE;4BACjC,kBAAO,CAAC,MAAM,CAAC;gCACb,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE;6BAC/B,CAAC;yBACH;qBACF;iBACF;aACF,CAAC;QACJ,CAAC,CAAC;KACH,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { DMMF } from "./dmmf/types";
2
+ export type BaseKeys = keyof Pick<DMMF.ModelMapping, "modelName">;
3
+ export declare const baseKeys: BaseKeys[];
4
+ export type ModelKeys = keyof Exclude<DMMF.ModelMapping, BaseKeys>;
5
+ export declare const supportedQueryActions: ("findUnique" | "findUniqueOrThrow" | "findFirst" | "findFirstOrThrow" | "findMany" | "groupBy" | "aggregate")[];
6
+ export type SupportedQueries = (typeof supportedQueryActions)[number];
7
+ export declare const supportedMutationActions: ("createOne" | "createMany" | "createManyAndReturn" | "updateOne" | "updateMany" | "upsertOne" | "deleteOne" | "deleteMany")[];
8
+ export type SupportedMutations = (typeof supportedMutationActions)[number];
9
+ export declare const modelsFolderName = "models";
10
+ export declare const enumsFolderName = "enums";
11
+ export declare const inputsFolderName = "inputs";
12
+ export declare const outputsFolderName = "outputs";
13
+ export declare const resolversFolderName = "resolvers";
14
+ export declare const argsFolderName = "args";
15
+ export declare const relationsResolversFolderName = "relations";
16
+ export declare const crudResolversFolderName = "crud";
17
+ export declare enum InputOmitSetting {
18
+ Create = "create",
19
+ Update = "update",
20
+ Where = "where",
21
+ OrderBy = "orderBy"
22
+ }
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InputOmitSetting = exports.crudResolversFolderName = exports.relationsResolversFolderName = exports.argsFolderName = exports.resolversFolderName = exports.outputsFolderName = exports.inputsFolderName = exports.enumsFolderName = exports.modelsFolderName = exports.supportedMutationActions = exports.supportedQueryActions = exports.baseKeys = void 0;
4
+ exports.baseKeys = ["modelName"];
5
+ exports.supportedQueryActions = [
6
+ "findUnique",
7
+ "findUniqueOrThrow",
8
+ "findFirst",
9
+ "findFirstOrThrow",
10
+ "findMany",
11
+ "aggregate",
12
+ "groupBy",
13
+ ];
14
+ exports.supportedMutationActions = [
15
+ "createOne",
16
+ "createMany",
17
+ "createManyAndReturn",
18
+ "deleteOne",
19
+ "updateOne",
20
+ "deleteMany",
21
+ "updateMany",
22
+ "upsertOne",
23
+ ];
24
+ exports.modelsFolderName = "models";
25
+ exports.enumsFolderName = "enums";
26
+ exports.inputsFolderName = "inputs";
27
+ exports.outputsFolderName = "outputs";
28
+ exports.resolversFolderName = "resolvers";
29
+ exports.argsFolderName = "args";
30
+ exports.relationsResolversFolderName = "relations";
31
+ exports.crudResolversFolderName = "crud";
32
+ var InputOmitSetting;
33
+ (function (InputOmitSetting) {
34
+ InputOmitSetting["Create"] = "create";
35
+ InputOmitSetting["Update"] = "update";
36
+ InputOmitSetting["Where"] = "where";
37
+ InputOmitSetting["OrderBy"] = "orderBy";
38
+ })(InputOmitSetting || (exports.InputOmitSetting = InputOmitSetting = {}));
39
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/generator/config.ts"],"names":[],"mappings":";;;AAKa,QAAA,QAAQ,GAAe,CAAC,WAAW,CAAC,CAAC;AAIrC,QAAA,qBAAqB,GAAG;IACnC,YAAY;IACZ,mBAAmB;IACnB,WAAW;IACX,kBAAkB;IAClB,UAAU;IACV,WAAW;IACX,SAAS;CACkC,CAAC;AAGjC,QAAA,wBAAwB,GAAG;IACtC,WAAW;IACX,YAAY;IACZ,qBAAqB;IACrB,WAAW;IACX,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,WAAW;CACgC,CAAC;AAGjC,QAAA,gBAAgB,GAAG,QAAQ,CAAC;AAC5B,QAAA,eAAe,GAAG,OAAO,CAAC;AAC1B,QAAA,gBAAgB,GAAG,QAAQ,CAAC;AAC5B,QAAA,iBAAiB,GAAG,SAAS,CAAC;AAC9B,QAAA,mBAAmB,GAAG,WAAW,CAAC;AAClC,QAAA,cAAc,GAAG,MAAM,CAAC;AACxB,QAAA,4BAA4B,GAAG,WAAW,CAAC;AAC3C,QAAA,uBAAuB,GAAG,MAAM,CAAC;AAE9C,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,qCAAiB,CAAA;IACjB,qCAAiB,CAAA;IACjB,mCAAe,CAAA;IACf,uCAAmB,CAAA;AACrB,CAAC,EALW,gBAAgB,gCAAhB,gBAAgB,QAK3B"}
@@ -0,0 +1,19 @@
1
+ import type { DMMF as PrismaDMMF } from "@prisma/generator-helper";
2
+ import { DMMF } from "./types";
3
+ import { GeneratorOptions } from "../options";
4
+ import { EmitBlockKind } from "../emit-block";
5
+ export declare class DmmfDocument implements DMMF.Document {
6
+ options: GeneratorOptions;
7
+ private models;
8
+ datamodel: DMMF.Datamodel;
9
+ schema: DMMF.Schema;
10
+ enums: DMMF.Enum[];
11
+ modelMappings: DMMF.ModelMapping[];
12
+ relationModels: DMMF.RelationModel[];
13
+ constructor({ datamodel, schema, mappings }: PrismaDMMF.Document, options: GeneratorOptions);
14
+ getModelTypeName(modelName: string): string | undefined;
15
+ isModelName(typeName: string): boolean;
16
+ isModelTypeName(typeName: string): boolean;
17
+ getModelFieldAlias(modelName: string, fieldName: string): string | undefined;
18
+ shouldGenerateBlock(block: EmitBlockKind): boolean;
19
+ }
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DmmfDocument = void 0;
4
+ const transform_1 = require("./transform");
5
+ class DmmfDocument {
6
+ constructor({ datamodel, schema, mappings }, options) {
7
+ this.options = options;
8
+ const enumTypes = [
9
+ ...(schema.enumTypes.prisma ?? []),
10
+ ...(schema.enumTypes.model ?? []),
11
+ ];
12
+ const models = [...datamodel.models, ...datamodel.types];
13
+ // transform bare model without fields
14
+ this.models = models.map(transform_1.transformBareModel);
15
+ // transform enums before model fields to map enum types to enum values string union
16
+ this.enums = enumTypes.map((0, transform_1.transformEnums)(this));
17
+ // then transform once again to map the fields (it requires mapped model type names)
18
+ this.models = models.map((0, transform_1.transformModelWithFields)(this));
19
+ // transform enums again to map renamed fields
20
+ this.enums = enumTypes.map((0, transform_1.transformEnums)(this));
21
+ this.datamodel = {
22
+ models: this.models,
23
+ enums: datamodel.enums.map((0, transform_1.transformEnums)(this)),
24
+ types: [], // TODO: parse `datamodel.types`
25
+ };
26
+ this.schema = {
27
+ ...(0, transform_1.transformSchema)(schema, this),
28
+ enums: this.enums,
29
+ };
30
+ this.modelMappings = (0, transform_1.transformMappings)(mappings.modelOperations, this, options);
31
+ this.relationModels = this.models
32
+ .filter(model => model.fields.some(field => field.relationName !== undefined && !field.isOmitted.output))
33
+ .filter(model => {
34
+ const outputType = this.schema.outputTypes.find(type => type.name === model.name);
35
+ return (outputType &&
36
+ outputType.fields.some(outputTypeField => model.fields.some(modelField => modelField.name === outputTypeField.name &&
37
+ modelField.relationName !== undefined &&
38
+ !modelField.isOmitted.output)));
39
+ })
40
+ .map((0, transform_1.generateRelationModel)(this));
41
+ }
42
+ getModelTypeName(modelName) {
43
+ return this.models.find(it => it.name.toLocaleLowerCase() === modelName.toLocaleLowerCase())?.typeName;
44
+ }
45
+ isModelName(typeName) {
46
+ return this.models.some(it => it.name === typeName);
47
+ }
48
+ isModelTypeName(typeName) {
49
+ return this.models.some(it => it.typeName === typeName);
50
+ }
51
+ getModelFieldAlias(modelName, fieldName) {
52
+ const model = this.models.find(it => it.name === modelName);
53
+ return model?.fields.find(it => it.name === fieldName)?.typeFieldAlias;
54
+ }
55
+ shouldGenerateBlock(block) {
56
+ return this.options.blocksToEmit.includes(block);
57
+ }
58
+ }
59
+ exports.DmmfDocument = DmmfDocument;
60
+ //# sourceMappingURL=dmmf-document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dmmf-document.js","sourceRoot":"","sources":["../../../src/generator/dmmf/dmmf-document.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare const modelAttributeRegex: RegExp;
2
+ export declare const fieldAttributeRegex: RegExp;
3
+ export declare const attributeNameRegex: RegExp;
4
+ export declare const attributeArgsRegex: RegExp;
5
+ export declare function parseDocumentationAttributes<TData extends object = object>(documentation: string | undefined, expectedAttributeName: string, expectedAttributeKind: "model" | "field"): Partial<TData>;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.attributeArgsRegex = exports.attributeNameRegex = exports.fieldAttributeRegex = exports.modelAttributeRegex = void 0;
4
+ exports.parseDocumentationAttributes = parseDocumentationAttributes;
5
+ exports.modelAttributeRegex = /(@@TypeGraphQL\.)+([A-z])+(\()+(.+)+(\))+/g;
6
+ exports.fieldAttributeRegex = /(@TypeGraphQL\.)+([A-z])+(\()+(.+)+(\))+/g;
7
+ exports.attributeNameRegex = /(?:\.)+([A-Za-z])+(?:\()+/;
8
+ exports.attributeArgsRegex = /(?:\()+([A-Za-z])+\:+(.+)+(?:\))+/;
9
+ function parseDocumentationAttributes(documentation, expectedAttributeName, expectedAttributeKind) {
10
+ const attributeRegex = expectedAttributeKind === "model"
11
+ ? exports.modelAttributeRegex
12
+ : exports.fieldAttributeRegex;
13
+ const matchResults = documentation?.matchAll(attributeRegex) ?? [];
14
+ for (const [attribute] of matchResults) {
15
+ const attributeName = attribute
16
+ ?.match(exports.attributeNameRegex)?.[0]
17
+ ?.slice(1, -1);
18
+ if (attributeName !== expectedAttributeName) {
19
+ continue;
20
+ }
21
+ const rawAttributeArgs = attribute
22
+ ?.match(exports.attributeArgsRegex)?.[0]
23
+ ?.slice(1, -1);
24
+ const parsedAttributeArgs = {};
25
+ if (rawAttributeArgs) {
26
+ const rawAttributeArgsParts = rawAttributeArgs
27
+ .split(":")
28
+ .map(it => it.trim())
29
+ .map(part => (part.startsWith("[") ? part : part.split(",")))
30
+ .flat()
31
+ .map(it => it.trim());
32
+ for (let i = 0; i < rawAttributeArgsParts.length; i += 2) {
33
+ const key = rawAttributeArgsParts[i];
34
+ const value = rawAttributeArgsParts[i + 1];
35
+ parsedAttributeArgs[key] = JSON.parse(value);
36
+ }
37
+ }
38
+ return parsedAttributeArgs;
39
+ }
40
+ return {};
41
+ }
42
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/generator/dmmf/helpers.ts"],"names":[],"mappings":";;;AAKA,oEAwCC;AA7CY,QAAA,mBAAmB,GAAG,4CAA4C,CAAC;AACnE,QAAA,mBAAmB,GAAG,2CAA2C,CAAC;AAClE,QAAA,kBAAkB,GAAG,2BAA2B,CAAC;AACjD,QAAA,kBAAkB,GAAG,mCAAmC,CAAC;AAEtE,SAAgB,4BAA4B,CAC1C,aAAiC,EACjC,qBAA6B,EAC7B,qBAAwC;IAExC,MAAM,cAAc,GAClB,qBAAqB,KAAK,OAAO;QAC/B,CAAC,CAAC,2BAAmB;QACrB,CAAC,CAAC,2BAAmB,CAAC;IAC1B,MAAM,YAAY,GAAG,aAAa,EAAE,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAEnE,KAAK,MAAM,CAAC,SAAS,CAAC,IAAI,YAAY,EAAE,CAAC;QACvC,MAAM,aAAa,GAAG,SAAS;YAC7B,EAAE,KAAK,CAAC,0BAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;YAChC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,aAAa,KAAK,qBAAqB,EAAE,CAAC;YAC5C,SAAS;QACX,CAAC;QACD,MAAM,gBAAgB,GAAG,SAAS;YAChC,EAAE,KAAK,CAAC,0BAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;YAChC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,mBAAmB,GAA4B,EAAE,CAAC;QACxD,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,qBAAqB,GAAG,gBAAgB;iBAC3C,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;iBACpB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;iBAC5D,IAAI,EAAE;iBACN,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,qBAAqB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzD,MAAM,GAAG,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBACrC,MAAM,KAAK,GAAG,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3C,mBAAmB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QACD,OAAO,mBAAqC,CAAC;IAC/C,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { DMMF } from "./types";
2
+ import { DmmfDocument } from "./dmmf-document";
3
+ import { GeneratorOptions } from "../options";
4
+ import type { DMMF as PrismaDMMF } from "@prisma/generator-helper";
5
+ export declare function transformSchema(datamodel: PrismaDMMF.Schema, dmmfDocument: DmmfDocument): Omit<DMMF.Schema, "enums">;
6
+ export declare function transformMappings(mapping: readonly PrismaDMMF.ModelMapping[], dmmfDocument: DmmfDocument, options: GeneratorOptions): DMMF.ModelMapping[];
7
+ export declare function transformBareModel(model: PrismaDMMF.Model): DMMF.Model;
8
+ export declare function transformModelWithFields(dmmfDocument: DmmfDocument): (model: PrismaDMMF.Model) => DMMF.Model;
9
+ export declare function getMappedOutputTypeName(dmmfDocument: DmmfDocument, outputTypeName: string): string;
10
+ export declare function transformEnums(dmmfDocument: DmmfDocument): (enumDef: PrismaDMMF.DatamodelEnum | PrismaDMMF.DatamodelSchemaEnum) => DMMF.Enum;
11
+ export declare function generateRelationModel(dmmfDocument: DmmfDocument): (model: DMMF.Model) => DMMF.RelationModel;