zenstack 0.6.0-pre.11 → 0.6.0-pre.13
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/cli/cli-error.d.ts +5 -0
- package/cli/cli-error.js +12 -0
- package/cli/cli-error.js.map +1 -0
- package/cli/cli-util.d.ts +18 -0
- package/cli/cli-util.js +168 -0
- package/cli/cli-util.js.map +1 -0
- package/cli/index.d.ts +10 -0
- package/cli/index.js +78 -6531
- package/cli/index.js.map +1 -0
- package/cli/plugin-runner.d.ts +14 -0
- package/cli/plugin-runner.js +133 -0
- package/cli/plugin-runner.js.map +1 -0
- package/global.d.js +1 -0
- package/global.d.js.map +1 -0
- package/language-server/constants.d.ts +12 -0
- package/language-server/constants.js +24 -0
- package/language-server/constants.js.map +1 -0
- package/language-server/main.d.ts +1 -0
- package/language-server/main.js +20 -6436
- package/language-server/main.js.map +1 -0
- package/language-server/types.d.ts +10 -0
- package/language-server/types.js +1 -0
- package/language-server/types.js.map +1 -0
- package/language-server/utils.d.ts +10 -0
- package/language-server/utils.js +28 -0
- package/language-server/utils.js.map +1 -0
- package/language-server/validator/attribute-validator.d.ts +9 -0
- package/language-server/validator/attribute-validator.js +15 -0
- package/language-server/validator/attribute-validator.js.map +1 -0
- package/language-server/validator/datamodel-validator.d.ts +16 -0
- package/language-server/validator/datamodel-validator.js +365 -0
- package/language-server/validator/datamodel-validator.js.map +1 -0
- package/language-server/validator/datasource-validator.d.ts +13 -0
- package/language-server/validator/datasource-validator.js +85 -0
- package/language-server/validator/datasource-validator.js.map +1 -0
- package/language-server/validator/enum-validator.d.ts +9 -0
- package/language-server/validator/enum-validator.js +18 -0
- package/language-server/validator/enum-validator.js.map +1 -0
- package/language-server/validator/expression-validator.d.ts +11 -0
- package/language-server/validator/expression-validator.js +40 -0
- package/language-server/validator/expression-validator.js.map +1 -0
- package/language-server/validator/schema-validator.d.ts +10 -0
- package/language-server/validator/schema-validator.js +35 -0
- package/language-server/validator/schema-validator.js.map +1 -0
- package/language-server/validator/utils.d.ts +24 -0
- package/language-server/validator/utils.js +116 -0
- package/language-server/validator/utils.js.map +1 -0
- package/language-server/validator/zmodel-validator.d.ts +21 -0
- package/language-server/validator/zmodel-validator.js +72 -0
- package/language-server/validator/zmodel-validator.js.map +1 -0
- package/language-server/zmodel-linker.d.ts +29 -0
- package/language-server/zmodel-linker.js +364 -0
- package/language-server/zmodel-linker.js.map +1 -0
- package/language-server/zmodel-module.d.ts +41 -0
- package/language-server/zmodel-module.js +84 -0
- package/language-server/zmodel-module.js.map +1 -0
- package/language-server/zmodel-scope.d.ts +10 -0
- package/language-server/zmodel-scope.js +34 -0
- package/language-server/zmodel-scope.js.map +1 -0
- package/language-server/zmodel-workspace-manager.d.ts +8 -0
- package/language-server/zmodel-workspace-manager.js +25 -0
- package/language-server/zmodel-workspace-manager.js.map +1 -0
- package/package.json +20 -15
- package/plugins/access-policy/expression-writer.d.ts +38 -0
- package/plugins/access-policy/expression-writer.js +323 -0
- package/plugins/access-policy/expression-writer.js.map +1 -0
- package/plugins/access-policy/index.d.ts +4 -0
- package/plugins/access-policy/index.js +15 -4289
- package/plugins/access-policy/index.js.map +1 -0
- package/plugins/access-policy/policy-guard-generator.d.ts +15 -0
- package/plugins/access-policy/policy-guard-generator.js +345 -0
- package/plugins/access-policy/policy-guard-generator.js.map +1 -0
- package/plugins/access-policy/typescript-expression-transformer.d.ts +26 -0
- package/plugins/access-policy/typescript-expression-transformer.js +110 -0
- package/plugins/access-policy/typescript-expression-transformer.js.map +1 -0
- package/plugins/access-policy/utils.d.ts +5 -0
- package/plugins/access-policy/utils.js +16 -0
- package/plugins/access-policy/utils.js.map +1 -0
- package/plugins/access-policy/zod-schema-generator.d.ts +12 -0
- package/plugins/access-policy/zod-schema-generator.js +174 -0
- package/plugins/access-policy/zod-schema-generator.js.map +1 -0
- package/plugins/model-meta/index.d.ts +4 -0
- package/plugins/model-meta/index.js +130 -0
- package/plugins/model-meta/index.js.map +1 -0
- package/plugins/plugin-utils.d.ts +16 -0
- package/plugins/plugin-utils.js +58 -0
- package/plugins/plugin-utils.js.map +1 -0
- package/plugins/prisma/indent-string.d.ts +4 -0
- package/plugins/prisma/indent-string.js +16 -0
- package/plugins/prisma/indent-string.js.map +1 -0
- package/plugins/prisma/index.d.ts +4 -0
- package/plugins/prisma/index.js +15 -3740
- package/plugins/prisma/index.js.map +1 -0
- package/plugins/prisma/prisma-builder.d.ts +123 -0
- package/plugins/prisma/prisma-builder.js +256 -0
- package/plugins/prisma/prisma-builder.js.map +1 -0
- package/plugins/prisma/schema-generator.d.ts +22 -0
- package/plugins/prisma/schema-generator.js +201 -0
- package/plugins/prisma/schema-generator.js.map +1 -0
- package/plugins/react-hooks/index.d.ts +4 -0
- package/plugins/react-hooks/index.js +14 -4332
- package/plugins/react-hooks/index.js.map +1 -0
- package/plugins/react-hooks/react-hooks-generator.d.ts +3 -0
- package/plugins/react-hooks/react-hooks-generator.js +333 -0
- package/plugins/react-hooks/react-hooks-generator.js.map +1 -0
- package/plugins/trpc/config.d.ts +9 -0
- package/plugins/trpc/config.js +12 -0
- package/plugins/trpc/config.js.map +1 -0
- package/plugins/trpc/generator.d.ts +4 -0
- package/plugins/trpc/generator.js +132 -0
- package/plugins/trpc/generator.js.map +1 -0
- package/plugins/trpc/helpers.d.ts +9 -0
- package/plugins/trpc/helpers.js +144 -0
- package/plugins/trpc/helpers.js.map +1 -0
- package/plugins/trpc/index.d.ts +5 -0
- package/plugins/trpc/index.js +14 -5401
- package/plugins/trpc/index.js.map +1 -0
- package/plugins/trpc/project.d.ts +2 -0
- package/plugins/trpc/project.js +21 -0
- package/plugins/trpc/project.js.map +1 -0
- package/plugins/trpc/types.d.ts +0 -0
- package/plugins/trpc/types.js +1 -0
- package/plugins/trpc/types.js.map +1 -0
- package/plugins/trpc/utils/removeDir.d.ts +1 -0
- package/plugins/trpc/utils/removeDir.js +22 -0
- package/plugins/trpc/utils/removeDir.js.map +1 -0
- package/plugins/trpc/utils/uncapitalizeFirstLetter.d.ts +1 -0
- package/plugins/trpc/utils/uncapitalizeFirstLetter.js +11 -0
- package/plugins/trpc/utils/uncapitalizeFirstLetter.js.map +1 -0
- package/plugins/zod/generator.d.ts +4 -0
- package/plugins/zod/generator.js +78 -0
- package/plugins/zod/generator.js.map +1 -0
- package/plugins/zod/helpers/aggregate-helpers.d.ts +5 -0
- package/plugins/zod/helpers/aggregate-helpers.js +77 -0
- package/plugins/zod/helpers/aggregate-helpers.js.map +1 -0
- package/plugins/zod/helpers/comments-helpers.d.ts +6 -0
- package/plugins/zod/helpers/comments-helpers.js +91 -0
- package/plugins/zod/helpers/comments-helpers.js.map +1 -0
- package/plugins/zod/helpers/helpers.d.ts +8 -0
- package/plugins/zod/helpers/helpers.js +39 -0
- package/plugins/zod/helpers/helpers.js.map +1 -0
- package/plugins/zod/helpers/include-helpers.d.ts +2 -0
- package/plugins/zod/helpers/include-helpers.js +94 -0
- package/plugins/zod/helpers/include-helpers.js.map +1 -0
- package/plugins/zod/helpers/index.d.ts +4 -0
- package/plugins/zod/helpers/index.js +50 -0
- package/plugins/zod/helpers/index.js.map +1 -0
- package/plugins/zod/helpers/model-helpers.d.ts +6 -0
- package/plugins/zod/helpers/model-helpers.js +50 -0
- package/plugins/zod/helpers/model-helpers.js.map +1 -0
- package/plugins/zod/helpers/modelArgs-helpers.d.ts +2 -0
- package/plugins/zod/helpers/modelArgs-helpers.js +62 -0
- package/plugins/zod/helpers/modelArgs-helpers.js.map +1 -0
- package/plugins/zod/helpers/mongodb-helpers.d.ts +3 -0
- package/plugins/zod/helpers/mongodb-helpers.js +63 -0
- package/plugins/zod/helpers/mongodb-helpers.js.map +1 -0
- package/plugins/zod/helpers/select-helpers.d.ts +2 -0
- package/plugins/zod/helpers/select-helpers.js +150 -0
- package/plugins/zod/helpers/select-helpers.js.map +1 -0
- package/plugins/zod/index.d.ts +5 -0
- package/plugins/zod/index.js +14 -4824
- package/plugins/zod/index.js.map +1 -0
- package/plugins/zod/transformer.d.ts +70 -0
- package/plugins/zod/transformer.js +464 -0
- package/plugins/zod/transformer.js.map +1 -0
- package/plugins/zod/types.d.ts +20 -0
- package/plugins/zod/types.js +1 -0
- package/plugins/zod/types.js.map +1 -0
- package/plugins/zod/utils/formatFile.d.ts +1 -0
- package/plugins/zod/utils/formatFile.js +35 -0
- package/plugins/zod/utils/formatFile.js.map +1 -0
- package/plugins/zod/utils/removeDir.d.ts +1 -0
- package/plugins/zod/utils/removeDir.js +22 -0
- package/plugins/zod/utils/removeDir.js.map +1 -0
- package/plugins/zod/utils/writeFileSafely.d.ts +1 -0
- package/plugins/zod/utils/writeFileSafely.js +18 -0
- package/plugins/zod/utils/writeFileSafely.js.map +1 -0
- package/res/prism-zmodel.js +2 -4
- package/res/stdlib.zmodel +12 -1
- package/telemetry.d.ts +21 -0
- package/telemetry.js +102 -0
- package/telemetry.js.map +1 -0
- package/types.d.ts +11 -0
- package/types.js +1 -0
- package/types.js.map +1 -0
- package/utils/ast-utils.d.ts +15 -0
- package/utils/ast-utils.js +79 -0
- package/utils/ast-utils.js.map +1 -0
- package/utils/exec-utils.d.ts +6 -0
- package/utils/exec-utils.js +17 -0
- package/utils/exec-utils.js.map +1 -0
- package/utils/indent-string.d.ts +4 -0
- package/utils/indent-string.js +16 -0
- package/utils/indent-string.js.map +1 -0
- package/utils/pkg-utils.d.ts +3 -0
- package/utils/pkg-utils.js +43 -0
- package/utils/pkg-utils.js.map +1 -0
- package/asset/logo-256-bg.png +0 -0
- package/asset/logo-dark-256.png +0 -0
- package/asset/logo-light-256.png +0 -0
- package/extension.js +0 -39
- package/res/package.template.json +0 -9
- package/res/tsconfig.template.json +0 -17
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _commentsHelpers = require("./comments-helpers");
|
|
7
|
+
Object.keys(_commentsHelpers).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _commentsHelpers[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _commentsHelpers[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _helpers = require("./helpers");
|
|
18
|
+
Object.keys(_helpers).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _helpers[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _helpers[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
var _modelHelpers = require("./model-helpers");
|
|
29
|
+
Object.keys(_modelHelpers).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _modelHelpers[key]) return;
|
|
32
|
+
Object.defineProperty(exports, key, {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () {
|
|
35
|
+
return _modelHelpers[key];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
var _mongodbHelpers = require("./mongodb-helpers");
|
|
40
|
+
Object.keys(_mongodbHelpers).forEach(function (key) {
|
|
41
|
+
if (key === "default" || key === "__esModule") return;
|
|
42
|
+
if (key in exports && exports[key] === _mongodbHelpers[key]) return;
|
|
43
|
+
Object.defineProperty(exports, key, {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () {
|
|
46
|
+
return _mongodbHelpers[key];
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/plugins/zod/helpers/index.ts"],"sourcesContent":["export * from './comments-helpers';\nexport * from './helpers';\nexport * from './model-helpers';\nexport * from './mongodb-helpers';\n"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DMMF } from '@prisma/generator-helper';
|
|
2
|
+
export declare function checkModelHasModelRelation(model: DMMF.Model): boolean;
|
|
3
|
+
export declare function checkModelHasManyModelRelation(model: DMMF.Model): boolean;
|
|
4
|
+
export declare function checkIsModelRelationField(modelField: DMMF.Field): boolean;
|
|
5
|
+
export declare function checkIsManyModelRelationField(modelField: DMMF.Field): boolean;
|
|
6
|
+
export declare function findModelByName(models: DMMF.Model[], modelName: string): DMMF.Model | undefined;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.checkIsManyModelRelationField = checkIsManyModelRelationField;
|
|
7
|
+
exports.checkIsModelRelationField = checkIsModelRelationField;
|
|
8
|
+
exports.checkModelHasManyModelRelation = checkModelHasManyModelRelation;
|
|
9
|
+
exports.checkModelHasModelRelation = checkModelHasModelRelation;
|
|
10
|
+
exports.findModelByName = findModelByName;
|
|
11
|
+
function checkModelHasModelRelation(model) {
|
|
12
|
+
const {
|
|
13
|
+
fields: modelFields
|
|
14
|
+
} = model;
|
|
15
|
+
for (const modelField of modelFields) {
|
|
16
|
+
const isRelationField = checkIsModelRelationField(modelField);
|
|
17
|
+
if (isRelationField) {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
function checkModelHasManyModelRelation(model) {
|
|
24
|
+
const {
|
|
25
|
+
fields: modelFields
|
|
26
|
+
} = model;
|
|
27
|
+
for (const modelField of modelFields) {
|
|
28
|
+
const isManyRelationField = checkIsManyModelRelationField(modelField);
|
|
29
|
+
if (isManyRelationField) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
function checkIsModelRelationField(modelField) {
|
|
36
|
+
const {
|
|
37
|
+
kind,
|
|
38
|
+
relationName
|
|
39
|
+
} = modelField;
|
|
40
|
+
return kind === 'object' && !!relationName;
|
|
41
|
+
}
|
|
42
|
+
function checkIsManyModelRelationField(modelField) {
|
|
43
|
+
return checkIsModelRelationField(modelField) && modelField.isList;
|
|
44
|
+
}
|
|
45
|
+
function findModelByName(models, modelName) {
|
|
46
|
+
return models.find(({
|
|
47
|
+
name
|
|
48
|
+
}) => name === modelName);
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=model-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-helpers.js","names":["checkModelHasModelRelation","model","fields","modelFields","modelField","isRelationField","checkIsModelRelationField","checkModelHasManyModelRelation","isManyRelationField","checkIsManyModelRelationField","kind","relationName","isList","findModelByName","models","modelName","find","name"],"sources":["../../../../src/plugins/zod/helpers/model-helpers.ts"],"sourcesContent":["import { DMMF } from '@prisma/generator-helper';\n\nexport function checkModelHasModelRelation(model: DMMF.Model) {\n const { fields: modelFields } = model;\n for (const modelField of modelFields) {\n const isRelationField = checkIsModelRelationField(modelField);\n if (isRelationField) {\n return true;\n }\n }\n return false;\n}\n\nexport function checkModelHasManyModelRelation(model: DMMF.Model) {\n const { fields: modelFields } = model;\n for (const modelField of modelFields) {\n const isManyRelationField = checkIsManyModelRelationField(modelField);\n if (isManyRelationField) {\n return true;\n }\n }\n return false;\n}\n\nexport function checkIsModelRelationField(modelField: DMMF.Field) {\n const { kind, relationName } = modelField;\n return kind === 'object' && !!relationName;\n}\n\nexport function checkIsManyModelRelationField(modelField: DMMF.Field) {\n return checkIsModelRelationField(modelField) && modelField.isList;\n}\n\nexport function findModelByName(models: DMMF.Model[], modelName: string) {\n return models.find(({ name }) => name === modelName);\n}\n"],"mappings":";;;;;;;;;;AAEO,SAASA,0BAA0B,CAACC,KAAiB,EAAE;EAC1D,MAAM;IAAEC,MAAM,EAAEC;EAAY,CAAC,GAAGF,KAAK;EACrC,KAAK,MAAMG,UAAU,IAAID,WAAW,EAAE;IAClC,MAAME,eAAe,GAAGC,yBAAyB,CAACF,UAAU,CAAC;IAC7D,IAAIC,eAAe,EAAE;MACjB,OAAO,IAAI;IACf;EACJ;EACA,OAAO,KAAK;AAChB;AAEO,SAASE,8BAA8B,CAACN,KAAiB,EAAE;EAC9D,MAAM;IAAEC,MAAM,EAAEC;EAAY,CAAC,GAAGF,KAAK;EACrC,KAAK,MAAMG,UAAU,IAAID,WAAW,EAAE;IAClC,MAAMK,mBAAmB,GAAGC,6BAA6B,CAACL,UAAU,CAAC;IACrE,IAAII,mBAAmB,EAAE;MACrB,OAAO,IAAI;IACf;EACJ;EACA,OAAO,KAAK;AAChB;AAEO,SAASF,yBAAyB,CAACF,UAAsB,EAAE;EAC9D,MAAM;IAAEM,IAAI;IAAEC;EAAa,CAAC,GAAGP,UAAU;EACzC,OAAOM,IAAI,KAAK,QAAQ,IAAI,CAAC,CAACC,YAAY;AAC9C;AAEO,SAASF,6BAA6B,CAACL,UAAsB,EAAE;EAClE,OAAOE,yBAAyB,CAACF,UAAU,CAAC,IAAIA,UAAU,CAACQ,MAAM;AACrE;AAEO,SAASC,eAAe,CAACC,MAAoB,EAAEC,SAAiB,EAAE;EACrE,OAAOD,MAAM,CAACE,IAAI,CAAC,CAAC;IAAEC;EAAK,CAAC,KAAKA,IAAI,KAAKF,SAAS,CAAC;AACxD"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.addMissingInputObjectTypesForModelArgs = addMissingInputObjectTypesForModelArgs;
|
|
7
|
+
var _modelHelpers = require("./model-helpers");
|
|
8
|
+
function addMissingInputObjectTypesForModelArgs(inputObjectTypes, models, isGenerateSelect, isGenerateInclude) {
|
|
9
|
+
const modelArgsInputObjectTypes = generateModelArgsInputObjectTypes(models, isGenerateSelect, isGenerateInclude);
|
|
10
|
+
for (const modelArgsInputObjectType of modelArgsInputObjectTypes) {
|
|
11
|
+
inputObjectTypes.push(modelArgsInputObjectType);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function generateModelArgsInputObjectTypes(models, isGenerateSelect, isGenerateInclude) {
|
|
15
|
+
const modelArgsInputObjectTypes = [];
|
|
16
|
+
for (const model of models) {
|
|
17
|
+
const {
|
|
18
|
+
name: modelName
|
|
19
|
+
} = model;
|
|
20
|
+
const fields = [];
|
|
21
|
+
if (isGenerateSelect) {
|
|
22
|
+
const selectField = {
|
|
23
|
+
name: 'select',
|
|
24
|
+
isRequired: false,
|
|
25
|
+
isNullable: false,
|
|
26
|
+
inputTypes: [{
|
|
27
|
+
isList: false,
|
|
28
|
+
type: `${modelName}Select`,
|
|
29
|
+
location: 'inputObjectTypes',
|
|
30
|
+
namespace: 'prisma'
|
|
31
|
+
}]
|
|
32
|
+
};
|
|
33
|
+
fields.push(selectField);
|
|
34
|
+
}
|
|
35
|
+
const hasRelationToAnotherModel = (0, _modelHelpers.checkModelHasModelRelation)(model);
|
|
36
|
+
if (isGenerateInclude && hasRelationToAnotherModel) {
|
|
37
|
+
const includeField = {
|
|
38
|
+
name: 'include',
|
|
39
|
+
isRequired: false,
|
|
40
|
+
isNullable: false,
|
|
41
|
+
inputTypes: [{
|
|
42
|
+
isList: false,
|
|
43
|
+
type: `${modelName}Include`,
|
|
44
|
+
location: 'inputObjectTypes',
|
|
45
|
+
namespace: 'prisma'
|
|
46
|
+
}]
|
|
47
|
+
};
|
|
48
|
+
fields.push(includeField);
|
|
49
|
+
}
|
|
50
|
+
const modelArgsInputObjectType = {
|
|
51
|
+
name: `${modelName}Args`,
|
|
52
|
+
constraints: {
|
|
53
|
+
maxNumFields: null,
|
|
54
|
+
minNumFields: null
|
|
55
|
+
},
|
|
56
|
+
fields
|
|
57
|
+
};
|
|
58
|
+
modelArgsInputObjectTypes.push(modelArgsInputObjectType);
|
|
59
|
+
}
|
|
60
|
+
return modelArgsInputObjectTypes;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=modelArgs-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modelArgs-helpers.js","names":["addMissingInputObjectTypesForModelArgs","inputObjectTypes","models","isGenerateSelect","isGenerateInclude","modelArgsInputObjectTypes","generateModelArgsInputObjectTypes","modelArgsInputObjectType","push","model","name","modelName","fields","selectField","isRequired","isNullable","inputTypes","isList","type","location","namespace","hasRelationToAnotherModel","checkModelHasModelRelation","includeField","constraints","maxNumFields","minNumFields"],"sources":["../../../../src/plugins/zod/helpers/modelArgs-helpers.ts"],"sourcesContent":["import { 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(models, isGenerateSelect, isGenerateInclude);\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}Args`,\n constraints: {\n maxNumFields: null,\n minNumFields: null,\n },\n fields,\n };\n modelArgsInputObjectTypes.push(modelArgsInputObjectType);\n }\n return modelArgsInputObjectTypes;\n}\n"],"mappings":";;;;;;AACA;AAEO,SAASA,sCAAsC,CAClDC,gBAAkC,EAClCC,MAAoB,EACpBC,gBAAyB,EACzBC,iBAA0B,EAC5B;EACE,MAAMC,yBAAyB,GAAGC,iCAAiC,CAACJ,MAAM,EAAEC,gBAAgB,EAAEC,iBAAiB,CAAC;EAEhH,KAAK,MAAMG,wBAAwB,IAAIF,yBAAyB,EAAE;IAC9DJ,gBAAgB,CAACO,IAAI,CAACD,wBAAwB,CAAC;EACnD;AACJ;AACA,SAASD,iCAAiC,CACtCJ,MAAoB,EACpBC,gBAAyB,EACzBC,iBAA0B,EAC5B;EACE,MAAMC,yBAA2C,GAAG,EAAE;EACtD,KAAK,MAAMI,KAAK,IAAIP,MAAM,EAAE;IACxB,MAAM;MAAEQ,IAAI,EAAEC;IAAU,CAAC,GAAGF,KAAK;IACjC,MAAMG,MAAwB,GAAG,EAAE;IAEnC,IAAIT,gBAAgB,EAAE;MAClB,MAAMU,WAA2B,GAAG;QAChCH,IAAI,EAAE,QAAQ;QACdI,UAAU,EAAE,KAAK;QACjBC,UAAU,EAAE,KAAK;QACjBC,UAAU,EAAE,CACR;UACIC,MAAM,EAAE,KAAK;UACbC,IAAI,EAAG,GAAEP,SAAU,QAAO;UAC1BQ,QAAQ,EAAE,kBAAkB;UAC5BC,SAAS,EAAE;QACf,CAAC;MAET,CAAC;MACDR,MAAM,CAACJ,IAAI,CAACK,WAAW,CAAC;IAC5B;IAEA,MAAMQ,yBAAyB,GAAG,IAAAC,wCAA0B,EAACb,KAAK,CAAC;IAEnE,IAAIL,iBAAiB,IAAIiB,yBAAyB,EAAE;MAChD,MAAME,YAA4B,GAAG;QACjCb,IAAI,EAAE,SAAS;QACfI,UAAU,EAAE,KAAK;QACjBC,UAAU,EAAE,KAAK;QACjBC,UAAU,EAAE,CACR;UACIC,MAAM,EAAE,KAAK;UACbC,IAAI,EAAG,GAAEP,SAAU,SAAQ;UAC3BQ,QAAQ,EAAE,kBAAkB;UAC5BC,SAAS,EAAE;QACf,CAAC;MAET,CAAC;MACDR,MAAM,CAACJ,IAAI,CAACe,YAAY,CAAC;IAC7B;IAEA,MAAMhB,wBAAwC,GAAG;MAC7CG,IAAI,EAAG,GAAEC,SAAU,MAAK;MACxBa,WAAW,EAAE;QACTC,YAAY,EAAE,IAAI;QAClBC,YAAY,EAAE;MAClB,CAAC;MACDd;IACJ,CAAC;IACDP,yBAAyB,CAACG,IAAI,CAACD,wBAAwB,CAAC;EAC5D;EACA,OAAOF,yBAAyB;AACpC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { DMMF } from '@prisma/generator-helper';
|
|
2
|
+
export declare function addMissingInputObjectTypesForMongoDbRawOpsAndQueries(modelOperations: DMMF.ModelMapping[], outputObjectTypes: DMMF.OutputType[], inputObjectTypes: DMMF.InputType[]): void;
|
|
3
|
+
export declare const isMongodbRawOp: (name: string) => boolean;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.addMissingInputObjectTypesForMongoDbRawOpsAndQueries = addMissingInputObjectTypesForMongoDbRawOpsAndQueries;
|
|
7
|
+
exports.isMongodbRawOp = void 0;
|
|
8
|
+
var _transformer = _interopRequireDefault(require("../transformer"));
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
function addMissingInputObjectTypesForMongoDbRawOpsAndQueries(modelOperations, outputObjectTypes, inputObjectTypes) {
|
|
11
|
+
const rawOpsMap = resolveMongoDbRawOperations(modelOperations);
|
|
12
|
+
_transformer.default.rawOpsMap = rawOpsMap ?? {};
|
|
13
|
+
const mongoDbRawQueryInputObjectTypes = resolveMongoDbRawQueryInputObjectTypes(outputObjectTypes);
|
|
14
|
+
for (const mongoDbRawQueryInputType of mongoDbRawQueryInputObjectTypes) {
|
|
15
|
+
inputObjectTypes.push(mongoDbRawQueryInputType);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function resolveMongoDbRawOperations(modelOperations) {
|
|
19
|
+
const rawOpsMap = {};
|
|
20
|
+
const rawOpsNames = [...new Set(modelOperations.reduce((result, current) => {
|
|
21
|
+
const keys = Object.keys(current);
|
|
22
|
+
keys === null || keys === void 0 ? void 0 : keys.forEach(key => {
|
|
23
|
+
if (key.includes('Raw')) {
|
|
24
|
+
result.push(key);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
return result;
|
|
28
|
+
}, []))];
|
|
29
|
+
const modelNames = modelOperations.map(item => item.model);
|
|
30
|
+
rawOpsNames.forEach(opName => {
|
|
31
|
+
modelNames.forEach(modelName => {
|
|
32
|
+
const isFind = opName === 'findRaw';
|
|
33
|
+
const opWithModel = `${opName.replace('Raw', '')}${modelName}Raw`;
|
|
34
|
+
rawOpsMap[opWithModel] = isFind ? `${modelName}FindRawArgs` : `${modelName}AggregateRawArgs`;
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
return rawOpsMap;
|
|
38
|
+
}
|
|
39
|
+
function resolveMongoDbRawQueryInputObjectTypes(outputObjectTypes) {
|
|
40
|
+
const mongoDbRawQueries = getMongoDbRawQueries(outputObjectTypes);
|
|
41
|
+
const mongoDbRawQueryInputObjectTypes = mongoDbRawQueries.map(item => ({
|
|
42
|
+
name: item.name,
|
|
43
|
+
constraints: {
|
|
44
|
+
maxNumFields: null,
|
|
45
|
+
minNumFields: null
|
|
46
|
+
},
|
|
47
|
+
fields: item.args.map(arg => ({
|
|
48
|
+
name: arg.name,
|
|
49
|
+
isRequired: arg.isRequired,
|
|
50
|
+
isNullable: arg.isNullable,
|
|
51
|
+
inputTypes: arg.inputTypes
|
|
52
|
+
}))
|
|
53
|
+
}));
|
|
54
|
+
return mongoDbRawQueryInputObjectTypes;
|
|
55
|
+
}
|
|
56
|
+
function getMongoDbRawQueries(outputObjectTypes) {
|
|
57
|
+
const queryOutputTypes = outputObjectTypes.filter(item => item.name === 'Query');
|
|
58
|
+
const mongodbRawQueries = (queryOutputTypes === null || queryOutputTypes === void 0 ? void 0 : queryOutputTypes[0].fields.filter(field => field.name.includes('Raw'))) ?? [];
|
|
59
|
+
return mongodbRawQueries;
|
|
60
|
+
}
|
|
61
|
+
const isMongodbRawOp = name => /find([^]*?)Raw/.test(name) || /aggregate([^]*?)Raw/.test(name);
|
|
62
|
+
exports.isMongodbRawOp = isMongodbRawOp;
|
|
63
|
+
//# sourceMappingURL=mongodb-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mongodb-helpers.js","names":["addMissingInputObjectTypesForMongoDbRawOpsAndQueries","modelOperations","outputObjectTypes","inputObjectTypes","rawOpsMap","resolveMongoDbRawOperations","Transformer","mongoDbRawQueryInputObjectTypes","resolveMongoDbRawQueryInputObjectTypes","mongoDbRawQueryInputType","push","rawOpsNames","Set","reduce","result","current","keys","Object","forEach","key","includes","modelNames","map","item","model","opName","modelName","isFind","opWithModel","replace","mongoDbRawQueries","getMongoDbRawQueries","name","constraints","maxNumFields","minNumFields","fields","args","arg","isRequired","isNullable","inputTypes","queryOutputTypes","filter","mongodbRawQueries","field","isMongodbRawOp","test"],"sources":["../../../../src/plugins/zod/helpers/mongodb-helpers.ts"],"sourcesContent":["import { 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 = 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 ? `${modelName}FindRawArgs` : `${modelName}AggregateRawArgs`;\n });\n });\n\n return rawOpsMap;\n}\n\nfunction resolveMongoDbRawQueryInputObjectTypes(outputObjectTypes: DMMF.OutputType[]) {\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 return mongoDbRawQueryInputObjectTypes;\n}\n\nfunction getMongoDbRawQueries(outputObjectTypes: DMMF.OutputType[]) {\n const queryOutputTypes = outputObjectTypes.filter((item) => item.name === 'Query');\n\n const mongodbRawQueries = queryOutputTypes?.[0].fields.filter((field) => field.name.includes('Raw')) ?? [];\n\n return mongodbRawQueries;\n}\n\nexport const isMongodbRawOp = (name: string) => /find([^]*?)Raw/.test(name) || /aggregate([^]*?)Raw/.test(name);\n"],"mappings":"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"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.addMissingInputObjectTypesForSelect = addMissingInputObjectTypesForSelect;
|
|
7
|
+
var _modelHelpers = require("./model-helpers");
|
|
8
|
+
function addMissingInputObjectTypesForSelect(inputObjectTypes, outputObjectTypes, models) {
|
|
9
|
+
// generate input object types necessary to support ModelSelect._count
|
|
10
|
+
const modelCountOutputTypes = getModelCountOutputTypes(outputObjectTypes);
|
|
11
|
+
const modelCountOutputTypeSelectInputObjectTypes = generateModelCountOutputTypeSelectInputObjectTypes(modelCountOutputTypes);
|
|
12
|
+
const modelCountOutputTypeArgsInputObjectTypes = generateModelCountOutputTypeArgsInputObjectTypes(modelCountOutputTypes);
|
|
13
|
+
const modelSelectInputObjectTypes = generateModelSelectInputObjectTypes(models);
|
|
14
|
+
const generatedInputObjectTypes = [modelCountOutputTypeSelectInputObjectTypes, modelCountOutputTypeArgsInputObjectTypes, modelSelectInputObjectTypes].flat();
|
|
15
|
+
for (const inputObjectType of generatedInputObjectTypes) {
|
|
16
|
+
inputObjectTypes.push(inputObjectType);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function getModelCountOutputTypes(outputObjectTypes) {
|
|
20
|
+
return outputObjectTypes.filter(({
|
|
21
|
+
name
|
|
22
|
+
}) => name.includes('CountOutputType'));
|
|
23
|
+
}
|
|
24
|
+
function generateModelCountOutputTypeSelectInputObjectTypes(modelCountOutputTypes) {
|
|
25
|
+
const modelCountOutputTypeSelectInputObjectTypes = [];
|
|
26
|
+
for (const modelCountOutputType of modelCountOutputTypes) {
|
|
27
|
+
const {
|
|
28
|
+
name: modelCountOutputTypeName,
|
|
29
|
+
fields: modelCountOutputTypeFields
|
|
30
|
+
} = modelCountOutputType;
|
|
31
|
+
const modelCountOutputTypeSelectInputObjectType = {
|
|
32
|
+
name: `${modelCountOutputTypeName}Select`,
|
|
33
|
+
constraints: {
|
|
34
|
+
maxNumFields: null,
|
|
35
|
+
minNumFields: null
|
|
36
|
+
},
|
|
37
|
+
fields: modelCountOutputTypeFields.map(({
|
|
38
|
+
name
|
|
39
|
+
}) => ({
|
|
40
|
+
name,
|
|
41
|
+
isRequired: false,
|
|
42
|
+
isNullable: false,
|
|
43
|
+
inputTypes: [{
|
|
44
|
+
isList: false,
|
|
45
|
+
type: `Boolean`,
|
|
46
|
+
location: 'scalar'
|
|
47
|
+
}]
|
|
48
|
+
}))
|
|
49
|
+
};
|
|
50
|
+
modelCountOutputTypeSelectInputObjectTypes.push(modelCountOutputTypeSelectInputObjectType);
|
|
51
|
+
}
|
|
52
|
+
return modelCountOutputTypeSelectInputObjectTypes;
|
|
53
|
+
}
|
|
54
|
+
function generateModelCountOutputTypeArgsInputObjectTypes(modelCountOutputTypes) {
|
|
55
|
+
const modelCountOutputTypeArgsInputObjectTypes = [];
|
|
56
|
+
for (const modelCountOutputType of modelCountOutputTypes) {
|
|
57
|
+
const {
|
|
58
|
+
name: modelCountOutputTypeName
|
|
59
|
+
} = modelCountOutputType;
|
|
60
|
+
const modelCountOutputTypeArgsInputObjectType = {
|
|
61
|
+
name: `${modelCountOutputTypeName}Args`,
|
|
62
|
+
constraints: {
|
|
63
|
+
maxNumFields: null,
|
|
64
|
+
minNumFields: null
|
|
65
|
+
},
|
|
66
|
+
fields: [{
|
|
67
|
+
name: 'select',
|
|
68
|
+
isRequired: false,
|
|
69
|
+
isNullable: false,
|
|
70
|
+
inputTypes: [{
|
|
71
|
+
isList: false,
|
|
72
|
+
type: `${modelCountOutputTypeName}Select`,
|
|
73
|
+
location: 'inputObjectTypes',
|
|
74
|
+
namespace: 'prisma'
|
|
75
|
+
}]
|
|
76
|
+
}]
|
|
77
|
+
};
|
|
78
|
+
modelCountOutputTypeArgsInputObjectTypes.push(modelCountOutputTypeArgsInputObjectType);
|
|
79
|
+
}
|
|
80
|
+
return modelCountOutputTypeArgsInputObjectTypes;
|
|
81
|
+
}
|
|
82
|
+
function generateModelSelectInputObjectTypes(models) {
|
|
83
|
+
const modelSelectInputObjectTypes = [];
|
|
84
|
+
for (const model of models) {
|
|
85
|
+
const {
|
|
86
|
+
name: modelName,
|
|
87
|
+
fields: modelFields
|
|
88
|
+
} = model;
|
|
89
|
+
const fields = [];
|
|
90
|
+
for (const modelField of modelFields) {
|
|
91
|
+
const {
|
|
92
|
+
name: modelFieldName,
|
|
93
|
+
isList,
|
|
94
|
+
type
|
|
95
|
+
} = modelField;
|
|
96
|
+
const isRelationField = (0, _modelHelpers.checkIsModelRelationField)(modelField);
|
|
97
|
+
const field = {
|
|
98
|
+
name: modelFieldName,
|
|
99
|
+
isRequired: false,
|
|
100
|
+
isNullable: false,
|
|
101
|
+
inputTypes: [{
|
|
102
|
+
isList: false,
|
|
103
|
+
type: 'Boolean',
|
|
104
|
+
location: 'scalar'
|
|
105
|
+
}]
|
|
106
|
+
};
|
|
107
|
+
if (isRelationField) {
|
|
108
|
+
const schemaArgInputType = {
|
|
109
|
+
isList: false,
|
|
110
|
+
type: isList ? `${type}FindManyArgs` : `${type}Args`,
|
|
111
|
+
location: 'inputObjectTypes',
|
|
112
|
+
namespace: 'prisma'
|
|
113
|
+
};
|
|
114
|
+
field.inputTypes.push(schemaArgInputType);
|
|
115
|
+
}
|
|
116
|
+
fields.push(field);
|
|
117
|
+
}
|
|
118
|
+
const hasManyRelationToAnotherModel = (0, _modelHelpers.checkModelHasManyModelRelation)(model);
|
|
119
|
+
const shouldAddCountField = hasManyRelationToAnotherModel;
|
|
120
|
+
if (shouldAddCountField) {
|
|
121
|
+
const _countField = {
|
|
122
|
+
name: '_count',
|
|
123
|
+
isRequired: false,
|
|
124
|
+
isNullable: false,
|
|
125
|
+
inputTypes: [{
|
|
126
|
+
isList: false,
|
|
127
|
+
type: 'Boolean',
|
|
128
|
+
location: 'scalar'
|
|
129
|
+
}, {
|
|
130
|
+
isList: false,
|
|
131
|
+
type: `${modelName}CountOutputTypeArgs`,
|
|
132
|
+
location: 'inputObjectTypes',
|
|
133
|
+
namespace: 'prisma'
|
|
134
|
+
}]
|
|
135
|
+
};
|
|
136
|
+
fields.push(_countField);
|
|
137
|
+
}
|
|
138
|
+
const modelSelectInputObjectType = {
|
|
139
|
+
name: `${modelName}Select`,
|
|
140
|
+
constraints: {
|
|
141
|
+
maxNumFields: null,
|
|
142
|
+
minNumFields: null
|
|
143
|
+
},
|
|
144
|
+
fields
|
|
145
|
+
};
|
|
146
|
+
modelSelectInputObjectTypes.push(modelSelectInputObjectType);
|
|
147
|
+
}
|
|
148
|
+
return modelSelectInputObjectTypes;
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=select-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-helpers.js","names":["addMissingInputObjectTypesForSelect","inputObjectTypes","outputObjectTypes","models","modelCountOutputTypes","getModelCountOutputTypes","modelCountOutputTypeSelectInputObjectTypes","generateModelCountOutputTypeSelectInputObjectTypes","modelCountOutputTypeArgsInputObjectTypes","generateModelCountOutputTypeArgsInputObjectTypes","modelSelectInputObjectTypes","generateModelSelectInputObjectTypes","generatedInputObjectTypes","flat","inputObjectType","push","filter","name","includes","modelCountOutputType","modelCountOutputTypeName","fields","modelCountOutputTypeFields","modelCountOutputTypeSelectInputObjectType","constraints","maxNumFields","minNumFields","map","isRequired","isNullable","inputTypes","isList","type","location","modelCountOutputTypeArgsInputObjectType","namespace","model","modelName","modelFields","modelField","modelFieldName","isRelationField","checkIsModelRelationField","field","schemaArgInputType","hasManyRelationToAnotherModel","checkModelHasManyModelRelation","shouldAddCountField","_countField","modelSelectInputObjectType"],"sources":["../../../../src/plugins/zod/helpers/select-helpers.ts"],"sourcesContent":["import { DMMF } from '@prisma/generator-helper';\nimport { checkIsModelRelationField, checkModelHasManyModelRelation } 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 = 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 }) => name.includes('CountOutputType'));\n}\n\nfunction generateModelCountOutputTypeSelectInputObjectTypes(modelCountOutputTypes: DMMF.OutputType[]) {\n const modelCountOutputTypeSelectInputObjectTypes: DMMF.InputType[] = [];\n for (const modelCountOutputType of modelCountOutputTypes) {\n const { name: modelCountOutputTypeName, fields: modelCountOutputTypeFields } = 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(modelCountOutputTypeSelectInputObjectType);\n }\n return modelCountOutputTypeSelectInputObjectTypes;\n}\n\nfunction generateModelCountOutputTypeArgsInputObjectTypes(modelCountOutputTypes: DMMF.OutputType[]) {\n const modelCountOutputTypeArgsInputObjectTypes: DMMF.InputType[] = [];\n for (const modelCountOutputType of modelCountOutputTypes) {\n const { name: modelCountOutputTypeName } = modelCountOutputType;\n const modelCountOutputTypeArgsInputObjectType: DMMF.InputType = {\n name: `${modelCountOutputTypeName}Args`,\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(modelCountOutputTypeArgsInputObjectType);\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: DMMF.SchemaArg = {\n name: modelFieldName,\n isRequired: false,\n isNullable: false,\n inputTypes: [{ isList: false, type: 'Boolean', location: 'scalar' }],\n };\n\n if (isRelationField) {\n const schemaArgInputType: DMMF.SchemaArgInputType = {\n isList: false,\n type: isList ? `${type}FindManyArgs` : `${type}Args`,\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}CountOutputTypeArgs`,\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 return modelSelectInputObjectTypes;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { DMMF } from '@prisma/generator-helper';
|
|
2
|
+
import { PluginOptions } from '@zenstackhq/sdk';
|
|
3
|
+
import { Model } from '@zenstackhq/sdk/ast';
|
|
4
|
+
export declare const name = "Zod";
|
|
5
|
+
export default function run(model: Model, options: PluginOptions, dmmf: DMMF.Document): Promise<void>;
|