@wokcito/prisma-generator-pothos-codegen 1.0.0

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 (78) hide show
  1. package/README.md +416 -0
  2. package/package.json +76 -0
  3. package/src/bin.d.ts +2 -0
  4. package/src/bin.js +5 -0
  5. package/src/bin.js.map +1 -0
  6. package/src/crudGenerator/index.d.ts +3 -0
  7. package/src/crudGenerator/index.js +96 -0
  8. package/src/crudGenerator/index.js.map +1 -0
  9. package/src/crudGenerator/templates/mutation.d.ts +9 -0
  10. package/src/crudGenerator/templates/mutation.js +59 -0
  11. package/src/crudGenerator/templates/mutation.js.map +1 -0
  12. package/src/crudGenerator/templates/object.d.ts +4 -0
  13. package/src/crudGenerator/templates/object.js +59 -0
  14. package/src/crudGenerator/templates/object.js.map +1 -0
  15. package/src/crudGenerator/templates/query.d.ts +6 -0
  16. package/src/crudGenerator/templates/query.js +37 -0
  17. package/src/crudGenerator/templates/query.js.map +1 -0
  18. package/src/crudGenerator/templates/resolver.d.ts +2 -0
  19. package/src/crudGenerator/templates/resolver.js +35 -0
  20. package/src/crudGenerator/templates/resolver.js.map +1 -0
  21. package/src/crudGenerator/templates/root.d.ts +20 -0
  22. package/src/crudGenerator/templates/root.js +305 -0
  23. package/src/crudGenerator/templates/root.js.map +1 -0
  24. package/src/crudGenerator/utils/generator.d.ts +10 -0
  25. package/src/crudGenerator/utils/generator.js +20 -0
  26. package/src/crudGenerator/utils/generator.js.map +1 -0
  27. package/src/crudGenerator/utils/objectFields.d.ts +7 -0
  28. package/src/crudGenerator/utils/objectFields.js +58 -0
  29. package/src/crudGenerator/utils/objectFields.js.map +1 -0
  30. package/src/crudGenerator/utils/parts.d.ts +25 -0
  31. package/src/crudGenerator/utils/parts.js +132 -0
  32. package/src/crudGenerator/utils/parts.js.map +1 -0
  33. package/src/env.d.ts +3 -0
  34. package/src/env.js +7 -0
  35. package/src/env.js.map +1 -0
  36. package/src/generator.d.ts +6 -0
  37. package/src/generator.js +22 -0
  38. package/src/generator.js.map +1 -0
  39. package/src/index.d.ts +2 -0
  40. package/src/index.js +3 -0
  41. package/src/index.js.map +1 -0
  42. package/src/inputsGenerator/index.d.ts +34 -0
  43. package/src/inputsGenerator/index.js +19 -0
  44. package/src/inputsGenerator/index.js.map +1 -0
  45. package/src/inputsGenerator/utils/dmmf.d.ts +20 -0
  46. package/src/inputsGenerator/utils/dmmf.js +113 -0
  47. package/src/inputsGenerator/utils/dmmf.js.map +1 -0
  48. package/src/inputsGenerator/utils/inputFields.d.ts +4 -0
  49. package/src/inputsGenerator/utils/inputFields.js +74 -0
  50. package/src/inputsGenerator/utils/inputFields.js.map +1 -0
  51. package/src/inputsGenerator/utils/parser.d.ts +5 -0
  52. package/src/inputsGenerator/utils/parser.js +23 -0
  53. package/src/inputsGenerator/utils/parser.js.map +1 -0
  54. package/src/inputsGenerator/utils/parts.d.ts +7 -0
  55. package/src/inputsGenerator/utils/parts.js +158 -0
  56. package/src/inputsGenerator/utils/parts.js.map +1 -0
  57. package/src/inputsGenerator/utils/templates.d.ts +8 -0
  58. package/src/inputsGenerator/utils/templates.js +60 -0
  59. package/src/inputsGenerator/utils/templates.js.map +1 -0
  60. package/src/utils/config.d.ts +85 -0
  61. package/src/utils/config.js +113 -0
  62. package/src/utils/config.js.map +1 -0
  63. package/src/utils/configUtils.d.ts +2 -0
  64. package/src/utils/configUtils.js +9 -0
  65. package/src/utils/configUtils.js.map +1 -0
  66. package/src/utils/filesystem.d.ts +7 -0
  67. package/src/utils/filesystem.js +38 -0
  68. package/src/utils/filesystem.js.map +1 -0
  69. package/src/utils/replacer.d.ts +4 -0
  70. package/src/utils/replacer.js +3 -0
  71. package/src/utils/replacer.js.map +1 -0
  72. package/src/utils/string.d.ts +4 -0
  73. package/src/utils/string.js +18 -0
  74. package/src/utils/string.js.map +1 -0
  75. package/src/utils/template.d.ts +3 -0
  76. package/src/utils/template.js +13 -0
  77. package/src/utils/template.js.map +1 -0
  78. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getObjectFieldsString = exports.cleanifyDocumentation = void 0;
