@k0lyan/typegraphql-prisma-nestjs 0.28.20 → 0.28.21

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 +1 -1
@@ -0,0 +1,14 @@
1
+ import { DmmfDocument } from "./dmmf/dmmf-document";
2
+ import { DMMF } from "./dmmf/types";
3
+ export declare function noop(): void;
4
+ export declare function getFieldTSType(dmmfDocument: DmmfDocument, typeInfo: DMMF.TypeInfo, isRequired: boolean, isInputType: boolean, modelName?: string, typeName?: string): string;
5
+ export declare function mapScalarToTSType(scalar: string, isInputType: boolean): "boolean" | "string" | "number" | "Date" | "Prisma.InputJsonValue" | "Prisma.JsonValue" | "bigint" | "Prisma.Decimal" | "Buffer";
6
+ export declare function getTypeGraphQLType(typeInfo: DMMF.TypeInfo, dmmfDocument: DmmfDocument, modelName?: string, typeName?: string, isIdField?: boolean): string;
7
+ export declare function mapScalarToTypeGraphQLType(scalar: string, emitIdAsIDType: boolean | undefined, isIdField?: boolean): string;
8
+ export declare function camelCase(str: string): string;
9
+ export declare function pascalCase(str: string): string;
10
+ export declare function getModelNameFromInputType(inputTypeName: string): string | undefined;
11
+ export declare function getInputTypeName(originalInputName: string, dmmfDocument: DmmfDocument): string;
12
+ export declare function cleanDocsString(documentation: string | undefined): string | undefined;
13
+ export declare function convertNewLines(str: string): string;
14
+ export declare function toUnixPath(maybeWindowsPath: string): string;
@@ -0,0 +1,226 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.noop = noop;
4
+ exports.getFieldTSType = getFieldTSType;
5
+ exports.mapScalarToTSType = mapScalarToTSType;
6
+ exports.getTypeGraphQLType = getTypeGraphQLType;
7
+ exports.mapScalarToTypeGraphQLType = mapScalarToTypeGraphQLType;
8
+ exports.camelCase = camelCase;
9
+ exports.pascalCase = pascalCase;
10
+ exports.getModelNameFromInputType = getModelNameFromInputType;
11
+ exports.getInputTypeName = getInputTypeName;
12
+ exports.cleanDocsString = cleanDocsString;
13
+ exports.convertNewLines = convertNewLines;
14
+ exports.toUnixPath = toUnixPath;
15
+ const helpers_1 = require("./dmmf/helpers");
16
+ var PrismaScalars;
17
+ (function (PrismaScalars) {
18
+ PrismaScalars["String"] = "String";
19
+ PrismaScalars["Boolean"] = "Boolean";
20
+ PrismaScalars["Int"] = "Int";
21
+ PrismaScalars["Float"] = "Float";
22
+ PrismaScalars["DateTime"] = "DateTime";
23
+ PrismaScalars["Json"] = "Json";
24
+ PrismaScalars["BigInt"] = "BigInt";
25
+ PrismaScalars["Decimal"] = "Decimal";
26
+ PrismaScalars["Bytes"] = "Bytes";
27
+ })(PrismaScalars || (PrismaScalars = {}));
28
+ function noop() { }
29
+ function getFieldTSType(dmmfDocument, typeInfo, isRequired, isInputType, modelName, typeName) {
30
+ let TSType = typeInfo.type;
31
+ if (typeInfo.location === "scalar") {
32
+ TSType = mapScalarToTSType(typeInfo.type, isInputType);
33
+ }
34
+ else if (typeInfo.location === "inputObjectTypes" ||
35
+ typeInfo.location === "outputObjectTypes") {
36
+ if (!dmmfDocument.isModelName(typeInfo.type) && (!typeName || !modelName)) {
37
+ TSType = getInputTypeName(typeInfo.type, dmmfDocument);
38
+ }
39
+ }
40
+ else if (typeInfo.location === "enumTypes") {
41
+ const enumDef = dmmfDocument.enums.find(it => it.typeName == typeInfo.type);
42
+ TSType = enumDef.valuesMap.map(({ value }) => `"${value}"`).join(" | ");
43
+ }
44
+ else {
45
+ throw new Error(`Unsupported field type location: ${typeInfo.location}`);
46
+ }
47
+ if (typeInfo.isList) {
48
+ if (TSType.includes(" ")) {
49
+ TSType = `Array<${TSType}>`;
50
+ }
51
+ else {
52
+ TSType += "[]";
53
+ }
54
+ }
55
+ if (!isRequired) {
56
+ if (isInputType) {
57
+ TSType += " | undefined";
58
+ }
59
+ else {
60
+ TSType += " | null";
61
+ }
62
+ }
63
+ return TSType;
64
+ }
65
+ function mapScalarToTSType(scalar, isInputType) {
66
+ switch (scalar) {
67
+ case PrismaScalars.String: {
68
+ return "string";
69
+ }
70
+ case PrismaScalars.Boolean: {
71
+ return "boolean";
72
+ }
73
+ case PrismaScalars.Int:
74
+ case PrismaScalars.Float: {
75
+ return "number";
76
+ }
77
+ case PrismaScalars.DateTime: {
78
+ return "Date";
79
+ }
80
+ case PrismaScalars.Json:
81
+ return isInputType ? "Prisma.InputJsonValue" : "Prisma.JsonValue";
82
+ case PrismaScalars.BigInt: {
83
+ return "bigint";
84
+ }
85
+ case PrismaScalars.Decimal: {
86
+ return "Prisma.Decimal";
87
+ }
88
+ case PrismaScalars.Bytes: {
89
+ return "Buffer";
90
+ }
91
+ default:
92
+ throw new Error(`Unrecognized scalar type: ${scalar}`);
93
+ }
94
+ }
95
+ function getTypeGraphQLType(typeInfo, dmmfDocument, modelName, typeName, isIdField) {
96
+ let GraphQLType = typeInfo.type;
97
+ if (typeInfo.location === "scalar") {
98
+ GraphQLType = mapScalarToTypeGraphQLType(typeInfo.type, dmmfDocument.options.emitIdAsIDType, isIdField);
99
+ }
100
+ else if ((typeInfo.location === "inputObjectTypes" ||
101
+ typeInfo.location === "outputObjectTypes") &&
102
+ (!typeName || !modelName) &&
103
+ !dmmfDocument.isModelName(typeInfo.type)) {
104
+ GraphQLType = getInputTypeName(typeInfo.type, dmmfDocument);
105
+ }
106
+ if (typeInfo.isList) {
107
+ GraphQLType = `[${GraphQLType}]`;
108
+ }
109
+ return GraphQLType;
110
+ }
111
+ function mapScalarToTypeGraphQLType(scalar, emitIdAsIDType, isIdField) {
112
+ if (emitIdAsIDType && isIdField) {
113
+ return `ID`;
114
+ }
115
+ switch (scalar) {
116
+ case PrismaScalars.String:
117
+ case PrismaScalars.Boolean: {
118
+ return scalar;
119
+ }
120
+ case PrismaScalars.Int:
121
+ case PrismaScalars.Float: {
122
+ return `${scalar}`;
123
+ }
124
+ case PrismaScalars.DateTime: {
125
+ return "Date";
126
+ }
127
+ case PrismaScalars.Json: {
128
+ return `GraphQLScalars.JSONResolver`;
129
+ }
130
+ case PrismaScalars.BigInt: {
131
+ return "GraphQLScalars.BigIntResolver";
132
+ }
133
+ case PrismaScalars.Decimal: {
134
+ return "DecimalJSScalar";
135
+ }
136
+ case PrismaScalars.Bytes: {
137
+ return "GraphQLScalars.ByteResolver";
138
+ }
139
+ default: {
140
+ throw new Error(`Unrecognized scalar type: ${scalar}`);
141
+ }
142
+ }
143
+ }
144
+ function camelCase(str) {
145
+ return str[0].toLowerCase() + str.slice(1);
146
+ }
147
+ function pascalCase(str) {
148
+ return str[0].toUpperCase() + str.slice(1);
149
+ }
150
+ function getInputKeywordPhrasePosition(inputTypeName) {
151
+ const inputParseResult = [
152
+ "Unchecked",
153
+ "Create",
154
+ "CountOrderBy",
155
+ "AvgOrderBy",
156
+ "MaxOrderBy",
157
+ "MinOrderBy",
158
+ "SumOrderBy",
159
+ "OrderBy",
160
+ "Update",
161
+ "Upsert",
162
+ "ScalarWhere",
163
+ "Where",
164
+ "ListRelationFilter",
165
+ "RelationFilter",
166
+ "Filter",
167
+ ]
168
+ .map(inputKeyword => inputTypeName.search(inputKeyword))
169
+ .filter(position => position >= 0);
170
+ if (inputParseResult.length === 0) {
171
+ return;
172
+ }
173
+ const keywordPhrasePosition = inputParseResult[0];
174
+ return keywordPhrasePosition;
175
+ }
176
+ function getModelNameFromInputType(inputTypeName) {
177
+ const keywordPhrasePosition = getInputKeywordPhrasePosition(inputTypeName);
178
+ if (!keywordPhrasePosition) {
179
+ return;
180
+ }
181
+ const modelName = inputTypeName.slice(0, keywordPhrasePosition);
182
+ return modelName;
183
+ }
184
+ function getInputTypeName(originalInputName, dmmfDocument) {
185
+ const keywordPhrasePosition = getInputKeywordPhrasePosition(originalInputName);
186
+ if (!keywordPhrasePosition) {
187
+ return originalInputName;
188
+ }
189
+ const modelName = originalInputName.slice(0, keywordPhrasePosition);
190
+ const typeNameRest = originalInputName.slice(keywordPhrasePosition);
191
+ const modelTypeName = dmmfDocument.getModelTypeName(modelName);
192
+ if (!modelTypeName) {
193
+ return originalInputName;
194
+ }
195
+ return `${modelTypeName}${typeNameRest}`;
196
+ }
197
+ function cleanDocsString(documentation) {
198
+ if (!documentation) {
199
+ return;
200
+ }
201
+ let cleanedDocs = documentation;
202
+ cleanedDocs = cleanedDocs.replace(helpers_1.modelAttributeRegex, "");
203
+ cleanedDocs = cleanedDocs.replace(helpers_1.fieldAttributeRegex, "");
204
+ cleanedDocs = cleanedDocs.split('"').join('\\"');
205
+ cleanedDocs = cleanedDocs.split("\n").join("\\n");
206
+ if (cleanedDocs.endsWith("\r")) {
207
+ cleanedDocs = cleanedDocs.slice(0, -1);
208
+ }
209
+ if (cleanedDocs.endsWith("\\r")) {
210
+ cleanedDocs = cleanedDocs.slice(0, -2);
211
+ }
212
+ if (cleanedDocs.endsWith("\n")) {
213
+ cleanedDocs = cleanedDocs.slice(0, -1);
214
+ }
215
+ if (cleanedDocs.endsWith("\\n")) {
216
+ cleanedDocs = cleanedDocs.slice(0, -2);
217
+ }
218
+ return cleanedDocs;
219
+ }
220
+ function convertNewLines(str) {
221
+ return str.split("\\n").join("\n");
222
+ }
223
+ function toUnixPath(maybeWindowsPath) {
224
+ return maybeWindowsPath.split("\\").join("/");
225
+ }
226
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/generator/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { SourceFile } from "ts-morph";
2
+ import { GenerateMappingData } from "./types";
3
+ import { GeneratorOptions } from "./options";
4
+ import { EmitBlockKind } from "./emit-block";
5
+ export declare function generateTypeGraphQLImport(sourceFile: SourceFile): void;
6
+ export declare function generateGraphQLFieldsImport(sourceFile: SourceFile): void;
7
+ export declare function generateGraphQLInfoImport(sourceFile: SourceFile): void;
8
+ export declare function generateGraphQLScalarsImport(sourceFile: SourceFile): void;
9
+ export declare function generateGraphQLScalarTypeImport(sourceFile: SourceFile): void;
10
+ export declare function generateCustomScalarsImport(sourceFile: SourceFile, level?: number): void;
11
+ export declare function generateHelpersFileImport(sourceFile: SourceFile, level?: number): void;
12
+ export declare function generatePrismaNamespaceImport(sourceFile: SourceFile, options: GeneratorOptions, level?: number): void;
13
+ export declare function generateArgsBarrelFile(sourceFile: SourceFile, argsTypeNames: string[]): void;
14
+ export declare function generateArgsIndexFile(sourceFile: SourceFile, typeNames: string[]): void;
15
+ export declare function generateModelsBarrelFile(sourceFile: SourceFile, modelNames: string[]): void;
16
+ export declare function generateEnumsBarrelFile(sourceFile: SourceFile, enumTypeNames: string[]): void;
17
+ export declare function generateInputsBarrelFile(sourceFile: SourceFile, inputTypeNames: string[]): void;
18
+ export declare function generateOutputsBarrelFile(sourceFile: SourceFile, outputTypeNames: string[], hasSomeArgs: boolean): void;
19
+ export declare function generateIndexFile(sourceFile: SourceFile, hasSomeRelations: boolean, blocksToEmit: EmitBlockKind[]): void;
20
+ export declare function generateResolversBarrelFile(sourceFile: SourceFile, resolversData: GenerateMappingData[]): void;
21
+ export declare function generateResolversActionsBarrelFile(sourceFile: SourceFile, resolversData: GenerateMappingData[]): void;
22
+ export declare function generateResolversIndexFile(sourceFile: SourceFile, type: "crud" | "relations", hasSomeArgs: boolean): void;
23
+ export declare const generateModelsImports: (sourceFile: SourceFile, elementsNames: string[], level?: number) => void;
24
+ export declare const generateEnumsImports: (sourceFile: SourceFile, elementsNames: string[], level?: number) => void;
25
+ export declare const generateInputsImports: (sourceFile: SourceFile, elementsNames: string[], level?: number) => void;
26
+ export declare const generateOutputsImports: (sourceFile: SourceFile, elementsNames: string[], level?: number) => void;
27
+ export declare const generateResolversOutputsImports: (sourceFile: SourceFile, elementsNames: string[], level?: number) => void;
28
+ export declare const generateArgsImports: (sourceFile: SourceFile, elementsNames: string[], level?: number) => void;
@@ -0,0 +1,311 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateArgsImports = exports.generateResolversOutputsImports = exports.generateOutputsImports = exports.generateInputsImports = exports.generateEnumsImports = exports.generateModelsImports = void 0;
4
+ exports.generateTypeGraphQLImport = generateTypeGraphQLImport;
5
+ exports.generateGraphQLFieldsImport = generateGraphQLFieldsImport;
6
+ exports.generateGraphQLInfoImport = generateGraphQLInfoImport;
7
+ exports.generateGraphQLScalarsImport = generateGraphQLScalarsImport;
8
+ exports.generateGraphQLScalarTypeImport = generateGraphQLScalarTypeImport;
9
+ exports.generateCustomScalarsImport = generateCustomScalarsImport;
10
+ exports.generateHelpersFileImport = generateHelpersFileImport;
11
+ exports.generatePrismaNamespaceImport = generatePrismaNamespaceImport;
12
+ exports.generateArgsBarrelFile = generateArgsBarrelFile;
13
+ exports.generateArgsIndexFile = generateArgsIndexFile;
14
+ exports.generateModelsBarrelFile = generateModelsBarrelFile;
15
+ exports.generateEnumsBarrelFile = generateEnumsBarrelFile;
16
+ exports.generateInputsBarrelFile = generateInputsBarrelFile;
17
+ exports.generateOutputsBarrelFile = generateOutputsBarrelFile;
18
+ exports.generateIndexFile = generateIndexFile;
19
+ exports.generateResolversBarrelFile = generateResolversBarrelFile;
20
+ exports.generateResolversActionsBarrelFile = generateResolversActionsBarrelFile;
21
+ exports.generateResolversIndexFile = generateResolversIndexFile;
22
+ const tslib_1 = require("tslib");
23
+ const ts_morph_1 = require("ts-morph");
24
+ const path_1 = tslib_1.__importDefault(require("path"));
25
+ const config_1 = require("./config");
26
+ function generateTypeGraphQLImport(sourceFile) {
27
+ sourceFile.addImportDeclaration({
28
+ moduleSpecifier: "@nestjs/graphql",
29
+ namedImports: [
30
+ "Args",
31
+ "ArgsType",
32
+ "Context",
33
+ "Field",
34
+ "Float",
35
+ "ID",
36
+ "Info",
37
+ "InputType",
38
+ "Int",
39
+ "Mutation",
40
+ "ObjectType",
41
+ "Parent",
42
+ "Query",
43
+ "registerEnumType",
44
+ "ResolveField",
45
+ "Resolver",
46
+ ].sort(),
47
+ });
48
+ }
49
+ function generateGraphQLFieldsImport(sourceFile) {
50
+ sourceFile.addImportDeclaration({
51
+ moduleSpecifier: "graphql-fields",
52
+ defaultImport: "graphqlFields",
53
+ });
54
+ }
55
+ function generateGraphQLInfoImport(sourceFile) {
56
+ sourceFile.addImportDeclaration({
57
+ moduleSpecifier: "graphql",
58
+ isTypeOnly: true,
59
+ namedImports: ["GraphQLResolveInfo"],
60
+ });
61
+ }
62
+ function generateGraphQLScalarsImport(sourceFile) {
63
+ sourceFile.addImportDeclaration({
64
+ moduleSpecifier: "graphql-scalars",
65
+ namespaceImport: "GraphQLScalars",
66
+ });
67
+ }
68
+ function generateGraphQLScalarTypeImport(sourceFile) {
69
+ sourceFile.addImportDeclaration({
70
+ moduleSpecifier: "graphql",
71
+ namedImports: ["GraphQLScalarType"],
72
+ });
73
+ }
74
+ function generateCustomScalarsImport(sourceFile, level = 0) {
75
+ sourceFile.addImportDeclaration({
76
+ moduleSpecifier: (level === 0 ? "./" : "") +
77
+ path_1.default.posix.join(...Array(level).fill(".."), "scalars"),
78
+ namedImports: ["DecimalJSScalar"],
79
+ });
80
+ }
81
+ function generateHelpersFileImport(sourceFile, level = 0) {
82
+ sourceFile.addImportDeclaration({
83
+ moduleSpecifier: (level === 0 ? "./" : "") +
84
+ path_1.default.posix.join(...Array(level).fill(".."), "helpers"),
85
+ namedImports: [
86
+ "transformArgsIntoPrismaArgs",
87
+ "transformInfoIntoPrismaArgs",
88
+ "getPrismaFromContext",
89
+ "transformCountFieldIntoSelectRelationsCount",
90
+ "InlineLoader",
91
+ ],
92
+ });
93
+ }
94
+ function generatePrismaNamespaceImport(sourceFile, options, level = 0) {
95
+ sourceFile.addImportDeclaration({
96
+ moduleSpecifier: options.absolutePrismaOutputPath ??
97
+ (!options.customPrismaImportPathIgnoreLevels && level === 0 ? "./" : "") +
98
+ (options.customPrismaImportPathIgnoreLevels
99
+ ? (options.customPrismaImportPath ?? options.relativePrismaOutputPath)
100
+ : path_1.default.posix.join(...Array(level).fill(".."), options.customPrismaImportPath ??
101
+ options.relativePrismaOutputPath)),
102
+ namedImports: ["Prisma"],
103
+ });
104
+ }
105
+ function generateArgsBarrelFile(sourceFile, argsTypeNames) {
106
+ sourceFile.addExportDeclarations(argsTypeNames
107
+ .sort()
108
+ .map(argTypeName => ({
109
+ moduleSpecifier: `./${argTypeName}`,
110
+ namedExports: [argTypeName],
111
+ })));
112
+ }
113
+ function generateArgsIndexFile(sourceFile, typeNames) {
114
+ sourceFile.addExportDeclarations(typeNames
115
+ .sort()
116
+ .map(typeName => ({
117
+ moduleSpecifier: `./${typeName}/args`,
118
+ })));
119
+ }
120
+ function generateModelsBarrelFile(sourceFile, modelNames) {
121
+ sourceFile.addExportDeclarations(modelNames
122
+ .sort()
123
+ .map(modelName => ({
124
+ moduleSpecifier: `./${modelName}`,
125
+ namedExports: [modelName],
126
+ })));
127
+ }
128
+ function generateEnumsBarrelFile(sourceFile, enumTypeNames) {
129
+ sourceFile.addExportDeclarations(enumTypeNames
130
+ .sort()
131
+ .map(enumTypeName => ({
132
+ moduleSpecifier: `./${enumTypeName}`,
133
+ namedExports: [enumTypeName],
134
+ })));
135
+ }
136
+ function generateInputsBarrelFile(sourceFile, inputTypeNames) {
137
+ // Use export * to re-export all from each file
138
+ // This helps with circular dependency resolution in some cases
139
+ sourceFile.addExportDeclarations(inputTypeNames
140
+ .sort()
141
+ .map(inputTypeName => ({
142
+ moduleSpecifier: `./${inputTypeName}`,
143
+ })));
144
+ }
145
+ function generateOutputsBarrelFile(sourceFile, outputTypeNames, hasSomeArgs) {
146
+ sourceFile.addExportDeclarations(outputTypeNames
147
+ .sort()
148
+ .map(outputTypeName => ({
149
+ moduleSpecifier: `./${outputTypeName}`,
150
+ namedExports: [outputTypeName],
151
+ })));
152
+ if (hasSomeArgs) {
153
+ sourceFile.addExportDeclaration({ moduleSpecifier: `./${config_1.argsFolderName}` });
154
+ }
155
+ }
156
+ function generateIndexFile(sourceFile, hasSomeRelations, blocksToEmit) {
157
+ if (blocksToEmit.includes("enums")) {
158
+ sourceFile.addExportDeclaration({
159
+ moduleSpecifier: `./${config_1.enumsFolderName}`,
160
+ });
161
+ }
162
+ if (blocksToEmit.includes("models")) {
163
+ sourceFile.addExportDeclaration({
164
+ moduleSpecifier: `./${config_1.modelsFolderName}`,
165
+ });
166
+ }
167
+ if (blocksToEmit.includes("crudResolvers")) {
168
+ sourceFile.addExportDeclaration({
169
+ moduleSpecifier: `./${config_1.resolversFolderName}/${config_1.crudResolversFolderName}`,
170
+ });
171
+ sourceFile.addImportDeclaration({
172
+ moduleSpecifier: `./${config_1.resolversFolderName}/${config_1.crudResolversFolderName}/resolvers-crud.index`,
173
+ namespaceImport: "crudResolversImport",
174
+ });
175
+ sourceFile.addVariableStatement({
176
+ isExported: true,
177
+ declarationKind: ts_morph_1.VariableDeclarationKind.Const,
178
+ declarations: [
179
+ {
180
+ name: "crudResolvers",
181
+ initializer: `Object.values(crudResolversImport) as Function[]`,
182
+ },
183
+ ],
184
+ });
185
+ }
186
+ if (hasSomeRelations && blocksToEmit.includes("relationResolvers")) {
187
+ sourceFile.addExportDeclaration({
188
+ moduleSpecifier: `./${config_1.resolversFolderName}/${config_1.relationsResolversFolderName}`,
189
+ });
190
+ sourceFile.addImportDeclaration({
191
+ moduleSpecifier: `./${config_1.resolversFolderName}/${config_1.relationsResolversFolderName}/resolvers.index`,
192
+ namespaceImport: "relationResolversImport",
193
+ });
194
+ sourceFile.addVariableStatement({
195
+ isExported: true,
196
+ declarationKind: ts_morph_1.VariableDeclarationKind.Const,
197
+ declarations: [
198
+ {
199
+ name: "relationResolvers",
200
+ initializer: `Object.values(relationResolversImport) as Function[]`,
201
+ },
202
+ ],
203
+ });
204
+ }
205
+ if (blocksToEmit.includes("inputs")) {
206
+ sourceFile.addExportDeclaration({
207
+ moduleSpecifier: `./${config_1.resolversFolderName}/${config_1.inputsFolderName}`,
208
+ });
209
+ }
210
+ if (blocksToEmit.includes("outputs")) {
211
+ sourceFile.addExportDeclaration({
212
+ moduleSpecifier: `./${config_1.resolversFolderName}/${config_1.outputsFolderName}`,
213
+ });
214
+ }
215
+ sourceFile.addExportDeclarations([
216
+ { moduleSpecifier: `./enhance` },
217
+ { moduleSpecifier: `./scalars` },
218
+ ]);
219
+ if (blocksToEmit.includes("crudResolvers") ||
220
+ (hasSomeRelations && blocksToEmit.includes("relationResolvers")))
221
+ sourceFile.addVariableStatement({
222
+ isExported: true,
223
+ declarationKind: ts_morph_1.VariableDeclarationKind.Const,
224
+ declarations: [
225
+ {
226
+ name: "resolvers",
227
+ initializer: `[
228
+ ${blocksToEmit.includes("crudResolvers") ? "...crudResolvers," : ""}
229
+ ${hasSomeRelations && blocksToEmit.includes("relationResolvers")
230
+ ? "...relationResolvers,"
231
+ : ""}
232
+ ] as Function[]`,
233
+ },
234
+ ],
235
+ });
236
+ }
237
+ function generateResolversBarrelFile(sourceFile, resolversData) {
238
+ resolversData
239
+ .sort((a, b) => a.modelName > b.modelName ? 1 : a.modelName < b.modelName ? -1 : 0)
240
+ .forEach(({ modelName, resolverName }) => {
241
+ sourceFile.addExportDeclaration({
242
+ moduleSpecifier: `./${modelName}/${resolverName}`,
243
+ namedExports: [resolverName],
244
+ });
245
+ });
246
+ }
247
+ function generateResolversActionsBarrelFile(sourceFile, resolversData) {
248
+ resolversData
249
+ .sort((a, b) => a.modelName > b.modelName ? 1 : a.modelName < b.modelName ? -1 : 0)
250
+ .forEach(({ modelName, actionResolverNames }) => {
251
+ if (actionResolverNames) {
252
+ actionResolverNames.forEach(actionResolverName => {
253
+ sourceFile.addExportDeclaration({
254
+ moduleSpecifier: `./${modelName}/${actionResolverName}`,
255
+ namedExports: [actionResolverName],
256
+ });
257
+ });
258
+ }
259
+ });
260
+ }
261
+ function generateResolversIndexFile(sourceFile, type, hasSomeArgs) {
262
+ if (type === "crud") {
263
+ sourceFile.addExportDeclarations([
264
+ { moduleSpecifier: `./resolvers-actions.index` },
265
+ { moduleSpecifier: `./resolvers-crud.index` },
266
+ ]);
267
+ }
268
+ else {
269
+ sourceFile.addExportDeclarations([
270
+ { moduleSpecifier: `./resolvers.index` },
271
+ ]);
272
+ }
273
+ if (hasSomeArgs) {
274
+ sourceFile.addExportDeclarations([{ moduleSpecifier: `./args.index` }]);
275
+ }
276
+ }
277
+ exports.generateModelsImports = createImportGenerator(config_1.modelsFolderName);
278
+ exports.generateEnumsImports = createImportGenerator(config_1.enumsFolderName);
279
+ exports.generateInputsImports = createImportGenerator(config_1.inputsFolderName, true, // Use barrel import for inputs to avoid circular dependency between individual files
280
+ false);
281
+ exports.generateOutputsImports = createImportGenerator(config_1.outputsFolderName);
282
+ // TODO: unify with generateOutputsImports
283
+ exports.generateResolversOutputsImports = createImportGenerator(`${config_1.resolversFolderName}/${config_1.outputsFolderName}`);
284
+ exports.generateArgsImports = createImportGenerator(config_1.argsFolderName);
285
+ function createImportGenerator(elementsDirName, useIndexImport = false, isTypeOnly = false) {
286
+ return (sourceFile, elementsNames, level = 1) => {
287
+ const distinctElementsNames = [...new Set(elementsNames)].sort();
288
+ if (useIndexImport && distinctElementsNames.length > 0) {
289
+ // Import all from the index file to avoid circular dependency issues
290
+ sourceFile.addImportDeclaration({
291
+ moduleSpecifier: (level === 0 ? "./" : "") +
292
+ path_1.default.posix.join(...Array(level).fill(".."), elementsDirName),
293
+ namedImports: distinctElementsNames,
294
+ isTypeOnly,
295
+ });
296
+ }
297
+ else {
298
+ for (const elementName of distinctElementsNames) {
299
+ sourceFile.addImportDeclaration({
300
+ moduleSpecifier: (level === 0 ? "./" : "") +
301
+ path_1.default.posix.join(...Array(level).fill(".."), elementsDirName, elementName),
302
+ // TODO: refactor to default exports
303
+ // defaultImport: elementName,
304
+ namedImports: [elementName],
305
+ isTypeOnly,
306
+ });
307
+ }
308
+ }
309
+ };
310
+ }
311
+ //# sourceMappingURL=imports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imports.js","sourceRoot":"","sources":["../../src/generator/imports.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Project } from "ts-morph";
2
+ import { DMMF } from "./dmmf/types";
3
+ import { DmmfDocument } from "./dmmf/dmmf-document";
4
+ export default function generateObjectTypeClassFromModel(project: Project, baseDirPath: string, model: DMMF.Model, modelOutputType: DMMF.OutputType, dmmfDocument: DmmfDocument): void;