@stryke/prisma-trpc-generator 0.13.48 → 0.13.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/rolldown_runtime.cjs +31 -1
- package/dist/_virtual/rolldown_runtime.mjs +32 -1
- package/dist/config.cjs +50 -1
- package/dist/config.mjs +49 -1
- package/dist/config.mjs.map +1 -1
- package/dist/generator.cjs +1 -1
- package/dist/generator.mjs +3 -1
- package/dist/helpers.cjs +281 -32
- package/dist/helpers.mjs +271 -32
- package/dist/helpers.mjs.map +1 -1
- package/dist/index.cjs +26 -1
- package/dist/index.mjs +27 -1
- package/dist/index.mjs.map +1 -1
- package/dist/packages/env/src/get-env-paths.cjs +87 -1
- package/dist/packages/env/src/get-env-paths.mjs +84 -1
- package/dist/packages/env/src/get-env-paths.mjs.map +1 -1
- package/dist/packages/string-format/src/acronyms.cjs +408 -1
- package/dist/packages/string-format/src/acronyms.mjs +407 -1
- package/dist/packages/string-format/src/acronyms.mjs.map +1 -1
- package/dist/packages/string-format/src/articles.cjs +10 -1
- package/dist/packages/string-format/src/articles.mjs +9 -1
- package/dist/packages/string-format/src/articles.mjs.map +1 -1
- package/dist/packages/string-format/src/combine.cjs +15 -1
- package/dist/packages/string-format/src/combine.mjs +14 -1
- package/dist/packages/string-format/src/combine.mjs.map +1 -1
- package/dist/packages/string-format/src/conjunctions.cjs +32 -1
- package/dist/packages/string-format/src/conjunctions.mjs +31 -1
- package/dist/packages/string-format/src/conjunctions.mjs.map +1 -1
- package/dist/packages/string-format/src/decamelize.cjs +14 -1
- package/dist/packages/string-format/src/decamelize.mjs +13 -1
- package/dist/packages/string-format/src/decamelize.mjs.map +1 -1
- package/dist/packages/string-format/src/format-special-cases.cjs +33 -1
- package/dist/packages/string-format/src/format-special-cases.mjs +33 -1
- package/dist/packages/string-format/src/format-special-cases.mjs.map +1 -1
- package/dist/packages/string-format/src/lower-case-first.cjs +17 -1
- package/dist/packages/string-format/src/lower-case-first.mjs +16 -1
- package/dist/packages/string-format/src/lower-case-first.mjs.map +1 -1
- package/dist/packages/string-format/src/prepositions.cjs +68 -1
- package/dist/packages/string-format/src/prepositions.mjs +67 -1
- package/dist/packages/string-format/src/prepositions.mjs.map +1 -1
- package/dist/packages/string-format/src/special-cases.cjs +53 -1
- package/dist/packages/string-format/src/special-cases.mjs +52 -1
- package/dist/packages/string-format/src/special-cases.mjs.map +1 -1
- package/dist/packages/string-format/src/title-case.cjs +19 -1
- package/dist/packages/string-format/src/title-case.mjs +19 -1
- package/dist/packages/string-format/src/title-case.mjs.map +1 -1
- package/dist/packages/string-format/src/upper-case-first.cjs +17 -1
- package/dist/packages/string-format/src/upper-case-first.mjs +16 -1
- package/dist/packages/string-format/src/upper-case-first.mjs.map +1 -1
- package/dist/prisma-generator.cjs +185 -8
- package/dist/prisma-generator.mjs +184 -8
- package/dist/prisma-generator.mjs.map +1 -1
- package/dist/project.cjs +15 -1
- package/dist/project.mjs +14 -1
- package/dist/project.mjs.map +1 -1
- package/dist/utils/format-file.cjs +25 -1
- package/dist/utils/format-file.mjs +23 -1
- package/dist/utils/format-file.mjs.map +1 -1
- package/dist/utils/get-jiti.cjs +21 -1
- package/dist/utils/get-jiti.mjs +20 -1
- package/dist/utils/get-jiti.mjs.map +1 -1
- package/dist/utils/get-prisma-internals.cjs +13 -1
- package/dist/utils/get-prisma-internals.mjs +12 -1
- package/dist/utils/get-prisma-internals.mjs.map +1 -1
- package/dist/utils/write-file-safely.cjs +32 -2
- package/dist/utils/write-file-safely.mjs +29 -2
- package/dist/utils/write-file-safely.mjs.map +1 -1
- package/dist/zod/aggregate-helpers.cjs +70 -1
- package/dist/zod/aggregate-helpers.mjs +67 -1
- package/dist/zod/aggregate-helpers.mjs.map +1 -1
- package/dist/zod/comments-helpers.cjs +77 -1
- package/dist/zod/comments-helpers.mjs +75 -1
- package/dist/zod/comments-helpers.mjs.map +1 -1
- package/dist/zod/docs-helpers.cjs +23 -3
- package/dist/zod/docs-helpers.mjs +20 -3
- package/dist/zod/docs-helpers.mjs.map +1 -1
- package/dist/zod/generator-helpers.cjs +34 -1
- package/dist/zod/generator-helpers.mjs +31 -1
- package/dist/zod/generator-helpers.mjs.map +1 -1
- package/dist/zod/helpers.cjs +26 -1
- package/dist/zod/helpers.mjs +26 -1
- package/dist/zod/helpers.mjs.map +1 -1
- package/dist/zod/include-helpers.cjs +69 -1
- package/dist/zod/include-helpers.mjs +69 -1
- package/dist/zod/include-helpers.mjs.map +1 -1
- package/dist/zod/model-helpers.cjs +244 -1
- package/dist/zod/model-helpers.mjs +236 -1
- package/dist/zod/model-helpers.mjs.map +1 -1
- package/dist/zod/modelArgs-helpers.cjs +56 -1
- package/dist/zod/modelArgs-helpers.mjs +56 -1
- package/dist/zod/modelArgs-helpers.mjs.map +1 -1
- package/dist/zod/mongodb-helpers.cjs +49 -1
- package/dist/zod/mongodb-helpers.mjs +48 -1
- package/dist/zod/mongodb-helpers.mjs.map +1 -1
- package/dist/zod/select-helpers.cjs +128 -1
- package/dist/zod/select-helpers.mjs +128 -1
- package/dist/zod/select-helpers.mjs.map +1 -1
- package/dist/zod/transformer.cjs +434 -19
- package/dist/zod/transformer.mjs +432 -19
- package/dist/zod/transformer.mjs.map +1 -1
- package/dist/zod/whereUniqueInput-helpers.cjs +17 -1
- package/dist/zod/whereUniqueInput-helpers.mjs +16 -1
- package/dist/zod/whereUniqueInput-helpers.mjs.map +1 -1
- package/package.json +4 -4
|
@@ -1,2 +1,57 @@
|
|
|
1
|
-
import{checkModelHasModelRelation
|
|
1
|
+
import { checkModelHasModelRelation } from "./model-helpers.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/zod/modelArgs-helpers.ts
|
|
4
|
+
function addMissingInputObjectTypesForModelArgs(inputObjectTypes, models, isGenerateSelect, isGenerateInclude) {
|
|
5
|
+
const modelArgsInputObjectTypes = generateModelArgsInputObjectTypes(models, isGenerateSelect, isGenerateInclude);
|
|
6
|
+
for (const modelArgsInputObjectType of modelArgsInputObjectTypes) inputObjectTypes.push(modelArgsInputObjectType);
|
|
7
|
+
}
|
|
8
|
+
function generateModelArgsInputObjectTypes(models, isGenerateSelect, isGenerateInclude) {
|
|
9
|
+
const modelArgsInputObjectTypes = [];
|
|
10
|
+
for (const model of models) {
|
|
11
|
+
const { name: modelName } = model;
|
|
12
|
+
const fields = [];
|
|
13
|
+
if (isGenerateSelect) {
|
|
14
|
+
const selectField = {
|
|
15
|
+
name: "select",
|
|
16
|
+
isRequired: false,
|
|
17
|
+
isNullable: false,
|
|
18
|
+
inputTypes: [{
|
|
19
|
+
isList: false,
|
|
20
|
+
type: `${modelName}Select`,
|
|
21
|
+
location: "inputObjectTypes",
|
|
22
|
+
namespace: "prisma"
|
|
23
|
+
}]
|
|
24
|
+
};
|
|
25
|
+
fields.push(selectField);
|
|
26
|
+
}
|
|
27
|
+
const hasRelationToAnotherModel = checkModelHasModelRelation(model);
|
|
28
|
+
if (isGenerateInclude && hasRelationToAnotherModel) {
|
|
29
|
+
const includeField = {
|
|
30
|
+
name: "include",
|
|
31
|
+
isRequired: false,
|
|
32
|
+
isNullable: false,
|
|
33
|
+
inputTypes: [{
|
|
34
|
+
isList: false,
|
|
35
|
+
type: `${modelName}Include`,
|
|
36
|
+
location: "inputObjectTypes",
|
|
37
|
+
namespace: "prisma"
|
|
38
|
+
}]
|
|
39
|
+
};
|
|
40
|
+
fields.push(includeField);
|
|
41
|
+
}
|
|
42
|
+
const modelArgsInputObjectType = {
|
|
43
|
+
name: `${modelName}DefaultArgs`,
|
|
44
|
+
constraints: {
|
|
45
|
+
maxNumFields: null,
|
|
46
|
+
minNumFields: null
|
|
47
|
+
},
|
|
48
|
+
fields
|
|
49
|
+
};
|
|
50
|
+
modelArgsInputObjectTypes.push(modelArgsInputObjectType);
|
|
51
|
+
}
|
|
52
|
+
return modelArgsInputObjectTypes;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
//#endregion
|
|
56
|
+
export { addMissingInputObjectTypesForModelArgs };
|
|
2
57
|
//# sourceMappingURL=modelArgs-helpers.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelArgs-helpers.mjs","names":["modelArgsInputObjectTypes: DMMF.InputType[]","fields: DMMF.SchemaArg[]","selectField: DMMF.SchemaArg","includeField: DMMF.SchemaArg","modelArgsInputObjectType: DMMF.InputType"],"sources":["../../src/zod/modelArgs-helpers.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 License, and is\n free for commercial and private use. For more information, please visit\n our licensing page.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/stryke\n Documentation: https://stormsoftware.com/projects/stryke/docs\n Contact: https://stormsoftware.com/contact\n License: https://stormsoftware.com/projects/stryke/license\n\n ------------------------------------------------------------------- */\n\nimport type { DMMF } from \"@prisma/generator-helper\";\nimport { checkModelHasModelRelation } from \"./model-helpers\";\n\nexport function addMissingInputObjectTypesForModelArgs(\n inputObjectTypes: DMMF.InputType[],\n models: DMMF.Model[],\n isGenerateSelect: boolean,\n isGenerateInclude: boolean\n) {\n const modelArgsInputObjectTypes = generateModelArgsInputObjectTypes(\n models,\n isGenerateSelect,\n isGenerateInclude\n );\n\n for (const modelArgsInputObjectType of modelArgsInputObjectTypes) {\n inputObjectTypes.push(modelArgsInputObjectType);\n }\n}\nfunction generateModelArgsInputObjectTypes(\n models: DMMF.Model[],\n isGenerateSelect: boolean,\n isGenerateInclude: boolean\n) {\n const modelArgsInputObjectTypes: DMMF.InputType[] = [];\n for (const model of models) {\n const { name: modelName } = model;\n const fields: DMMF.SchemaArg[] = [];\n\n if (isGenerateSelect) {\n const selectField: DMMF.SchemaArg = {\n name: \"select\",\n isRequired: false,\n isNullable: false,\n inputTypes: [\n {\n isList: false,\n type: `${modelName}Select`,\n location: \"inputObjectTypes\",\n namespace: \"prisma\"\n }\n ]\n };\n fields.push(selectField);\n }\n\n const hasRelationToAnotherModel = checkModelHasModelRelation(model);\n\n if (isGenerateInclude && hasRelationToAnotherModel) {\n const includeField: DMMF.SchemaArg = {\n name: \"include\",\n isRequired: false,\n isNullable: false,\n inputTypes: [\n {\n isList: false,\n type: `${modelName}Include`,\n location: \"inputObjectTypes\",\n namespace: \"prisma\"\n }\n ]\n };\n fields.push(includeField);\n }\n\n const modelArgsInputObjectType: DMMF.InputType = {\n name: `${modelName}DefaultArgs`,\n constraints: {\n maxNumFields: null,\n minNumFields: null\n },\n fields\n };\n modelArgsInputObjectTypes.push(modelArgsInputObjectType);\n }\n\n return modelArgsInputObjectTypes;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"modelArgs-helpers.mjs","names":["modelArgsInputObjectTypes: DMMF.InputType[]","fields: DMMF.SchemaArg[]","selectField: DMMF.SchemaArg","includeField: DMMF.SchemaArg","modelArgsInputObjectType: DMMF.InputType"],"sources":["../../src/zod/modelArgs-helpers.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 License, and is\n free for commercial and private use. For more information, please visit\n our licensing page.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/stryke\n Documentation: https://stormsoftware.com/projects/stryke/docs\n Contact: https://stormsoftware.com/contact\n License: https://stormsoftware.com/projects/stryke/license\n\n ------------------------------------------------------------------- */\n\nimport type { DMMF } from \"@prisma/generator-helper\";\nimport { checkModelHasModelRelation } from \"./model-helpers\";\n\nexport function addMissingInputObjectTypesForModelArgs(\n inputObjectTypes: DMMF.InputType[],\n models: DMMF.Model[],\n isGenerateSelect: boolean,\n isGenerateInclude: boolean\n) {\n const modelArgsInputObjectTypes = generateModelArgsInputObjectTypes(\n models,\n isGenerateSelect,\n isGenerateInclude\n );\n\n for (const modelArgsInputObjectType of modelArgsInputObjectTypes) {\n inputObjectTypes.push(modelArgsInputObjectType);\n }\n}\nfunction generateModelArgsInputObjectTypes(\n models: DMMF.Model[],\n isGenerateSelect: boolean,\n isGenerateInclude: boolean\n) {\n const modelArgsInputObjectTypes: DMMF.InputType[] = [];\n for (const model of models) {\n const { name: modelName } = model;\n const fields: DMMF.SchemaArg[] = [];\n\n if (isGenerateSelect) {\n const selectField: DMMF.SchemaArg = {\n name: \"select\",\n isRequired: false,\n isNullable: false,\n inputTypes: [\n {\n isList: false,\n type: `${modelName}Select`,\n location: \"inputObjectTypes\",\n namespace: \"prisma\"\n }\n ]\n };\n fields.push(selectField);\n }\n\n const hasRelationToAnotherModel = checkModelHasModelRelation(model);\n\n if (isGenerateInclude && hasRelationToAnotherModel) {\n const includeField: DMMF.SchemaArg = {\n name: \"include\",\n isRequired: false,\n isNullable: false,\n inputTypes: [\n {\n isList: false,\n type: `${modelName}Include`,\n location: \"inputObjectTypes\",\n namespace: \"prisma\"\n }\n ]\n };\n fields.push(includeField);\n }\n\n const modelArgsInputObjectType: DMMF.InputType = {\n name: `${modelName}DefaultArgs`,\n constraints: {\n maxNumFields: null,\n minNumFields: null\n },\n fields\n };\n modelArgsInputObjectTypes.push(modelArgsInputObjectType);\n }\n\n return modelArgsInputObjectTypes;\n}\n"],"mappings":";;;AAoBA,SAAgB,uCACd,kBACA,QACA,kBACA,mBACA;CACA,MAAM,4BAA4B,kCAChC,QACA,kBACA,kBACD;AAED,MAAK,MAAM,4BAA4B,0BACrC,kBAAiB,KAAK,yBAAyB;;AAGnD,SAAS,kCACP,QACA,kBACA,mBACA;CACA,MAAMA,4BAA8C,EAAE;AACtD,MAAK,MAAM,SAAS,QAAQ;EAC1B,MAAM,EAAE,MAAM,cAAc;EAC5B,MAAMC,SAA2B,EAAE;AAEnC,MAAI,kBAAkB;GACpB,MAAMC,cAA8B;IAClC,MAAM;IACN,YAAY;IACZ,YAAY;IACZ,YAAY,CACV;KACE,QAAQ;KACR,MAAM,GAAG,UAAU;KACnB,UAAU;KACV,WAAW;KACZ,CACF;IACF;AACD,UAAO,KAAK,YAAY;;EAG1B,MAAM,4BAA4B,2BAA2B,MAAM;AAEnE,MAAI,qBAAqB,2BAA2B;GAClD,MAAMC,eAA+B;IACnC,MAAM;IACN,YAAY;IACZ,YAAY;IACZ,YAAY,CACV;KACE,QAAQ;KACR,MAAM,GAAG,UAAU;KACnB,UAAU;KACV,WAAW;KACZ,CACF;IACF;AACD,UAAO,KAAK,aAAa;;EAG3B,MAAMC,2BAA2C;GAC/C,MAAM,GAAG,UAAU;GACnB,aAAa;IACX,cAAc;IACd,cAAc;IACf;GACD;GACD;AACD,4BAA0B,KAAK,yBAAyB;;AAG1D,QAAO"}
|
|
@@ -1 +1,49 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_transformer = require('./transformer.cjs');
|
|
2
|
+
|
|
3
|
+
//#region src/zod/mongodb-helpers.ts
|
|
4
|
+
function addMissingInputObjectTypesForMongoDbRawOpsAndQueries(modelOperations, outputObjectTypes, inputObjectTypes) {
|
|
5
|
+
require_transformer.default.rawOpsMap = resolveMongoDbRawOperations(modelOperations) ?? {};
|
|
6
|
+
const mongoDbRawQueryInputObjectTypes = resolveMongoDbRawQueryInputObjectTypes(outputObjectTypes);
|
|
7
|
+
for (const mongoDbRawQueryInputType of mongoDbRawQueryInputObjectTypes) inputObjectTypes.push(mongoDbRawQueryInputType);
|
|
8
|
+
}
|
|
9
|
+
function resolveMongoDbRawOperations(modelOperations) {
|
|
10
|
+
const rawOpsMap = {};
|
|
11
|
+
const rawOpsNames = [...new Set(modelOperations.reduce((result, current) => {
|
|
12
|
+
Object.keys(current)?.forEach((key) => {
|
|
13
|
+
if (key.includes("Raw")) result.push(key);
|
|
14
|
+
});
|
|
15
|
+
return result;
|
|
16
|
+
}, []))];
|
|
17
|
+
const modelNames = modelOperations.map((item) => item.model);
|
|
18
|
+
rawOpsNames.forEach((opName) => {
|
|
19
|
+
modelNames.forEach((modelName) => {
|
|
20
|
+
const isFind = opName === "findRaw";
|
|
21
|
+
const opWithModel = `${opName.replace("Raw", "")}${modelName}Raw`;
|
|
22
|
+
rawOpsMap[opWithModel] = isFind ? `${modelName}FindRawArgs` : `${modelName}AggregateRawArgs`;
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
return rawOpsMap;
|
|
26
|
+
}
|
|
27
|
+
function resolveMongoDbRawQueryInputObjectTypes(outputObjectTypes) {
|
|
28
|
+
return getMongoDbRawQueries(outputObjectTypes).map((item) => ({
|
|
29
|
+
name: item.name,
|
|
30
|
+
constraints: {
|
|
31
|
+
maxNumFields: null,
|
|
32
|
+
minNumFields: null
|
|
33
|
+
},
|
|
34
|
+
fields: item.args.map((arg) => ({
|
|
35
|
+
name: arg.name,
|
|
36
|
+
isRequired: arg.isRequired,
|
|
37
|
+
isNullable: arg.isNullable,
|
|
38
|
+
inputTypes: arg.inputTypes
|
|
39
|
+
}))
|
|
40
|
+
}));
|
|
41
|
+
}
|
|
42
|
+
function getMongoDbRawQueries(outputObjectTypes) {
|
|
43
|
+
return outputObjectTypes.filter((item) => item.name === "Query")?.[0].fields.filter((field) => field.name.includes("Raw")) ?? [];
|
|
44
|
+
}
|
|
45
|
+
const isMongodbRawOp = (name) => /find[\s\S]*?Raw/.test(name) || /aggregate[\s\S]*?Raw/.test(name);
|
|
46
|
+
|
|
47
|
+
//#endregion
|
|
48
|
+
exports.addMissingInputObjectTypesForMongoDbRawOpsAndQueries = addMissingInputObjectTypesForMongoDbRawOpsAndQueries;
|
|
49
|
+
exports.isMongodbRawOp = isMongodbRawOp;
|
|
@@ -1,2 +1,49 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Transformer from "./transformer.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/zod/mongodb-helpers.ts
|
|
4
|
+
function addMissingInputObjectTypesForMongoDbRawOpsAndQueries(modelOperations, outputObjectTypes, inputObjectTypes) {
|
|
5
|
+
Transformer.rawOpsMap = resolveMongoDbRawOperations(modelOperations) ?? {};
|
|
6
|
+
const mongoDbRawQueryInputObjectTypes = resolveMongoDbRawQueryInputObjectTypes(outputObjectTypes);
|
|
7
|
+
for (const mongoDbRawQueryInputType of mongoDbRawQueryInputObjectTypes) inputObjectTypes.push(mongoDbRawQueryInputType);
|
|
8
|
+
}
|
|
9
|
+
function resolveMongoDbRawOperations(modelOperations) {
|
|
10
|
+
const rawOpsMap = {};
|
|
11
|
+
const rawOpsNames = [...new Set(modelOperations.reduce((result, current) => {
|
|
12
|
+
Object.keys(current)?.forEach((key) => {
|
|
13
|
+
if (key.includes("Raw")) result.push(key);
|
|
14
|
+
});
|
|
15
|
+
return result;
|
|
16
|
+
}, []))];
|
|
17
|
+
const modelNames = modelOperations.map((item) => item.model);
|
|
18
|
+
rawOpsNames.forEach((opName) => {
|
|
19
|
+
modelNames.forEach((modelName) => {
|
|
20
|
+
const isFind = opName === "findRaw";
|
|
21
|
+
const opWithModel = `${opName.replace("Raw", "")}${modelName}Raw`;
|
|
22
|
+
rawOpsMap[opWithModel] = isFind ? `${modelName}FindRawArgs` : `${modelName}AggregateRawArgs`;
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
return rawOpsMap;
|
|
26
|
+
}
|
|
27
|
+
function resolveMongoDbRawQueryInputObjectTypes(outputObjectTypes) {
|
|
28
|
+
return getMongoDbRawQueries(outputObjectTypes).map((item) => ({
|
|
29
|
+
name: item.name,
|
|
30
|
+
constraints: {
|
|
31
|
+
maxNumFields: null,
|
|
32
|
+
minNumFields: null
|
|
33
|
+
},
|
|
34
|
+
fields: item.args.map((arg) => ({
|
|
35
|
+
name: arg.name,
|
|
36
|
+
isRequired: arg.isRequired,
|
|
37
|
+
isNullable: arg.isNullable,
|
|
38
|
+
inputTypes: arg.inputTypes
|
|
39
|
+
}))
|
|
40
|
+
}));
|
|
41
|
+
}
|
|
42
|
+
function getMongoDbRawQueries(outputObjectTypes) {
|
|
43
|
+
return outputObjectTypes.filter((item) => item.name === "Query")?.[0].fields.filter((field) => field.name.includes("Raw")) ?? [];
|
|
44
|
+
}
|
|
45
|
+
const isMongodbRawOp = (name) => /find[\s\S]*?Raw/.test(name) || /aggregate[\s\S]*?Raw/.test(name);
|
|
46
|
+
|
|
47
|
+
//#endregion
|
|
48
|
+
export { addMissingInputObjectTypesForMongoDbRawOpsAndQueries, isMongodbRawOp };
|
|
2
49
|
//# sourceMappingURL=mongodb-helpers.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongodb-helpers.mjs","names":["rawOpsMap: { [name: string]: string }"],"sources":["../../src/zod/mongodb-helpers.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 License, and is\n free for commercial and private use. For more information, please visit\n our licensing page.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/stryke\n Documentation: https://stormsoftware.com/projects/stryke/docs\n Contact: https://stormsoftware.com/contact\n License: https://stormsoftware.com/projects/stryke/license\n\n ------------------------------------------------------------------- */\n\nimport type { DMMF } from \"@prisma/generator-helper\";\nimport Transformer from \"./transformer\";\n\nexport function addMissingInputObjectTypesForMongoDbRawOpsAndQueries(\n modelOperations: DMMF.ModelMapping[],\n outputObjectTypes: DMMF.OutputType[],\n inputObjectTypes: DMMF.InputType[]\n) {\n const rawOpsMap = resolveMongoDbRawOperations(modelOperations);\n Transformer.rawOpsMap = rawOpsMap ?? {};\n\n const mongoDbRawQueryInputObjectTypes =\n resolveMongoDbRawQueryInputObjectTypes(outputObjectTypes);\n for (const mongoDbRawQueryInputType of mongoDbRawQueryInputObjectTypes) {\n inputObjectTypes.push(mongoDbRawQueryInputType);\n }\n}\n\nfunction resolveMongoDbRawOperations(modelOperations: DMMF.ModelMapping[]) {\n const rawOpsMap: { [name: string]: string } = {};\n const rawOpsNames = [\n ...new Set(\n modelOperations.reduce<string[]>((result, current) => {\n const keys = Object.keys(current);\n keys?.forEach(key => {\n if (key.includes(\"Raw\")) {\n result.push(key);\n }\n });\n return result;\n }, [])\n )\n ];\n\n const modelNames = modelOperations.map(item => item.model);\n\n rawOpsNames.forEach(opName => {\n modelNames.forEach(modelName => {\n const isFind = opName === \"findRaw\";\n const opWithModel = `${opName.replace(\"Raw\", \"\")}${modelName}Raw`;\n rawOpsMap[opWithModel] = isFind\n ? `${modelName}FindRawArgs`\n : `${modelName}AggregateRawArgs`;\n });\n });\n\n return rawOpsMap;\n}\n\nfunction resolveMongoDbRawQueryInputObjectTypes(\n outputObjectTypes: DMMF.OutputType[]\n) {\n const mongoDbRawQueries = getMongoDbRawQueries(outputObjectTypes);\n const mongoDbRawQueryInputObjectTypes = mongoDbRawQueries.map(item => ({\n name: item.name,\n constraints: {\n maxNumFields: null,\n minNumFields: null\n },\n fields: item.args.map(arg => ({\n name: arg.name,\n isRequired: arg.isRequired,\n isNullable: arg.isNullable,\n inputTypes: arg.inputTypes\n }))\n }));\n\n return mongoDbRawQueryInputObjectTypes;\n}\n\nfunction getMongoDbRawQueries(outputObjectTypes: DMMF.OutputType[]) {\n const queryOutputTypes = outputObjectTypes.filter(\n item => item.name === \"Query\"\n );\n\n const mongodbRawQueries =\n queryOutputTypes?.[0]!.fields.filter(field => field.name.includes(\"Raw\")) ??\n [];\n\n return mongodbRawQueries;\n}\n\nexport const isMongodbRawOp = (name: string) =>\n /find[\\s\\S]*?Raw/.test(name) || /aggregate[\\s\\S]*?Raw/.test(name);\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"mongodb-helpers.mjs","names":["rawOpsMap: { [name: string]: string }"],"sources":["../../src/zod/mongodb-helpers.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 License, and is\n free for commercial and private use. For more information, please visit\n our licensing page.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/stryke\n Documentation: https://stormsoftware.com/projects/stryke/docs\n Contact: https://stormsoftware.com/contact\n License: https://stormsoftware.com/projects/stryke/license\n\n ------------------------------------------------------------------- */\n\nimport type { DMMF } from \"@prisma/generator-helper\";\nimport Transformer from \"./transformer\";\n\nexport function addMissingInputObjectTypesForMongoDbRawOpsAndQueries(\n modelOperations: DMMF.ModelMapping[],\n outputObjectTypes: DMMF.OutputType[],\n inputObjectTypes: DMMF.InputType[]\n) {\n const rawOpsMap = resolveMongoDbRawOperations(modelOperations);\n Transformer.rawOpsMap = rawOpsMap ?? {};\n\n const mongoDbRawQueryInputObjectTypes =\n resolveMongoDbRawQueryInputObjectTypes(outputObjectTypes);\n for (const mongoDbRawQueryInputType of mongoDbRawQueryInputObjectTypes) {\n inputObjectTypes.push(mongoDbRawQueryInputType);\n }\n}\n\nfunction resolveMongoDbRawOperations(modelOperations: DMMF.ModelMapping[]) {\n const rawOpsMap: { [name: string]: string } = {};\n const rawOpsNames = [\n ...new Set(\n modelOperations.reduce<string[]>((result, current) => {\n const keys = Object.keys(current);\n keys?.forEach(key => {\n if (key.includes(\"Raw\")) {\n result.push(key);\n }\n });\n return result;\n }, [])\n )\n ];\n\n const modelNames = modelOperations.map(item => item.model);\n\n rawOpsNames.forEach(opName => {\n modelNames.forEach(modelName => {\n const isFind = opName === \"findRaw\";\n const opWithModel = `${opName.replace(\"Raw\", \"\")}${modelName}Raw`;\n rawOpsMap[opWithModel] = isFind\n ? `${modelName}FindRawArgs`\n : `${modelName}AggregateRawArgs`;\n });\n });\n\n return rawOpsMap;\n}\n\nfunction resolveMongoDbRawQueryInputObjectTypes(\n outputObjectTypes: DMMF.OutputType[]\n) {\n const mongoDbRawQueries = getMongoDbRawQueries(outputObjectTypes);\n const mongoDbRawQueryInputObjectTypes = mongoDbRawQueries.map(item => ({\n name: item.name,\n constraints: {\n maxNumFields: null,\n minNumFields: null\n },\n fields: item.args.map(arg => ({\n name: arg.name,\n isRequired: arg.isRequired,\n isNullable: arg.isNullable,\n inputTypes: arg.inputTypes\n }))\n }));\n\n return mongoDbRawQueryInputObjectTypes;\n}\n\nfunction getMongoDbRawQueries(outputObjectTypes: DMMF.OutputType[]) {\n const queryOutputTypes = outputObjectTypes.filter(\n item => item.name === \"Query\"\n );\n\n const mongodbRawQueries =\n queryOutputTypes?.[0]!.fields.filter(field => field.name.includes(\"Raw\")) ??\n [];\n\n return mongodbRawQueries;\n}\n\nexport const isMongodbRawOp = (name: string) =>\n /find[\\s\\S]*?Raw/.test(name) || /aggregate[\\s\\S]*?Raw/.test(name);\n"],"mappings":";;;AAoBA,SAAgB,qDACd,iBACA,mBACA,kBACA;AAEA,aAAY,YADM,4BAA4B,gBAAgB,IACzB,EAAE;CAEvC,MAAM,kCACJ,uCAAuC,kBAAkB;AAC3D,MAAK,MAAM,4BAA4B,gCACrC,kBAAiB,KAAK,yBAAyB;;AAInD,SAAS,4BAA4B,iBAAsC;CACzE,MAAMA,YAAwC,EAAE;CAChD,MAAM,cAAc,CAClB,GAAG,IAAI,IACL,gBAAgB,QAAkB,QAAQ,YAAY;AAEpD,EADa,OAAO,KAAK,QAAQ,EAC3B,SAAQ,QAAO;AACnB,OAAI,IAAI,SAAS,MAAM,CACrB,QAAO,KAAK,IAAI;IAElB;AACF,SAAO;IACN,EAAE,CAAC,CACP,CACF;CAED,MAAM,aAAa,gBAAgB,KAAI,SAAQ,KAAK,MAAM;AAE1D,aAAY,SAAQ,WAAU;AAC5B,aAAW,SAAQ,cAAa;GAC9B,MAAM,SAAS,WAAW;GAC1B,MAAM,cAAc,GAAG,OAAO,QAAQ,OAAO,GAAG,GAAG,UAAU;AAC7D,aAAU,eAAe,SACrB,GAAG,UAAU,eACb,GAAG,UAAU;IACjB;GACF;AAEF,QAAO;;AAGT,SAAS,uCACP,mBACA;AAgBA,QAf0B,qBAAqB,kBAAkB,CACP,KAAI,UAAS;EACrE,MAAM,KAAK;EACX,aAAa;GACX,cAAc;GACd,cAAc;GACf;EACD,QAAQ,KAAK,KAAK,KAAI,SAAQ;GAC5B,MAAM,IAAI;GACV,YAAY,IAAI;GAChB,YAAY,IAAI;GAChB,YAAY,IAAI;GACjB,EAAE;EACJ,EAAE;;AAKL,SAAS,qBAAqB,mBAAsC;AASlE,QARyB,kBAAkB,QACzC,SAAQ,KAAK,SAAS,QACvB,GAGoB,GAAI,OAAO,QAAO,UAAS,MAAM,KAAK,SAAS,MAAM,CAAC,IACzE,EAAE;;AAKN,MAAa,kBAAkB,SAC7B,kBAAkB,KAAK,KAAK,IAAI,uBAAuB,KAAK,KAAK"}
|
|
@@ -1 +1,128 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_model_helpers = require('./model-helpers.cjs');
|
|
2
|
+
|
|
3
|
+
//#region src/zod/select-helpers.ts
|
|
4
|
+
function addMissingInputObjectTypesForSelect(inputObjectTypes, outputObjectTypes, models) {
|
|
5
|
+
const modelCountOutputTypes = getModelCountOutputTypes(outputObjectTypes);
|
|
6
|
+
const generatedInputObjectTypes = [
|
|
7
|
+
generateModelCountOutputTypeSelectInputObjectTypes(modelCountOutputTypes),
|
|
8
|
+
generateModelCountOutputTypeArgsInputObjectTypes(modelCountOutputTypes),
|
|
9
|
+
generateModelSelectInputObjectTypes(models)
|
|
10
|
+
].flat();
|
|
11
|
+
for (const inputObjectType of generatedInputObjectTypes) inputObjectTypes.push(inputObjectType);
|
|
12
|
+
}
|
|
13
|
+
function getModelCountOutputTypes(outputObjectTypes) {
|
|
14
|
+
return outputObjectTypes.filter(({ name }) => name.includes("CountOutputType"));
|
|
15
|
+
}
|
|
16
|
+
function generateModelCountOutputTypeSelectInputObjectTypes(modelCountOutputTypes) {
|
|
17
|
+
const modelCountOutputTypeSelectInputObjectTypes = [];
|
|
18
|
+
for (const modelCountOutputType of modelCountOutputTypes) {
|
|
19
|
+
const { name: modelCountOutputTypeName, fields: modelCountOutputTypeFields } = modelCountOutputType;
|
|
20
|
+
const modelCountOutputTypeSelectInputObjectType = {
|
|
21
|
+
name: `${modelCountOutputTypeName}Select`,
|
|
22
|
+
constraints: {
|
|
23
|
+
maxNumFields: null,
|
|
24
|
+
minNumFields: null
|
|
25
|
+
},
|
|
26
|
+
fields: modelCountOutputTypeFields.map(({ name }) => ({
|
|
27
|
+
name,
|
|
28
|
+
isRequired: false,
|
|
29
|
+
isNullable: false,
|
|
30
|
+
inputTypes: [{
|
|
31
|
+
isList: false,
|
|
32
|
+
type: `Boolean`,
|
|
33
|
+
location: "scalar"
|
|
34
|
+
}]
|
|
35
|
+
}))
|
|
36
|
+
};
|
|
37
|
+
modelCountOutputTypeSelectInputObjectTypes.push(modelCountOutputTypeSelectInputObjectType);
|
|
38
|
+
}
|
|
39
|
+
return modelCountOutputTypeSelectInputObjectTypes;
|
|
40
|
+
}
|
|
41
|
+
function generateModelCountOutputTypeArgsInputObjectTypes(modelCountOutputTypes) {
|
|
42
|
+
const modelCountOutputTypeArgsInputObjectTypes = [];
|
|
43
|
+
for (const modelCountOutputType of modelCountOutputTypes) {
|
|
44
|
+
const { name: modelCountOutputTypeName } = modelCountOutputType;
|
|
45
|
+
const modelCountOutputTypeArgsInputObjectType = {
|
|
46
|
+
name: `${modelCountOutputTypeName}DefaultArgs`,
|
|
47
|
+
constraints: {
|
|
48
|
+
maxNumFields: null,
|
|
49
|
+
minNumFields: null
|
|
50
|
+
},
|
|
51
|
+
fields: [{
|
|
52
|
+
name: "select",
|
|
53
|
+
isRequired: false,
|
|
54
|
+
isNullable: false,
|
|
55
|
+
inputTypes: [{
|
|
56
|
+
isList: false,
|
|
57
|
+
type: `${modelCountOutputTypeName}Select`,
|
|
58
|
+
location: "inputObjectTypes",
|
|
59
|
+
namespace: "prisma"
|
|
60
|
+
}]
|
|
61
|
+
}]
|
|
62
|
+
};
|
|
63
|
+
modelCountOutputTypeArgsInputObjectTypes.push(modelCountOutputTypeArgsInputObjectType);
|
|
64
|
+
}
|
|
65
|
+
return modelCountOutputTypeArgsInputObjectTypes;
|
|
66
|
+
}
|
|
67
|
+
function generateModelSelectInputObjectTypes(models) {
|
|
68
|
+
const modelSelectInputObjectTypes = [];
|
|
69
|
+
for (const model of models) {
|
|
70
|
+
const { name: modelName, fields: modelFields } = model;
|
|
71
|
+
const fields = [];
|
|
72
|
+
for (const modelField of modelFields) {
|
|
73
|
+
const { name: modelFieldName, isList, type } = modelField;
|
|
74
|
+
const isRelationField = require_model_helpers.checkIsModelRelationField(modelField);
|
|
75
|
+
const field = {
|
|
76
|
+
name: modelFieldName,
|
|
77
|
+
isRequired: false,
|
|
78
|
+
isNullable: false,
|
|
79
|
+
inputTypes: [{
|
|
80
|
+
isList: false,
|
|
81
|
+
type: "Boolean",
|
|
82
|
+
location: "scalar"
|
|
83
|
+
}]
|
|
84
|
+
};
|
|
85
|
+
if (isRelationField) {
|
|
86
|
+
const schemaArgInputType = {
|
|
87
|
+
isList: false,
|
|
88
|
+
type: isList ? `${type}FindManyArgs` : `${type}DefaultArgs`,
|
|
89
|
+
location: "inputObjectTypes",
|
|
90
|
+
namespace: "prisma"
|
|
91
|
+
};
|
|
92
|
+
field.inputTypes.push(schemaArgInputType);
|
|
93
|
+
}
|
|
94
|
+
fields.push(field);
|
|
95
|
+
}
|
|
96
|
+
if (require_model_helpers.checkModelHasManyModelRelation(model)) {
|
|
97
|
+
const _countField = {
|
|
98
|
+
name: "_count",
|
|
99
|
+
isRequired: false,
|
|
100
|
+
isNullable: false,
|
|
101
|
+
inputTypes: [{
|
|
102
|
+
isList: false,
|
|
103
|
+
type: "Boolean",
|
|
104
|
+
location: "scalar"
|
|
105
|
+
}, {
|
|
106
|
+
isList: false,
|
|
107
|
+
type: `${modelName}CountOutputTypeDefaultArgs`,
|
|
108
|
+
location: "inputObjectTypes",
|
|
109
|
+
namespace: "prisma"
|
|
110
|
+
}]
|
|
111
|
+
};
|
|
112
|
+
fields.push(_countField);
|
|
113
|
+
}
|
|
114
|
+
const modelSelectInputObjectType = {
|
|
115
|
+
name: `${modelName}Select`,
|
|
116
|
+
constraints: {
|
|
117
|
+
maxNumFields: null,
|
|
118
|
+
minNumFields: null
|
|
119
|
+
},
|
|
120
|
+
fields
|
|
121
|
+
};
|
|
122
|
+
modelSelectInputObjectTypes.push(modelSelectInputObjectType);
|
|
123
|
+
}
|
|
124
|
+
return modelSelectInputObjectTypes;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
//#endregion
|
|
128
|
+
exports.addMissingInputObjectTypesForSelect = addMissingInputObjectTypesForSelect;
|
|
@@ -1,2 +1,129 @@
|
|
|
1
|
-
import{checkIsModelRelationField
|
|
1
|
+
import { checkIsModelRelationField, checkModelHasManyModelRelation } from "./model-helpers.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/zod/select-helpers.ts
|
|
4
|
+
function addMissingInputObjectTypesForSelect(inputObjectTypes, outputObjectTypes, models) {
|
|
5
|
+
const modelCountOutputTypes = getModelCountOutputTypes(outputObjectTypes);
|
|
6
|
+
const generatedInputObjectTypes = [
|
|
7
|
+
generateModelCountOutputTypeSelectInputObjectTypes(modelCountOutputTypes),
|
|
8
|
+
generateModelCountOutputTypeArgsInputObjectTypes(modelCountOutputTypes),
|
|
9
|
+
generateModelSelectInputObjectTypes(models)
|
|
10
|
+
].flat();
|
|
11
|
+
for (const inputObjectType of generatedInputObjectTypes) inputObjectTypes.push(inputObjectType);
|
|
12
|
+
}
|
|
13
|
+
function getModelCountOutputTypes(outputObjectTypes) {
|
|
14
|
+
return outputObjectTypes.filter(({ name }) => name.includes("CountOutputType"));
|
|
15
|
+
}
|
|
16
|
+
function generateModelCountOutputTypeSelectInputObjectTypes(modelCountOutputTypes) {
|
|
17
|
+
const modelCountOutputTypeSelectInputObjectTypes = [];
|
|
18
|
+
for (const modelCountOutputType of modelCountOutputTypes) {
|
|
19
|
+
const { name: modelCountOutputTypeName, fields: modelCountOutputTypeFields } = modelCountOutputType;
|
|
20
|
+
const modelCountOutputTypeSelectInputObjectType = {
|
|
21
|
+
name: `${modelCountOutputTypeName}Select`,
|
|
22
|
+
constraints: {
|
|
23
|
+
maxNumFields: null,
|
|
24
|
+
minNumFields: null
|
|
25
|
+
},
|
|
26
|
+
fields: modelCountOutputTypeFields.map(({ name }) => ({
|
|
27
|
+
name,
|
|
28
|
+
isRequired: false,
|
|
29
|
+
isNullable: false,
|
|
30
|
+
inputTypes: [{
|
|
31
|
+
isList: false,
|
|
32
|
+
type: `Boolean`,
|
|
33
|
+
location: "scalar"
|
|
34
|
+
}]
|
|
35
|
+
}))
|
|
36
|
+
};
|
|
37
|
+
modelCountOutputTypeSelectInputObjectTypes.push(modelCountOutputTypeSelectInputObjectType);
|
|
38
|
+
}
|
|
39
|
+
return modelCountOutputTypeSelectInputObjectTypes;
|
|
40
|
+
}
|
|
41
|
+
function generateModelCountOutputTypeArgsInputObjectTypes(modelCountOutputTypes) {
|
|
42
|
+
const modelCountOutputTypeArgsInputObjectTypes = [];
|
|
43
|
+
for (const modelCountOutputType of modelCountOutputTypes) {
|
|
44
|
+
const { name: modelCountOutputTypeName } = modelCountOutputType;
|
|
45
|
+
const modelCountOutputTypeArgsInputObjectType = {
|
|
46
|
+
name: `${modelCountOutputTypeName}DefaultArgs`,
|
|
47
|
+
constraints: {
|
|
48
|
+
maxNumFields: null,
|
|
49
|
+
minNumFields: null
|
|
50
|
+
},
|
|
51
|
+
fields: [{
|
|
52
|
+
name: "select",
|
|
53
|
+
isRequired: false,
|
|
54
|
+
isNullable: false,
|
|
55
|
+
inputTypes: [{
|
|
56
|
+
isList: false,
|
|
57
|
+
type: `${modelCountOutputTypeName}Select`,
|
|
58
|
+
location: "inputObjectTypes",
|
|
59
|
+
namespace: "prisma"
|
|
60
|
+
}]
|
|
61
|
+
}]
|
|
62
|
+
};
|
|
63
|
+
modelCountOutputTypeArgsInputObjectTypes.push(modelCountOutputTypeArgsInputObjectType);
|
|
64
|
+
}
|
|
65
|
+
return modelCountOutputTypeArgsInputObjectTypes;
|
|
66
|
+
}
|
|
67
|
+
function generateModelSelectInputObjectTypes(models) {
|
|
68
|
+
const modelSelectInputObjectTypes = [];
|
|
69
|
+
for (const model of models) {
|
|
70
|
+
const { name: modelName, fields: modelFields } = model;
|
|
71
|
+
const fields = [];
|
|
72
|
+
for (const modelField of modelFields) {
|
|
73
|
+
const { name: modelFieldName, isList, type } = modelField;
|
|
74
|
+
const isRelationField = checkIsModelRelationField(modelField);
|
|
75
|
+
const field = {
|
|
76
|
+
name: modelFieldName,
|
|
77
|
+
isRequired: false,
|
|
78
|
+
isNullable: false,
|
|
79
|
+
inputTypes: [{
|
|
80
|
+
isList: false,
|
|
81
|
+
type: "Boolean",
|
|
82
|
+
location: "scalar"
|
|
83
|
+
}]
|
|
84
|
+
};
|
|
85
|
+
if (isRelationField) {
|
|
86
|
+
const schemaArgInputType = {
|
|
87
|
+
isList: false,
|
|
88
|
+
type: isList ? `${type}FindManyArgs` : `${type}DefaultArgs`,
|
|
89
|
+
location: "inputObjectTypes",
|
|
90
|
+
namespace: "prisma"
|
|
91
|
+
};
|
|
92
|
+
field.inputTypes.push(schemaArgInputType);
|
|
93
|
+
}
|
|
94
|
+
fields.push(field);
|
|
95
|
+
}
|
|
96
|
+
if (checkModelHasManyModelRelation(model)) {
|
|
97
|
+
const _countField = {
|
|
98
|
+
name: "_count",
|
|
99
|
+
isRequired: false,
|
|
100
|
+
isNullable: false,
|
|
101
|
+
inputTypes: [{
|
|
102
|
+
isList: false,
|
|
103
|
+
type: "Boolean",
|
|
104
|
+
location: "scalar"
|
|
105
|
+
}, {
|
|
106
|
+
isList: false,
|
|
107
|
+
type: `${modelName}CountOutputTypeDefaultArgs`,
|
|
108
|
+
location: "inputObjectTypes",
|
|
109
|
+
namespace: "prisma"
|
|
110
|
+
}]
|
|
111
|
+
};
|
|
112
|
+
fields.push(_countField);
|
|
113
|
+
}
|
|
114
|
+
const modelSelectInputObjectType = {
|
|
115
|
+
name: `${modelName}Select`,
|
|
116
|
+
constraints: {
|
|
117
|
+
maxNumFields: null,
|
|
118
|
+
minNumFields: null
|
|
119
|
+
},
|
|
120
|
+
fields
|
|
121
|
+
};
|
|
122
|
+
modelSelectInputObjectTypes.push(modelSelectInputObjectType);
|
|
123
|
+
}
|
|
124
|
+
return modelSelectInputObjectTypes;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
//#endregion
|
|
128
|
+
export { addMissingInputObjectTypesForSelect };
|
|
2
129
|
//# sourceMappingURL=select-helpers.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-helpers.mjs","names":["modelCountOutputTypeSelectInputObjectTypes: DMMF.InputType[]","modelCountOutputTypeSelectInputObjectType: DMMF.InputType","modelCountOutputTypeArgsInputObjectTypes: DMMF.InputType[]","modelCountOutputTypeArgsInputObjectType: DMMF.InputType","modelSelectInputObjectTypes: DMMF.InputType[]","fields: DMMF.SchemaArg[]","field: Writeable<DMMF.SchemaArg>","schemaArgInputType: ArrayValues<SchemaArgInputTypes>","_countField: DMMF.SchemaArg","modelSelectInputObjectType: DMMF.InputType"],"sources":["../../src/zod/select-helpers.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 License, and is\n free for commercial and private use. For more information, please visit\n our licensing page.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/stryke\n Documentation: https://stormsoftware.com/projects/stryke/docs\n Contact: https://stormsoftware.com/contact\n License: https://stormsoftware.com/projects/stryke/license\n\n ------------------------------------------------------------------- */\n\nimport type { DMMF } from \"@prisma/generator-helper\";\nimport type { ArrayValues } from \"@stryke/types/array\";\nimport type { SchemaArgInputTypes, Writeable } from \"../types\";\nimport {\n checkIsModelRelationField,\n checkModelHasManyModelRelation\n} from \"./model-helpers\";\n\nexport function addMissingInputObjectTypesForSelect(\n inputObjectTypes: DMMF.InputType[],\n outputObjectTypes: DMMF.OutputType[],\n models: DMMF.Model[]\n) {\n // generate input object types necessary to support ModelSelect._count\n const modelCountOutputTypes = getModelCountOutputTypes(outputObjectTypes);\n const modelCountOutputTypeSelectInputObjectTypes =\n generateModelCountOutputTypeSelectInputObjectTypes(modelCountOutputTypes);\n const modelCountOutputTypeArgsInputObjectTypes =\n generateModelCountOutputTypeArgsInputObjectTypes(modelCountOutputTypes);\n\n const modelSelectInputObjectTypes =\n generateModelSelectInputObjectTypes(models);\n\n const generatedInputObjectTypes = [\n modelCountOutputTypeSelectInputObjectTypes,\n modelCountOutputTypeArgsInputObjectTypes,\n modelSelectInputObjectTypes\n ].flat();\n\n for (const inputObjectType of generatedInputObjectTypes) {\n inputObjectTypes.push(inputObjectType);\n }\n}\n\nfunction getModelCountOutputTypes(outputObjectTypes: DMMF.OutputType[]) {\n return outputObjectTypes.filter(({ name }) =>\n name.includes(\"CountOutputType\")\n );\n}\n\nfunction generateModelCountOutputTypeSelectInputObjectTypes(\n modelCountOutputTypes: DMMF.OutputType[]\n) {\n const modelCountOutputTypeSelectInputObjectTypes: DMMF.InputType[] = [];\n for (const modelCountOutputType of modelCountOutputTypes) {\n const {\n name: modelCountOutputTypeName,\n fields: modelCountOutputTypeFields\n } = modelCountOutputType;\n const modelCountOutputTypeSelectInputObjectType: DMMF.InputType = {\n name: `${modelCountOutputTypeName}Select`,\n constraints: {\n maxNumFields: null,\n minNumFields: null\n },\n fields: modelCountOutputTypeFields.map(({ name }) => ({\n name,\n isRequired: false,\n isNullable: false,\n inputTypes: [\n {\n isList: false,\n type: `Boolean`,\n location: \"scalar\"\n }\n ]\n }))\n };\n modelCountOutputTypeSelectInputObjectTypes.push(\n modelCountOutputTypeSelectInputObjectType\n );\n }\n\n return modelCountOutputTypeSelectInputObjectTypes;\n}\n\nfunction generateModelCountOutputTypeArgsInputObjectTypes(\n modelCountOutputTypes: DMMF.OutputType[]\n) {\n const modelCountOutputTypeArgsInputObjectTypes: DMMF.InputType[] = [];\n for (const modelCountOutputType of modelCountOutputTypes) {\n const { name: modelCountOutputTypeName } = modelCountOutputType;\n const modelCountOutputTypeArgsInputObjectType: DMMF.InputType = {\n name: `${modelCountOutputTypeName}DefaultArgs`,\n constraints: {\n maxNumFields: null,\n minNumFields: null\n },\n fields: [\n {\n name: \"select\",\n isRequired: false,\n isNullable: false,\n inputTypes: [\n {\n isList: false,\n type: `${modelCountOutputTypeName}Select`,\n location: \"inputObjectTypes\",\n namespace: \"prisma\"\n }\n ]\n }\n ]\n };\n modelCountOutputTypeArgsInputObjectTypes.push(\n modelCountOutputTypeArgsInputObjectType\n );\n }\n\n return modelCountOutputTypeArgsInputObjectTypes;\n}\n\nfunction generateModelSelectInputObjectTypes(models: DMMF.Model[]) {\n const modelSelectInputObjectTypes: DMMF.InputType[] = [];\n for (const model of models) {\n const { name: modelName, fields: modelFields } = model;\n const fields: DMMF.SchemaArg[] = [];\n\n for (const modelField of modelFields) {\n const { name: modelFieldName, isList, type } = modelField;\n\n const isRelationField = checkIsModelRelationField(modelField);\n\n const field: Writeable<DMMF.SchemaArg> = {\n name: modelFieldName,\n isRequired: false,\n isNullable: false,\n inputTypes: [\n { isList: false, type: \"Boolean\", location: \"scalar\" }\n ] as Writeable<DMMF.SchemaArg[\"inputTypes\"]>\n };\n\n if (isRelationField) {\n const schemaArgInputType: ArrayValues<SchemaArgInputTypes> = {\n isList: false,\n type: isList ? `${type}FindManyArgs` : `${type}DefaultArgs`,\n location: \"inputObjectTypes\",\n namespace: \"prisma\"\n };\n field.inputTypes.push(schemaArgInputType);\n }\n\n fields.push(field);\n }\n\n const hasManyRelationToAnotherModel = checkModelHasManyModelRelation(model);\n\n const shouldAddCountField = hasManyRelationToAnotherModel;\n if (shouldAddCountField) {\n const _countField: DMMF.SchemaArg = {\n name: \"_count\",\n isRequired: false,\n isNullable: false,\n inputTypes: [\n { isList: false, type: \"Boolean\", location: \"scalar\" },\n {\n isList: false,\n type: `${modelName}CountOutputTypeDefaultArgs`,\n location: \"inputObjectTypes\",\n namespace: \"prisma\"\n }\n ]\n };\n fields.push(_countField);\n }\n\n const modelSelectInputObjectType: DMMF.InputType = {\n name: `${modelName}Select`,\n constraints: {\n maxNumFields: null,\n minNumFields: null\n },\n fields\n };\n modelSelectInputObjectTypes.push(modelSelectInputObjectType);\n }\n\n return modelSelectInputObjectTypes;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"select-helpers.mjs","names":["modelCountOutputTypeSelectInputObjectTypes: DMMF.InputType[]","modelCountOutputTypeSelectInputObjectType: DMMF.InputType","modelCountOutputTypeArgsInputObjectTypes: DMMF.InputType[]","modelCountOutputTypeArgsInputObjectType: DMMF.InputType","modelSelectInputObjectTypes: DMMF.InputType[]","fields: DMMF.SchemaArg[]","field: Writeable<DMMF.SchemaArg>","schemaArgInputType: ArrayValues<SchemaArgInputTypes>","_countField: DMMF.SchemaArg","modelSelectInputObjectType: DMMF.InputType"],"sources":["../../src/zod/select-helpers.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 License, and is\n free for commercial and private use. For more information, please visit\n our licensing page.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/stryke\n Documentation: https://stormsoftware.com/projects/stryke/docs\n Contact: https://stormsoftware.com/contact\n License: https://stormsoftware.com/projects/stryke/license\n\n ------------------------------------------------------------------- */\n\nimport type { DMMF } from \"@prisma/generator-helper\";\nimport type { ArrayValues } from \"@stryke/types/array\";\nimport type { SchemaArgInputTypes, Writeable } from \"../types\";\nimport {\n checkIsModelRelationField,\n checkModelHasManyModelRelation\n} from \"./model-helpers\";\n\nexport function addMissingInputObjectTypesForSelect(\n inputObjectTypes: DMMF.InputType[],\n outputObjectTypes: DMMF.OutputType[],\n models: DMMF.Model[]\n) {\n // generate input object types necessary to support ModelSelect._count\n const modelCountOutputTypes = getModelCountOutputTypes(outputObjectTypes);\n const modelCountOutputTypeSelectInputObjectTypes =\n generateModelCountOutputTypeSelectInputObjectTypes(modelCountOutputTypes);\n const modelCountOutputTypeArgsInputObjectTypes =\n generateModelCountOutputTypeArgsInputObjectTypes(modelCountOutputTypes);\n\n const modelSelectInputObjectTypes =\n generateModelSelectInputObjectTypes(models);\n\n const generatedInputObjectTypes = [\n modelCountOutputTypeSelectInputObjectTypes,\n modelCountOutputTypeArgsInputObjectTypes,\n modelSelectInputObjectTypes\n ].flat();\n\n for (const inputObjectType of generatedInputObjectTypes) {\n inputObjectTypes.push(inputObjectType);\n }\n}\n\nfunction getModelCountOutputTypes(outputObjectTypes: DMMF.OutputType[]) {\n return outputObjectTypes.filter(({ name }) =>\n name.includes(\"CountOutputType\")\n );\n}\n\nfunction generateModelCountOutputTypeSelectInputObjectTypes(\n modelCountOutputTypes: DMMF.OutputType[]\n) {\n const modelCountOutputTypeSelectInputObjectTypes: DMMF.InputType[] = [];\n for (const modelCountOutputType of modelCountOutputTypes) {\n const {\n name: modelCountOutputTypeName,\n fields: modelCountOutputTypeFields\n } = modelCountOutputType;\n const modelCountOutputTypeSelectInputObjectType: DMMF.InputType = {\n name: `${modelCountOutputTypeName}Select`,\n constraints: {\n maxNumFields: null,\n minNumFields: null\n },\n fields: modelCountOutputTypeFields.map(({ name }) => ({\n name,\n isRequired: false,\n isNullable: false,\n inputTypes: [\n {\n isList: false,\n type: `Boolean`,\n location: \"scalar\"\n }\n ]\n }))\n };\n modelCountOutputTypeSelectInputObjectTypes.push(\n modelCountOutputTypeSelectInputObjectType\n );\n }\n\n return modelCountOutputTypeSelectInputObjectTypes;\n}\n\nfunction generateModelCountOutputTypeArgsInputObjectTypes(\n modelCountOutputTypes: DMMF.OutputType[]\n) {\n const modelCountOutputTypeArgsInputObjectTypes: DMMF.InputType[] = [];\n for (const modelCountOutputType of modelCountOutputTypes) {\n const { name: modelCountOutputTypeName } = modelCountOutputType;\n const modelCountOutputTypeArgsInputObjectType: DMMF.InputType = {\n name: `${modelCountOutputTypeName}DefaultArgs`,\n constraints: {\n maxNumFields: null,\n minNumFields: null\n },\n fields: [\n {\n name: \"select\",\n isRequired: false,\n isNullable: false,\n inputTypes: [\n {\n isList: false,\n type: `${modelCountOutputTypeName}Select`,\n location: \"inputObjectTypes\",\n namespace: \"prisma\"\n }\n ]\n }\n ]\n };\n modelCountOutputTypeArgsInputObjectTypes.push(\n modelCountOutputTypeArgsInputObjectType\n );\n }\n\n return modelCountOutputTypeArgsInputObjectTypes;\n}\n\nfunction generateModelSelectInputObjectTypes(models: DMMF.Model[]) {\n const modelSelectInputObjectTypes: DMMF.InputType[] = [];\n for (const model of models) {\n const { name: modelName, fields: modelFields } = model;\n const fields: DMMF.SchemaArg[] = [];\n\n for (const modelField of modelFields) {\n const { name: modelFieldName, isList, type } = modelField;\n\n const isRelationField = checkIsModelRelationField(modelField);\n\n const field: Writeable<DMMF.SchemaArg> = {\n name: modelFieldName,\n isRequired: false,\n isNullable: false,\n inputTypes: [\n { isList: false, type: \"Boolean\", location: \"scalar\" }\n ] as Writeable<DMMF.SchemaArg[\"inputTypes\"]>\n };\n\n if (isRelationField) {\n const schemaArgInputType: ArrayValues<SchemaArgInputTypes> = {\n isList: false,\n type: isList ? `${type}FindManyArgs` : `${type}DefaultArgs`,\n location: \"inputObjectTypes\",\n namespace: \"prisma\"\n };\n field.inputTypes.push(schemaArgInputType);\n }\n\n fields.push(field);\n }\n\n const hasManyRelationToAnotherModel = checkModelHasManyModelRelation(model);\n\n const shouldAddCountField = hasManyRelationToAnotherModel;\n if (shouldAddCountField) {\n const _countField: DMMF.SchemaArg = {\n name: \"_count\",\n isRequired: false,\n isNullable: false,\n inputTypes: [\n { isList: false, type: \"Boolean\", location: \"scalar\" },\n {\n isList: false,\n type: `${modelName}CountOutputTypeDefaultArgs`,\n location: \"inputObjectTypes\",\n namespace: \"prisma\"\n }\n ]\n };\n fields.push(_countField);\n }\n\n const modelSelectInputObjectType: DMMF.InputType = {\n name: `${modelName}Select`,\n constraints: {\n maxNumFields: null,\n minNumFields: null\n },\n fields\n };\n modelSelectInputObjectTypes.push(modelSelectInputObjectType);\n }\n\n return modelSelectInputObjectTypes;\n}\n"],"mappings":";;;AAyBA,SAAgB,oCACd,kBACA,mBACA,QACA;CAEA,MAAM,wBAAwB,yBAAyB,kBAAkB;CASzE,MAAM,4BAA4B;EAPhC,mDAAmD,sBAAsB;EAEzE,iDAAiD,sBAAsB;EAGvE,oCAAoC,OAAO;EAM5C,CAAC,MAAM;AAER,MAAK,MAAM,mBAAmB,0BAC5B,kBAAiB,KAAK,gBAAgB;;AAI1C,SAAS,yBAAyB,mBAAsC;AACtE,QAAO,kBAAkB,QAAQ,EAAE,WACjC,KAAK,SAAS,kBAAkB,CACjC;;AAGH,SAAS,mDACP,uBACA;CACA,MAAMA,6CAA+D,EAAE;AACvE,MAAK,MAAM,wBAAwB,uBAAuB;EACxD,MAAM,EACJ,MAAM,0BACN,QAAQ,+BACN;EACJ,MAAMC,4CAA4D;GAChE,MAAM,GAAG,yBAAyB;GAClC,aAAa;IACX,cAAc;IACd,cAAc;IACf;GACD,QAAQ,2BAA2B,KAAK,EAAE,YAAY;IACpD;IACA,YAAY;IACZ,YAAY;IACZ,YAAY,CACV;KACE,QAAQ;KACR,MAAM;KACN,UAAU;KACX,CACF;IACF,EAAE;GACJ;AACD,6CAA2C,KACzC,0CACD;;AAGH,QAAO;;AAGT,SAAS,iDACP,uBACA;CACA,MAAMC,2CAA6D,EAAE;AACrE,MAAK,MAAM,wBAAwB,uBAAuB;EACxD,MAAM,EAAE,MAAM,6BAA6B;EAC3C,MAAMC,0CAA0D;GAC9D,MAAM,GAAG,yBAAyB;GAClC,aAAa;IACX,cAAc;IACd,cAAc;IACf;GACD,QAAQ,CACN;IACE,MAAM;IACN,YAAY;IACZ,YAAY;IACZ,YAAY,CACV;KACE,QAAQ;KACR,MAAM,GAAG,yBAAyB;KAClC,UAAU;KACV,WAAW;KACZ,CACF;IACF,CACF;GACF;AACD,2CAAyC,KACvC,wCACD;;AAGH,QAAO;;AAGT,SAAS,oCAAoC,QAAsB;CACjE,MAAMC,8BAAgD,EAAE;AACxD,MAAK,MAAM,SAAS,QAAQ;EAC1B,MAAM,EAAE,MAAM,WAAW,QAAQ,gBAAgB;EACjD,MAAMC,SAA2B,EAAE;AAEnC,OAAK,MAAM,cAAc,aAAa;GACpC,MAAM,EAAE,MAAM,gBAAgB,QAAQ,SAAS;GAE/C,MAAM,kBAAkB,0BAA0B,WAAW;GAE7D,MAAMC,QAAmC;IACvC,MAAM;IACN,YAAY;IACZ,YAAY;IACZ,YAAY,CACV;KAAE,QAAQ;KAAO,MAAM;KAAW,UAAU;KAAU,CACvD;IACF;AAED,OAAI,iBAAiB;IACnB,MAAMC,qBAAuD;KAC3D,QAAQ;KACR,MAAM,SAAS,GAAG,KAAK,gBAAgB,GAAG,KAAK;KAC/C,UAAU;KACV,WAAW;KACZ;AACD,UAAM,WAAW,KAAK,mBAAmB;;AAG3C,UAAO,KAAK,MAAM;;AAMpB,MAHsC,+BAA+B,MAAM,EAGlD;GACvB,MAAMC,cAA8B;IAClC,MAAM;IACN,YAAY;IACZ,YAAY;IACZ,YAAY,CACV;KAAE,QAAQ;KAAO,MAAM;KAAW,UAAU;KAAU,EACtD;KACE,QAAQ;KACR,MAAM,GAAG,UAAU;KACnB,UAAU;KACV,WAAW;KACZ,CACF;IACF;AACD,UAAO,KAAK,YAAY;;EAG1B,MAAMC,6BAA6C;GACjD,MAAM,GAAG,UAAU;GACnB,aAAa;IACX,cAAc;IACd,cAAc;IACf;GACD;GACD;AACD,8BAA4B,KAAK,2BAA2B;;AAG9D,QAAO"}
|