4
+ const configUtils_1 = require("../../utils/configUtils");
5
+ const string_1 = require("../../utils/string");
6
+ const template_1 = require("../../utils/template");
7
+ const object_1 = require("../templates/object");
8
+ const cleanifyDocumentation = (str) => str === null || str === void 0 ? void 0 : str.replace(/\s*@Pothos\.omit\(.*\)\s*/, '');
9
+ exports.cleanifyDocumentation = cleanifyDocumentation;
10
+ const getObjectFieldsString = (modelName, fields, config) => fields.reduce(({ fields, exportFields }, { isId, type: fieldType, name, relationName, isRequired, documentation, isList }) => {
11
+ const nameUpper = (0, string_1.firstLetterUpperCase)(name);
12
+ const cleanDocumentation = (0, string_1.escapeQuotesAndMultilineSupport)((0, exports.cleanifyDocumentation)(documentation));
13
+ const description = `${cleanDocumentation}` || 'undefined'; // field description defined in schema.prisma
14
+ const nullable = isRequired ? 'false' : 'true';
15
+ const type = fieldType === 'BigInt' ? 'Bigint' : fieldType;
16
+ const optionalUnderscore = (0, configUtils_1.getConfigCrudUnderscore)(config);
17
+ const obj = `${modelName}${optionalUnderscore}${nameUpper}${optionalUnderscore}FieldObject`;
18
+ const templateOpts = { modelName, name, nameUpper, description, nullable, type, optionalUnderscore };
19
+ // Relation
20
+ if (relationName) {
21
+ fields.push(`${name}: t.relation('${name}', ${obj}${isList ? '(t)' : ''}),`);
22
+ if (isList)
23
+ exportFields.push((0, template_1.useTemplate)(object_1.listRelationObjectTemplate, {
24
+ ...templateOpts,
25
+ typeUpper: (0, string_1.firstLetterUpperCase)(templateOpts.type),
26
+ }));
27
+ else
28
+ exportFields.push((0, template_1.useTemplate)(object_1.relationObjectTemplate, templateOpts));
29
+ return { fields, exportFields };
30
+ }
31
+ // Scalar (DateTime, Json, Enums, etc.)
32
+ fields.push(`${name}: t.field(${obj}),`);
33
+ const shouldBeGraphqlId = isId && config.crud.mapIdFieldsToGraphqlId === 'Objects';
34
+ exportFields.push((0, template_1.useTemplate)(object_1.fieldObjectTemplate, {
35
+ ...templateOpts,
36
+ conditionalType: (() => {
37
+ const type = templateOpts.type;
38
+ const isNativeType = ['String', 'Int', 'Float', 'Boolean'].includes(type);
39
+ const importedType = (() => {
40
+ if (shouldBeGraphqlId)
41
+ return `"ID"`;
42
+ return isNativeType ? `"${type}"` : `Inputs.${type}`;
43
+ })();
44
+ const bracketify = (str) => `[${str}]`;
45
+ return isList ? bracketify(importedType) : importedType;
46
+ })(),
47
+ conditionalResolve: (() => {
48
+ const name = templateOpts.name;
49
+ const value = `parent.${name}`;
50
+ const stringParsefy = (str) => `String(${str})`;
51
+ const final = shouldBeGraphqlId ? stringParsefy(value) : value;
52
+ return final;
53
+ })(),
54
+ }));
55
+ return { fields, exportFields };
56
+ }, { fields: [], exportFields: [] });
57
+ exports.getObjectFieldsString = getObjectFieldsString;
58
+ //# sourceMappingURL=objectFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objectFields.js","sourceRoot":"","sources":["../../../../src/crudGenerator/utils/objectFields.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { ConfigInternal } from '../../utils/config';
2
+ import type { DMMF } from '@prisma/generator-helper';
3
+ type ResolverType = 'queries' | 'mutations';
4
+ export type GeneratedResolver = {
5
+ resolverName: string;
6
+ modelName: string;
7
+ type: ResolverType;
8
+ };
9
+ /** Write index.ts */
10
+ export declare function writeIndex(config: ConfigInternal, model: DMMF.Model, { queries, mutations }: {
11
+ queries: GeneratedResolver[];
12
+ mutations: GeneratedResolver[];
13
+ }): Promise<{
14
+ name: string;
15
+ exports: string[];
16
+ }[]>;
17
+ /** Write object.base.ts */
18
+ export declare function writeObject(config: ConfigInternal, model: DMMF.Model): Promise<void>;
19
+ export declare const getBuilderCalculatedImport: ({ config, fileLocation, }: {
20
+ fileLocation: string;
21
+ config: ConfigInternal;
22
+ }) => string;
23
+ /** Write resolvers (e.g. findFirst, findUnique, createOne, etc) */
24
+ export declare function writeResolvers(config: ConfigInternal, model: DMMF.Model, type: ResolverType, templates: Record<string, string>): Promise<GeneratedResolver[]>;
25
+ export {};
@@ -0,0 +1,132 @@
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.getBuilderCalculatedImport = void 0;
7
+ exports.writeIndex = writeIndex;
8
+ exports.writeObject = writeObject;
9
+ exports.writeResolvers = writeResolvers;
10
+ const node_path_1 = __importDefault(require("node:path"));
11
+ const configUtils_1 = require("../../utils/configUtils");
12
+ const filesystem_1 = require("../../utils/filesystem");
13
+ const string_1 = require("../../utils/string");
14
+ const template_1 = require("../../utils/template");
15
+ const object_1 = require("../templates/object");
16
+ const objectFields_1 = require("./objectFields");
17
+ const getResolverTypeName = (type) => {
18
+ return type === 'mutations' ? 'Mutation' : 'Query';
19
+ };
20
+ /** Write index.ts */
21
+ async function writeIndex(config, model, { queries, mutations }) {
22
+ const queriesExports = queries.map((el) => `${el.resolverName}${el.modelName}${getResolverTypeName(el.type)}`);
23
+ const mutationsExports = mutations.map((el) => `${el.resolverName}${el.modelName}${getResolverTypeName(el.type)}`);
24
+ const optionalUnderscore = (0, configUtils_1.getConfigCrudUnderscore)(config);
25
+ const exportsWithName = [
26
+ {
27
+ name: './object.base',
28
+ exports: [
29
+ `${model.name}${optionalUnderscore}Object`,
30
+ ...model.fields.map((el) => `${model.name}${optionalUnderscore}${(0, string_1.firstLetterUpperCase)(el.name)}${optionalUnderscore}FieldObject`),
31
+ ],
32
+ },
33
+ {
34
+ name: './mutations',
35
+ exports: [...mutationsExports, ...mutationsExports.map((el) => `${el}Object`)],
36
+ },
37
+ {
38
+ name: './queries',
39
+ exports: [...queriesExports, ...queriesExports.map((el) => `${el}Object`)],
40
+ },
41
+ ];
42
+ // TODO Refactor this logic + tests
43
+ const exports = exportsWithName
44
+ .filter((el) => el.exports.length)
45
+ .map((el) => `export {\n ${el.exports.join(',\n ')}\n} from '${el.name}';`);
46
+ const outputPath = node_path_1.default.join(config.crud.outputDir, model.name, 'index.ts');
47
+ const content = exports.join('\n') + '\n';
48
+ await (0, filesystem_1.writeFile)(config, 'crud.model.index', content, outputPath);
49
+ return exportsWithName;
50
+ }
51
+ /** Write object.base.ts */
52
+ async function writeObject(config, model) {
53
+ var _a;
54
+ // findUnique
55
+ const idField = model.fields.find((f) => f.isId);
56
+ let findUnique = `(fields) => ({ ...fields })`;
57
+ if (idField)
58
+ findUnique = `({ ${idField.name} }) => ({ ${idField.name} })`;
59
+ if ((_a = model.primaryKey) === null || _a === void 0 ? void 0 : _a.fields)
60
+ findUnique = `(fields) => ({ ${model.primaryKey.name || (0, string_1.getCompositeName)(model.primaryKey.fields)}: fields })`;
61
+ // Fields
62
+ const { fields, exportFields } = (0, objectFields_1.getObjectFieldsString)(model.name, model.fields, config);
63
+ const fileLocation = node_path_1.default.join(config.crud.outputDir, model.name, 'object.base.ts');
64
+ const builderCalculatedImport = (0, exports.getBuilderCalculatedImport)({ config, fileLocation });
65
+ // Write output
66
+ await (0, filesystem_1.writeFile)(config, 'crud.model.object', (0, template_1.useTemplate)(object_1.objectTemplate, {
67
+ modelName: model.name,
68
+ description: (0, string_1.escapeQuotesAndMultilineSupport)(model.documentation) || 'undefined', // Object description defined in schema.prisma
69
+ findUnique,
70
+ inputsImporter: config.crud.inputsImporter,
71
+ fields: fields.join('\n '),
72
+ exportFields: exportFields.join('\n\n'),
73
+ builderCalculatedImport,
74
+ optionalUnderscore: (0, configUtils_1.getConfigCrudUnderscore)(config),
75
+ }), fileLocation);
76
+ }
77
+ const isExcludedResolver = (options, name) => {
78
+ const { excludeResolversContain, excludeResolversExact, includeResolversContain, includeResolversExact } = options.crud || {};
79
+ if (includeResolversExact.length) {
80
+ return !includeResolversExact.includes(name);
81
+ }
82
+ if (includeResolversContain.length) {
83
+ return !includeResolversContain.some((include) => name.includes(include));
84
+ }
85
+ if (excludeResolversExact.length && excludeResolversExact.includes(name)) {
86
+ return true;
87
+ }
88
+ if (excludeResolversContain.length && excludeResolversContain.some((r) => name.includes(r))) {
89
+ return true;
90
+ }
91
+ return false;
92
+ };
93
+ const getBuilderCalculatedImport = ({ config, fileLocation, }) => {
94
+ const builderRelative = node_path_1.default.relative(process.cwd(), node_path_1.default.join(process.cwd(), config.global.builderLocation));
95
+ const relativeImport = node_path_1.default.relative(node_path_1.default.dirname(fileLocation), builderRelative);
96
+ const stringImport = node_path_1.default.sep === '\\' ? relativeImport.replace(/\\/g, '/') : relativeImport;
97
+ const importer = `\nimport { builder } from '${stringImport}';`;
98
+ return importer;
99
+ };
100
+ exports.getBuilderCalculatedImport = getBuilderCalculatedImport;
101
+ /** Write resolvers (e.g. findFirst, findUnique, createOne, etc) */
102
+ async function writeResolvers(config, model, type, templates) {
103
+ const { inputsImporter } = config.crud;
104
+ const resolverInputsImporter = inputsImporter.includes('../')
105
+ ? inputsImporter.replace('../', '../../') // go a level inside to import
106
+ : inputsImporter;
107
+ const resolvers = Object.entries(templates).filter(([name]) => !isExcludedResolver(config, `${name}${model.name}`));
108
+ // Generate files
109
+ await Promise.all(resolvers.map(([name, template]) => {
110
+ const fileLocation = node_path_1.default.join(config.crud.outputDir, model.name, type, `${name}.base.ts`);
111
+ const builderCalculatedImport = (0, exports.getBuilderCalculatedImport)({ config, fileLocation });
112
+ return (0, filesystem_1.writeFile)(config, 'crud.model.resolver', (0, template_1.useTemplate)(template, {
113
+ modelName: model.name,
114
+ modelNameLower: (0, string_1.firstLetterLowerCase)(model.name),
115
+ modelNameUpper: (0, string_1.firstLetterUpperCase)(model.name),
116
+ prisma: config.crud.prismaCaller,
117
+ resolverImports: config.crud.resolverImports,
118
+ inputsImporter: resolverInputsImporter,
119
+ builderCalculatedImport,
120
+ }), fileLocation);
121
+ }));
122
+ if (resolvers.length)
123
+ await (0, filesystem_1.writeFile)(config, 'crud.model.resolverIndex',
124
+ // TODO Refactor this logic + tests
125
+ resolvers
126
+ .map(([name]) => `export ${(() => {
127
+ return `{ ${name}${model.name}${type === 'mutations' ? 'Mutation' : 'Query'}, ${name}${model.name}${getResolverTypeName(type)}Object }`;
128
+ })()} from './${name}.base';`)
129
+ .join('\n') + '\n', node_path_1.default.join(config.crud.outputDir, model.name, type, 'index.ts'));
130
+ return resolvers.map(([resolverName]) => ({ resolverName, modelName: model.name, type }));
131
+ }
132
+ //# sourceMappingURL=parts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parts.js","sourceRoot":"","sources":["../../../../src/crudGenerator/utils/parts.ts"],"names":[],"mappings":"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"}
package/src/env.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export declare const env: {
2
+ isTesting: boolean;
3
+ };
package/src/env.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.env = void 0;
4
+ exports.env = {
5
+ isTesting: !!process.env.JEST_WORKER_ID,
6
+ };
7
+ //# sourceMappingURL=env.js.map
package/src/env.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/env.ts"],"names":[],"mappings":";;;AAAa,QAAA,GAAG,GAAG;IACjB,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc;CACxC,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { GeneratorOptions } from '@prisma/generator-helper';
2
+ type SchemaGeneratorExtensionOptions = {
3
+ generatorConfigPath?: string;
4
+ };
5
+ export type ExtendedGeneratorOptions = SchemaGeneratorExtensionOptions & GeneratorOptions;
6
+ export {};
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const generator_helper_1 = require("@prisma/generator-helper");
4
+ const crudGenerator_1 = require("./crudGenerator");
5
+ const inputsGenerator_1 = require("./inputsGenerator");
6
+ const config_1 = require("./utils/config");
7
+ (0, generator_helper_1.generatorHandler)({
8
+ onManifest: () => ({
9
+ prettyName: 'Pothos inputs & crud integration',
10
+ requiresGenerators: ['prisma-client-js', 'prisma-pothos-types'],
11
+ defaultOutput: './generated/inputs.ts',
12
+ }),
13
+ onGenerate: async (options) => {
14
+ const generatorConfig = { ...options, ...options.generator.config };
15
+ const config = await (0, config_1.getConfig)(generatorConfig);
16
+ config.global.beforeGenerate(options.dmmf);
17
+ await (0, crudGenerator_1.generateCrud)(config, options.dmmf);
18
+ await (0, inputsGenerator_1.generateInputs)(config, options.dmmf);
19
+ config.global.afterGenerate(options.dmmf);
20
+ },
21
+ });
22
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/generator.ts"],"names":[],"mappings":";;AAAA,+DAA6E;AAC7E,mDAA8C;AAC9C,uDAAkD;AAClD,2CAA0C;AAQ1C,IAAA,mCAAgB,EAAC;IACf,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QACjB,UAAU,EAAE,kCAAkC;QAC9C,kBAAkB,EAAE,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;QAC/D,aAAa,EAAE,uBAAuB;KACvC,CAAC;IACF,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC5B,MAAM,eAAe,GAA6B,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,CAAA;QAC7F,MAAM,MAAM,GAAG,MAAM,IAAA,kBAAS,EAAC,eAAe,CAAC,CAAA;QAE/C,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC1C,MAAM,IAAA,4BAAY,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QACxC,MAAM,IAAA,gCAAc,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QAC1C,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3C,CAAC;CACF,CAAC,CAAA"}
package/src/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export { Scalars } from './inputsGenerator/';
2
+ export { Config } from './utils/config';
package/src/index.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,34 @@
1
+ import { ConfigInternal } from '../utils/config';
2
+ import type { DMMF } from '@prisma/generator-helper';
3
+ /** Types may vary between Prisma versions */
4
+ export type Scalars<DecimalType, JsonInput, JsonOutput> = {
5
+ DateTime: {
6
+ Input: Date;
7
+ Output: Date;
8
+ };
9
+ Decimal: {
10
+ Input: DecimalType;
11
+ Output: DecimalType;
12
+ };
13
+ BigInt: {
14
+ Input: bigint;
15
+ Output: bigint;
16
+ };
17
+ Json: {
18
+ Input: JsonInput;
19
+ Output: JsonOutput;
20
+ };
21
+ Bytes: {
22
+ /** Prisma returns `Uint8Array` for Bytes fields since Prisma 6; Buffer is also a Uint8Array so both are accepted */
23
+ Input: Buffer | Uint8Array;
24
+ Output: {
25
+ type: 'Buffer';
26
+ data: number[];
27
+ };
28
+ };
29
+ NEVER: {
30
+ Input: void;
31
+ Output: void;
32
+ };
33
+ };
34
+ export declare function generateInputs(config: ConfigInternal, dmmf: DMMF.Document): Promise<void>;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateInputs = generateInputs;
4
+ const env_1 = require("../env");
5
+ const filesystem_1 = require("../utils/filesystem");
6
+ const parts_1 = require("./utils/parts");
7
+ async function generateInputs(config, dmmf) {
8
+ if (env_1.env.isTesting)
9
+ await (0, filesystem_1.writeFile)(config, 'debug.dmmf', JSON.stringify(dmmf, null, 2), 'dmmf.json');
10
+ const fileLocation = config.inputs.outputFilePath;
11
+ const imports = (0, parts_1.getImports)(config, fileLocation);
12
+ const util = (0, parts_1.getUtil)();
13
+ const scalars = (0, parts_1.getScalars)(config, dmmf);
14
+ const enums = (0, parts_1.getEnums)(dmmf);
15
+ const inputs = (0, parts_1.getInputs)(config, dmmf);
16
+ const content = [imports, util, scalars, enums, inputs].join('\n\n');
17
+ await (0, filesystem_1.writeFile)(config, 'inputs', content, fileLocation);
18
+ }
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/inputsGenerator/index.ts"],"names":[],"mappings":";;AAsCA,wCAaC;AAnDD,gCAA4B;AAE5B,oDAA+C;AAC/C,yCAAoF;AAmC7E,KAAK,UAAU,cAAc,CAAC,MAAsB,EAAE,IAAmB;IAC9E,IAAI,SAAG,CAAC,SAAS;QAAE,MAAM,IAAA,sBAAS,EAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,CAAA;IAEpG,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAA;IAEjD,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IAChD,MAAM,IAAI,GAAG,IAAA,eAAO,GAAE,CAAA;IACtB,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACxC,MAAM,KAAK,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAA;IAC5B,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACtC,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAEpE,MAAM,IAAA,sBAAS,EAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,CAAA;AAC1D,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { DMMF } from '@prisma/generator-helper';
2
+ export type UsedScalars = {
3
+ hasDateTime: boolean;
4
+ hasDecimal: boolean;
5
+ hasBytes: boolean;
6
+ hasJson: boolean;
7
+ hasBigInt: boolean;
8
+ hasNEVER: boolean;
9
+ };
10
+ /** Reads the input types and returns what scalars are used */
11
+ export declare function getUsedScalars(inputs: readonly DMMF.InputType[]): UsedScalars;
12
+ /** Find main input type (list or not, since GraphQL input types don't allow unions) */
13
+ export declare function getMainInput(): {
14
+ run: (rawInputs: readonly DMMF.InputTypeRef[]) => DMMF.InputTypeRef;
15
+ priorizeJson: (inputs: DMMF.InputTypeRef[]) => DMMF.InputTypeRef | undefined;
16
+ priorizeNotScalar: (inputs: DMMF.InputTypeRef[]) => DMMF.InputTypeRef | undefined;
17
+ priorizeList: (inputs: DMMF.InputTypeRef[]) => DMMF.InputTypeRef | undefined;
18
+ priorizeWhereInput: (inputs: DMMF.InputTypeRef[]) => DMMF.InputTypeRef | undefined;
19
+ priorizeSetUpdateAlternative: (inputs: DMMF.InputTypeRef[]) => DMMF.InputTypeRef | undefined;
20
+ };
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getUsedScalars = getUsedScalars;
4
+ exports.getMainInput = getMainInput;
5
+ /** Reads the input types and returns what scalars are used */
6
+ function getUsedScalars(inputs) {
7
+ let hasDateTime = false;
8
+ let hasDecimal = false;
9
+ let hasBytes = false;
10
+ let hasJson = false;
11
+ let hasBigInt = false;
12
+ let hasNEVER = false;
13
+ for (const { fields } of inputs) {
14
+ if (fields.length === 0)
15
+ hasNEVER = true;
16
+ for (const { inputTypes } of fields) {
17
+ for (const { type, location } of inputTypes) {
18
+ if (type === 'Json' && location === 'scalar')
19
+ hasJson = true;
20
+ if (type === 'DateTime' && location === 'scalar')
21
+ hasDateTime = true;
22
+ if (type === 'Decimal' && location === 'scalar')
23
+ hasDecimal = true;
24
+ if (type === 'Bytes' && location === 'scalar')
25
+ hasBytes = true;
26
+ if (type === 'BigInt' && location === 'scalar')
27
+ hasBigInt = true;
28
+ }
29
+ }
30
+ }
31
+ return { hasDateTime, hasDecimal, hasBytes, hasJson, hasBigInt, hasNEVER };
32
+ }
33
+ /** Find main input type (list or not, since GraphQL input types don't allow unions) */
34
+ function getMainInput() {
35
+ // If one list, priorize it
36
+ const priorizeJson = (inputs) => {
37
+ const listInputs = inputs.find((el) => el.type === 'Json');
38
+ if (listInputs) {
39
+ return listInputs;
40
+ }
41
+ return undefined;
42
+ };
43
+ // If has list, priorize it
44
+ const priorizeList = (inputs) => {
45
+ const listInputs = inputs.filter((el) => el.isList);
46
+ const hasList = listInputs.length >= 1;
47
+ if (hasList) {
48
+ return listInputs[0];
49
+ }
50
+ return undefined;
51
+ };
52
+ // If not list, priorize not scalar
53
+ const priorizeNotScalar = (inputs) => {
54
+ const listInputs = inputs.filter((el) => el.isList);
55
+ const exactlyOneIsList = listInputs.length === 0;
56
+ if (exactlyOneIsList) {
57
+ return inputs.find((el) => el.location !== 'scalar');
58
+ }
59
+ return undefined;
60
+ };
61
+ // If one list, priorize it
62
+ const priorizeWhereInput = (inputs) => {
63
+ const listInputs = inputs.find((el) => el.type.toString().includes('WhereInput'));
64
+ if (listInputs) {
65
+ return listInputs;
66
+ }
67
+ return undefined;
68
+ };
69
+ // If one list, priorize it
70
+ const priorizeSetUpdateAlternative = (inputs) => {
71
+ const setType = inputs.find((el) => el.type.toString().includes('FieldUpdateOperationsInput'));
72
+ if (setType) {
73
+ return setType;
74
+ }
75
+ return undefined;
76
+ };
77
+ const run = (rawInputs) => {
78
+ // Ignore fieldRefTypes
79
+ const inputs = rawInputs.filter((el) => el.location !== 'fieldRefTypes');
80
+ const first = inputs[0];
81
+ if (!first)
82
+ throw new Error('No input type found');
83
+ const second = inputs[1];
84
+ if (first && !second)
85
+ return first;
86
+ // ! ORDER MATTERS
87
+ const isJsonPriority = priorizeJson(inputs);
88
+ if (isJsonPriority)
89
+ return isJsonPriority;
90
+ const isListPriority = priorizeList(inputs);
91
+ if (isListPriority)
92
+ return isListPriority;
93
+ const whereInputPriority = priorizeWhereInput(inputs);
94
+ if (whereInputPriority)
95
+ return whereInputPriority;
96
+ const setUpdateAlternativePriority = priorizeSetUpdateAlternative(inputs);
97
+ if (setUpdateAlternativePriority)
98
+ return setUpdateAlternativePriority;
99
+ const isNotScalarPriority = priorizeNotScalar(inputs);
100
+ if (isNotScalarPriority)
101
+ return isNotScalarPriority;
102
+ return first;
103
+ };
104
+ return {
105
+ run,
106
+ priorizeJson,
107
+ priorizeNotScalar,
108
+ priorizeList,
109
+ priorizeWhereInput,
110
+ priorizeSetUpdateAlternative,
111
+ };
112
+ }
113
+ //# sourceMappingURL=dmmf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dmmf.js","sourceRoot":"","sources":["../../../../src/inputsGenerator/utils/dmmf.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { ConfigInternal } from '../../utils/config';
2
+ import type { DMMF } from '@prisma/generator-helper';
3
+ /** Convert array of fields to a string code representation */
4
+ export declare const getInputFieldsString: (input: DMMF.InputType, model: DMMF.Model | undefined, config: ConfigInternal) => string;
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getInputFieldsString = void 0;
4
+ const string_1 = require("../../utils/string");
5
+ const dmmf_1 = require("./dmmf");
6
+ const parser_1 = require("./parser");
7
+ /** Convert array of fields to a string code representation */
8
+ const getInputFieldsString = (input, model, config) => {
9
+ const omitted = [];
10
+ const simple = config.inputs.simple;
11
+ const filtered = input.fields.filter((field) => {
12
+ // Fields are filtered for simple mode if this is enabled
13
+ if (simple &&
14
+ ['create', 'connectOrCreate', 'createMany', 'upsert', 'update', 'updateMany', 'delete', 'deleteMany'].includes(field.name)) {
15
+ omitted.push({ name: field.name, reason: '`simple mode: true` found in global config' });
16
+ return false;
17
+ }
18
+ // Description is parsed for @Pothos.omit() comments and input fields are filtered
19
+ const modelField = model === null || model === void 0 ? void 0 : model.fields.find((f) => f.name === field.name);
20
+ if (!modelField || !modelField.documentation)
21
+ return true;
22
+ const omitTypes = (0, parser_1.parseComment)(modelField.documentation);
23
+ if (!omitTypes)
24
+ return true;
25
+ if (omitTypes === 'all' ||
26
+ omitTypes.some((omitType) => input.name.startsWith(`${model === null || model === void 0 ? void 0 : model.name}${(0, string_1.firstLetterUpperCase)(omitType)}`) ||
27
+ input.name.startsWith(`${model === null || model === void 0 ? void 0 : model.name}Unchecked${(0, string_1.firstLetterUpperCase)(omitType)}`))) {
28
+ omitted.push({ name: field.name, reason: '@Pothos.omit found in schema comment' });
29
+ return false;
30
+ }
31
+ return true;
32
+ });
33
+ // Convert remaining fields to string representation
34
+ const fields = filtered.length === 0
35
+ ? ['_: t.field({ type: NEVER }),']
36
+ : filtered.map((field) => {
37
+ const { isList, type, location } = (0, dmmf_1.getMainInput)().run(field.inputTypes);
38
+ const props = { required: field.isRequired, description: undefined };
39
+ const defaultScalarList = ['String', 'Int', 'Float', 'Boolean'];
40
+ const isScalar = location === 'scalar' && defaultScalarList.includes(type.toString());
41
+ const getFieldType = () => {
42
+ if (isList) {
43
+ return `${type}List`;
44
+ }
45
+ if (isScalar && config.inputs.mapIdFieldsToGraphqlId === 'WhereUniqueInputs') {
46
+ const fieldDetails = model === null || model === void 0 ? void 0 : model.fields.find((f) => f.name === field.name);
47
+ if (fieldDetails === null || fieldDetails === void 0 ? void 0 : fieldDetails.isId) {
48
+ return 'id';
49
+ }
50
+ }
51
+ return type.toString();
52
+ };
53
+ const getScalar = () => {
54
+ // TODO parse date to string ??
55
+ const fieldType = getFieldType();
56
+ return `${(0, string_1.firstLetterLowerCase)(fieldType)}(${JSON.stringify(props)})`;
57
+ };
58
+ const getField = () => {
59
+ // BigInt is reserved
60
+ const renamedType = type === 'BigInt' ? 'Bigint' : type;
61
+ const fieldType = isList ? `[${renamedType}]` : renamedType.toString();
62
+ const relationProps = { ...props, type: fieldType };
63
+ // "type":"CommentCreateInput" -> "type":CommentCreateInput
64
+ return `field(${JSON.stringify(relationProps).replace(/(type.+:)"(.+)"/, '$1$2')})`;
65
+ };
66
+ return `${field.name}: t.${isScalar ? getScalar() : getField()},`;
67
+ });
68
+ const sep = '\n ';
69
+ return `${fields.join(sep)}${omitted.length > 0 ? sep : ''}${omitted
70
+ .map((o) => `// '${o.name}' was omitted due to ${o.reason}`)
71
+ .join(sep)}`;
72
+ };
73
+ exports.getInputFieldsString = getInputFieldsString;
74
+ //# sourceMappingURL=inputFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputFields.js","sourceRoot":"","sources":["../../../../src/inputsGenerator/utils/inputFields.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ declare const validOptions: readonly ["create", "update", "where", "orderBy"];
2
+ type Omit = (typeof validOptions)[number];
3
+ type OmitType = 'all' | Omit[];
4
+ export declare function parseComment(comment: string): OmitType | null;
5
+ export {};
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseComment = parseComment;
4
+ const validOptions = ['create', 'update', 'where', 'orderBy'];
5
+ function parseComment(comment) {
6
+ var _a;
7
+ const omitRegex = /@Pothos\.omit\(([^)]*)\)/;
8
+ const matches = comment.match(omitRegex);
9
+ if (!matches) {
10
+ return null;
11
+ }
12
+ const omitValues = (_a = matches[1]) === null || _a === void 0 ? void 0 : _a.split(',').map((value) => value.trim()).filter(Boolean);
13
+ if (!omitValues)
14
+ return null;
15
+ if (omitValues.length === 0) {
16
+ return 'all';
17
+ }
18
+ const hasUnrecognized = omitValues.some((el) => !validOptions.includes(el));
19
+ if (hasUnrecognized)
20
+ return null;
21
+ return omitValues;
22
+ }
23
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../src/inputsGenerator/utils/parser.ts"],"names":[],"mappings":";;AAIA,oCAuBC;AA3BD,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAU,CAAA;AAItE,SAAgB,YAAY,CAAC,OAAe;;IAC1C,MAAM,SAAS,GAAG,0BAA0B,CAAA;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAExC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,UAAU,GAAG,MAAA,OAAO,CAAC,CAAC,CAAC,0CACzB,KAAK,CAAC,GAAG,EACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAC3B,MAAM,CAAC,OAAO,CAAC,CAAA;IAElB,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAA;IAE5B,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,eAAe,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAU,CAAC,CAAC,CAAA;IACnF,IAAI,eAAe;QAAE,OAAO,IAAI,CAAA;IAEhC,OAAO,UAAoB,CAAA;AAC7B,CAAC"}