@pothos/plugin-prisma 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +17 -0
- package/.turbo/turbo-test.log +17 -0
- package/CHANGELOG.md +312 -0
- package/LICENSE +6 -0
- package/README.md +808 -0
- package/babel.config.js +3 -0
- package/bin/generator.js +2 -0
- package/esm/cursors.d.ts +55 -0
- package/esm/cursors.d.ts.map +1 -0
- package/esm/cursors.js +106 -0
- package/esm/cursors.js.map +1 -0
- package/esm/field-builder.d.ts +2 -0
- package/esm/field-builder.d.ts.map +1 -0
- package/esm/field-builder.js +51 -0
- package/esm/field-builder.js.map +1 -0
- package/esm/generator.d.ts +2 -0
- package/esm/generator.d.ts.map +1 -0
- package/esm/generator.js +82 -0
- package/esm/generator.js.map +1 -0
- package/esm/global-types.d.ts +52 -0
- package/esm/global-types.d.ts.map +1 -0
- package/esm/global-types.js +2 -0
- package/esm/global-types.js.map +1 -0
- package/esm/index.d.ts +11 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +14 -0
- package/esm/index.js.map +1 -0
- package/esm/loader-map.d.ts +6 -0
- package/esm/loader-map.d.ts.map +1 -0
- package/esm/loader-map.js +35 -0
- package/esm/loader-map.js.map +1 -0
- package/esm/model-loader.d.ts +17 -0
- package/esm/model-loader.d.ts.map +1 -0
- package/esm/model-loader.js +89 -0
- package/esm/model-loader.js.map +1 -0
- package/esm/node-ref.d.ts +10 -0
- package/esm/node-ref.d.ts.map +1 -0
- package/esm/node-ref.js +18 -0
- package/esm/node-ref.js.map +1 -0
- package/esm/package.json +3 -0
- package/esm/prisma-field-builder.d.ts +22 -0
- package/esm/prisma-field-builder.d.ts.map +1 -0
- package/esm/prisma-field-builder.js +178 -0
- package/esm/prisma-field-builder.js.map +1 -0
- package/esm/refs.d.ts +13 -0
- package/esm/refs.d.ts.map +1 -0
- package/esm/refs.js +63 -0
- package/esm/refs.js.map +1 -0
- package/esm/schema-builder.d.ts +2 -0
- package/esm/schema-builder.d.ts.map +1 -0
- package/esm/schema-builder.js +69 -0
- package/esm/schema-builder.js.map +1 -0
- package/esm/types.d.ts +164 -0
- package/esm/types.d.ts.map +1 -0
- package/esm/types.js +2 -0
- package/esm/types.js.map +1 -0
- package/esm/util/index.d.ts +5 -0
- package/esm/util/index.d.ts.map +1 -0
- package/esm/util/index.js +16 -0
- package/esm/util/index.js.map +1 -0
- package/esm/util/map-includes.d.ts +5 -0
- package/esm/util/map-includes.d.ts.map +1 -0
- package/esm/util/map-includes.js +168 -0
- package/esm/util/map-includes.js.map +1 -0
- package/esm/util/merge-includes.d.ts +3 -0
- package/esm/util/merge-includes.d.ts.map +1 -0
- package/esm/util/merge-includes.js +91 -0
- package/esm/util/merge-includes.js.map +1 -0
- package/generated.ts +54 -0
- package/lib/cursors.d.ts +55 -0
- package/lib/cursors.d.ts.map +1 -0
- package/lib/cursors.js +112 -0
- package/lib/cursors.js.map +1 -0
- package/lib/field-builder.d.ts +2 -0
- package/lib/field-builder.d.ts.map +1 -0
- package/lib/field-builder.js +63 -0
- package/lib/field-builder.js.map +1 -0
- package/lib/generator.d.ts +2 -0
- package/lib/generator.d.ts.map +1 -0
- package/lib/generator.js +103 -0
- package/lib/generator.js.map +1 -0
- package/lib/global-types.d.ts +52 -0
- package/lib/global-types.d.ts.map +1 -0
- package/lib/global-types.js +3 -0
- package/lib/global-types.js.map +1 -0
- package/lib/index.d.ts +11 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +40 -0
- package/lib/index.js.map +1 -0
- package/lib/loader-map.d.ts +6 -0
- package/lib/loader-map.d.ts.map +1 -0
- package/lib/loader-map.js +41 -0
- package/lib/loader-map.js.map +1 -0
- package/lib/model-loader.d.ts +17 -0
- package/lib/model-loader.d.ts.map +1 -0
- package/lib/model-loader.js +93 -0
- package/lib/model-loader.js.map +1 -0
- package/lib/node-ref.d.ts +10 -0
- package/lib/node-ref.d.ts.map +1 -0
- package/lib/node-ref.js +21 -0
- package/lib/node-ref.js.map +1 -0
- package/lib/prisma-field-builder.d.ts +22 -0
- package/lib/prisma-field-builder.d.ts.map +1 -0
- package/lib/prisma-field-builder.js +182 -0
- package/lib/prisma-field-builder.js.map +1 -0
- package/lib/refs.d.ts +13 -0
- package/lib/refs.d.ts.map +1 -0
- package/lib/refs.js +72 -0
- package/lib/refs.js.map +1 -0
- package/lib/schema-builder.d.ts +2 -0
- package/lib/schema-builder.d.ts.map +1 -0
- package/lib/schema-builder.js +93 -0
- package/lib/schema-builder.js.map +1 -0
- package/lib/types.d.ts +164 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +4 -0
- package/lib/types.js.map +1 -0
- package/lib/util/index.d.ts +5 -0
- package/lib/util/index.d.ts.map +1 -0
- package/lib/util/index.js +30 -0
- package/lib/util/index.js.map +1 -0
- package/lib/util/map-includes.d.ts +5 -0
- package/lib/util/map-includes.d.ts.map +1 -0
- package/lib/util/map-includes.js +173 -0
- package/lib/util/map-includes.js.map +1 -0
- package/lib/util/merge-includes.d.ts +3 -0
- package/lib/util/merge-includes.d.ts.map +1 -0
- package/lib/util/merge-includes.js +96 -0
- package/lib/util/merge-includes.js.map +1 -0
- package/package.json +70 -0
- package/src/cursors.ts +159 -0
- package/src/field-builder.ts +115 -0
- package/src/generator.ts +184 -0
- package/src/global-types.ts +180 -0
- package/src/index.ts +18 -0
- package/src/loader-map.ts +48 -0
- package/src/model-loader.ts +135 -0
- package/src/node-ref.ts +29 -0
- package/src/prisma-field-builder.ts +324 -0
- package/src/refs.ts +110 -0
- package/src/schema-builder.ts +124 -0
- package/src/types.ts +470 -0
- package/src/util/index.ts +26 -0
- package/src/util/map-includes.ts +298 -0
- package/src/util/merge-includes.ts +121 -0
- package/tsconfig.json +21 -0
- package/tsconfig.tsbuildinfo +1 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
const core_1 = require("@pothos/core");
|
|
14
|
+
const cursors_1 = require("./cursors");
|
|
15
|
+
const refs_1 = require("./refs");
|
|
16
|
+
const util_1 = require("./util");
|
|
17
|
+
__exportStar(require("./prisma-field-builder"), exports);
|
|
18
|
+
const fieldBuilderProto = core_1.RootFieldBuilder.prototype;
|
|
19
|
+
fieldBuilderProto.prismaField = function prismaField({ type, resolve, ...options }) {
|
|
20
|
+
const model = Array.isArray(type) ? type[0] : type;
|
|
21
|
+
const typeRef = (0, refs_1.getRefFromModel)(model, this.builder);
|
|
22
|
+
const typeParam = Array.isArray(type) ? [typeRef] : typeRef;
|
|
23
|
+
return this.field({
|
|
24
|
+
...options,
|
|
25
|
+
type: typeParam,
|
|
26
|
+
resolve: (parent, args, ctx, info) => {
|
|
27
|
+
const query = (0, util_1.queryFromInfo)(ctx, info);
|
|
28
|
+
return resolve(query, parent, args, ctx, info);
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
fieldBuilderProto.prismaConnection = function prismaConnection({ type, cursor, maxSize, defaultSize, resolve, ...options }, connectionOptions, edgeOptions) {
|
|
33
|
+
var _a;
|
|
34
|
+
const ref = (0, refs_1.getRefFromModel)(type, this.builder);
|
|
35
|
+
let typeName;
|
|
36
|
+
const fieldRef = this.connection({
|
|
37
|
+
...options,
|
|
38
|
+
type: ref,
|
|
39
|
+
resolve: (parent, args, ctx, info) => (0, cursors_1.resolvePrismaCursorConnection)({
|
|
40
|
+
query: (0, util_1.queryFromInfo)(ctx, info),
|
|
41
|
+
column: cursor,
|
|
42
|
+
maxSize,
|
|
43
|
+
defaultSize,
|
|
44
|
+
args,
|
|
45
|
+
}, (query) => resolve(query, parent, args, ctx, info)),
|
|
46
|
+
}, {
|
|
47
|
+
...connectionOptions,
|
|
48
|
+
extensions: {
|
|
49
|
+
...(_a = connectionOptions) === null || _a === void 0 ? void 0 : _a.extensions,
|
|
50
|
+
pothosPrismaIndirectInclude: {
|
|
51
|
+
getType: () => {
|
|
52
|
+
if (!typeName) {
|
|
53
|
+
typeName = this.builder.configStore.getTypeConfig(ref).name;
|
|
54
|
+
}
|
|
55
|
+
return typeName;
|
|
56
|
+
},
|
|
57
|
+
path: [{ name: 'edges' }, { name: 'node' }],
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
}, edgeOptions);
|
|
61
|
+
return fieldRef;
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=field-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-builder.js","sourceRoot":"","sources":["../src/field-builder.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,uCAQsB;AACtB,uCAA0D;AAC1D,iCAAyC;AAEzC,iCAAuC;AAEvC,yDAAuC;AAEvC,MAAM,iBAAiB,GAAG,uBAAgB,CAAC,SAI1C,CAAC;AAEF,iBAAiB,CAAC,WAAW,GAAG,SAAS,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;IAChF,MAAM,KAAK,GAAW,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3D,MAAM,OAAO,GAAG,IAAA,sBAAe,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,SAAS,GAA2B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAEpF,OAAO,IAAI,CAAC,KAAK,CAAC;QAChB,GAAG,OAAO;QACV,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,CAAC,MAAe,EAAE,IAAa,EAAE,GAAO,EAAE,IAAwB,EAAE,EAAE;YAC7E,MAAM,KAAK,GAAG,IAAA,oBAAa,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAEvC,OAAO,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAa,EAAE,GAAG,EAAE,IAAI,CAAU,CAAC;QACnE,CAAC;KACF,CAAU,CAAC;AACd,CAAC,CAAC;AAEF,iBAAiB,CAAC,gBAAgB,GAAG,SAAS,gBAAgB,CAQ5D,EACE,IAAI,EACJ,MAAM,EACN,OAAO,EACP,WAAW,EACX,OAAO,EACP,GAAG,OAAO,EAWX,EACD,iBAAqB,EACrB,WAAe;;IAEf,MAAM,GAAG,GAAG,IAAA,sBAAe,EAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,QAA4B,CAAC;IAEjC,MAAM,QAAQ,GACZ,IACD,CAAC,UAAU,CACV;QACE,GAAG,OAAO;QACV,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,CACP,MAAe,EACf,IAAkD,EAClD,GAAO,EACP,IAAwB,EACxB,EAAE,CACF,IAAA,uCAA6B,EAC3B;YACE,KAAK,EAAE,IAAA,oBAAa,EAAC,GAAG,EAAE,IAAI,CAAC;YAC/B,MAAM,EAAE,MAAM;YACd,OAAO;YACP,WAAW;YACX,IAAI;SACL,EACD,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAc,EAAE,MAAM,EAAE,IAAa,EAAE,GAAG,EAAE,IAAI,CAAC,CACrE;KACJ,EACD;QACE,GAAG,iBAAiB;QACpB,UAAU,EAAE;YACV,GAAG,MAAC,iBAAoD,0CAAE,UAAU;YACpE,2BAA2B,EAAE;gBAC3B,OAAO,EAAE,GAAG,EAAE;oBACZ,IAAI,CAAC,QAAQ,EAAE;wBACb,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;qBAC7D;oBAED,OAAO,QAAQ,CAAC;gBAClB,CAAC;gBACD,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;aAC5C;SACF;KACF,EACD,WAAW,CACZ,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":""}
|
package/lib/generator.js
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
/* eslint-disable no-nested-ternary */
|
|
23
|
+
const fs_1 = require("fs");
|
|
24
|
+
const path_1 = require("path");
|
|
25
|
+
const typescript_1 = __importStar(require("typescript"));
|
|
26
|
+
const generator_helper_1 = require("@prisma/generator-helper");
|
|
27
|
+
(0, generator_helper_1.generatorHandler)({
|
|
28
|
+
onManifest: () => ({
|
|
29
|
+
prettyName: 'Pothos integration',
|
|
30
|
+
defaultOutput: 'node_modules/@pothos/plugin-prisma/generated.ts',
|
|
31
|
+
requiresGenerators: ['prisma-client-js'],
|
|
32
|
+
}),
|
|
33
|
+
onGenerate: async (options) => {
|
|
34
|
+
var _a;
|
|
35
|
+
const config = options.generator.config;
|
|
36
|
+
const prismaLocation = (_a = config.clientOutput) !== null && _a !== void 0 ? _a : options.otherGenerators.find((gen) => gen.provider.value === 'prisma-client-js').output
|
|
37
|
+
.value;
|
|
38
|
+
const importStatement = typescript_1.default.factory.createImportDeclaration([], [], typescript_1.default.factory.createImportClause(true, undefined, typescript_1.default.factory.createNamedImports([
|
|
39
|
+
typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier('Prisma')),
|
|
40
|
+
...options.dmmf.datamodel.models.map((model) => typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier(model.name))),
|
|
41
|
+
])), typescript_1.default.factory.createStringLiteral(prismaLocation));
|
|
42
|
+
const modelTypes = options.dmmf.datamodel.models.map((model) => {
|
|
43
|
+
const relations = model.fields.filter((field) => !!field.relationName);
|
|
44
|
+
const listRelations = model.fields.filter((field) => !!field.relationName && field.isList);
|
|
45
|
+
return typescript_1.default.factory.createPropertySignature([], model.name, undefined, typescript_1.default.factory.createTypeLiteralNode([
|
|
46
|
+
typescript_1.default.factory.createPropertySignature([], 'Shape', undefined, typescript_1.default.factory.createTypeReferenceNode(model.name)),
|
|
47
|
+
typescript_1.default.factory.createPropertySignature([], 'Include', undefined, relations.length > 0
|
|
48
|
+
? typescript_1.default.factory.createTypeReferenceNode(`Prisma.${model.name}Include`)
|
|
49
|
+
: typescript_1.default.factory.createTypeReferenceNode('never')),
|
|
50
|
+
typescript_1.default.factory.createPropertySignature([], 'Where', undefined, typescript_1.default.factory.createTypeReferenceNode(`Prisma.${model.name}WhereUniqueInput`)),
|
|
51
|
+
typescript_1.default.factory.createPropertySignature([], 'Fields', undefined, relations.length > 0
|
|
52
|
+
? typescript_1.default.factory.createUnionTypeNode(relations.map((field) => typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral(field.name))))
|
|
53
|
+
: typescript_1.default.factory.createTypeReferenceNode('never')),
|
|
54
|
+
typescript_1.default.factory.createPropertySignature([], 'ListRelations', undefined, listRelations.length > 0
|
|
55
|
+
? typescript_1.default.factory.createUnionTypeNode(listRelations.map((field) => typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral(field.name))))
|
|
56
|
+
: typescript_1.default.factory.createTypeReferenceNode('never')),
|
|
57
|
+
typescript_1.default.factory.createPropertySignature([], 'Relations', undefined, typescript_1.default.factory.createTypeLiteralNode(relations.map((field) => {
|
|
58
|
+
const typeName = typeof field.type === 'string' ? field.type : field.type.name;
|
|
59
|
+
return typescript_1.default.factory.createPropertySignature([], field.name, undefined, typescript_1.default.factory.createTypeLiteralNode([
|
|
60
|
+
typescript_1.default.factory.createPropertySignature([], 'Shape', undefined, field.isList
|
|
61
|
+
? typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createTypeReferenceNode(typeName))
|
|
62
|
+
: field.isRequired
|
|
63
|
+
? typescript_1.default.factory.createTypeReferenceNode(typeName)
|
|
64
|
+
: typescript_1.default.factory.createUnionTypeNode([
|
|
65
|
+
typescript_1.default.factory.createTypeReferenceNode(typeName),
|
|
66
|
+
typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createNull()),
|
|
67
|
+
])),
|
|
68
|
+
typescript_1.default.factory.createPropertySignature([], 'Types', undefined, typescript_1.default.factory.createIndexedAccessTypeNode(typescript_1.default.factory.createTypeReferenceNode('PrismaTypes'), typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral(typeName)))),
|
|
69
|
+
]));
|
|
70
|
+
}))),
|
|
71
|
+
]));
|
|
72
|
+
});
|
|
73
|
+
const prismaTypes = typescript_1.default.factory.createInterfaceDeclaration([], [
|
|
74
|
+
typescript_1.default.factory.createModifier(typescript_1.SyntaxKind.ExportKeyword),
|
|
75
|
+
typescript_1.default.factory.createModifier(typescript_1.SyntaxKind.DefaultKeyword),
|
|
76
|
+
], 'PrismaTypes', [], [], modelTypes);
|
|
77
|
+
const printer = typescript_1.default.createPrinter({});
|
|
78
|
+
const sourcefile = typescript_1.default.createSourceFile(options.generator.output.value, '', typescript_1.ScriptTarget.ESNext, false, typescript_1.ScriptKind.TS);
|
|
79
|
+
const nodes = typescript_1.default.factory.createNodeArray([importStatement, prismaTypes]);
|
|
80
|
+
const result = printer.printList(typescript_1.ListFormat.SourceFileStatements, nodes, sourcefile);
|
|
81
|
+
await new Promise((resolve, reject) => {
|
|
82
|
+
(0, fs_1.mkdir)((0, path_1.dirname)(sourcefile.fileName), { recursive: true }, (err) => {
|
|
83
|
+
if (err) {
|
|
84
|
+
reject(err);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
resolve();
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
return new Promise((resolve, reject) => {
|
|
92
|
+
(0, fs_1.writeFile)(sourcefile.fileName, result, (err) => {
|
|
93
|
+
if (err) {
|
|
94
|
+
reject(err);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
resolve();
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
},
|
|
102
|
+
});
|
|
103
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { FieldKind, FieldNullability, FieldRef, InputFieldMap, InterfaceParam, NormalizeArgs, OutputType, PluginName, SchemaTypes, ShapeFromTypeParam } from '@pothos/core';
|
|
2
|
+
import PrismaNodeRef from './node-ref';
|
|
3
|
+
import { PrismaConnectionFieldOptions, PrismaFieldOptions, PrismaModelTypes, PrismaNodeOptions, PrismaObjectTypeOptions, ShapeWithInclude } from './types';
|
|
4
|
+
import { PrismaPlugin } from '.';
|
|
5
|
+
declare global {
|
|
6
|
+
export namespace PothosSchemaTypes {
|
|
7
|
+
interface Plugins<Types extends SchemaTypes> {
|
|
8
|
+
prisma: PrismaPlugin<Types>;
|
|
9
|
+
}
|
|
10
|
+
interface SchemaBuilderOptions<Types extends SchemaTypes> {
|
|
11
|
+
prisma: {
|
|
12
|
+
client: {
|
|
13
|
+
$connect: () => Promise<void>;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
interface UserSchemaTypes {
|
|
18
|
+
PrismaTypes: {};
|
|
19
|
+
}
|
|
20
|
+
interface ExtendDefaultTypes<PartialTypes extends Partial<UserSchemaTypes>> {
|
|
21
|
+
PrismaTypes: undefined extends PartialTypes['PrismaTypes'] ? {} : PartialTypes['PrismaTypes'] & {};
|
|
22
|
+
}
|
|
23
|
+
interface SchemaBuilder<Types extends SchemaTypes> {
|
|
24
|
+
prismaObject: <Name extends keyof Types['PrismaTypes'], Interfaces extends InterfaceParam<Types>[], FindUnique, Model extends PrismaModelTypes & Types['PrismaTypes'][Name], Include extends Model['Include'] = {}, Shape extends object = ShapeWithInclude<Model, Include>>(name: Name, options: PrismaObjectTypeOptions<Types, Model, Interfaces, FindUnique, Include, Shape>) => ObjectRef<Shape>;
|
|
25
|
+
prismaNode: 'relay' extends PluginName ? <Name extends keyof Types['PrismaTypes'], Interfaces extends InterfaceParam<Types>[], Model extends PrismaModelTypes & Types['PrismaTypes'][Name], Include extends Model['Include'] = {}, Shape extends object = ShapeWithInclude<Model, Include>>(name: Name, options: PrismaNodeOptions<Types, Model, Interfaces, Include, Shape>) => PrismaNodeRef<Shape> : '@pothos/plugin-relay is required to use this method';
|
|
26
|
+
}
|
|
27
|
+
interface RootFieldBuilder<Types extends SchemaTypes, ParentShape, Kind extends FieldKind = FieldKind> {
|
|
28
|
+
prismaField: <Args extends InputFieldMap, TypeParam extends keyof Types['PrismaTypes'] | [keyof Types['PrismaTypes']], Nullable extends FieldNullability<Type>, ResolveReturnShape, Type extends TypeParam extends [keyof Types['PrismaTypes']] ? [ObjectRef<Model['Shape']>] : ObjectRef<Model['Shape']>, Model extends PrismaModelTypes = PrismaModelTypes & (TypeParam extends [keyof Types['PrismaTypes']] ? Types['PrismaTypes'][TypeParam[0]] : TypeParam extends keyof Types['PrismaTypes'] ? Types['PrismaTypes'][TypeParam] : never)>(options: PrismaFieldOptions<Types, ParentShape, TypeParam, Model, Type, Args, Nullable, ResolveReturnShape, Kind>) => FieldRef<ShapeFromTypeParam<Types, Type, Nullable>>;
|
|
29
|
+
prismaConnection: 'relay' extends PluginName ? <Type extends keyof Types['PrismaTypes'], Nullable extends boolean, ResolveReturnShape, Args extends InputFieldMap = {}, Model extends PrismaModelTypes = PrismaModelTypes & Types['PrismaTypes'][Type]>(...args: NormalizeArgs<[
|
|
30
|
+
options: PrismaConnectionFieldOptions<Types, ParentShape, Type, Model, ObjectRef<Model['Shape']>, Nullable, Args, ResolveReturnShape, Kind>,
|
|
31
|
+
connectionOptions?: ConnectionObjectOptions<Types, ObjectRef<Model['Shape']>, ResolveReturnShape>,
|
|
32
|
+
edgeOptions?: ConnectionEdgeObjectOptions<Types, ObjectRef<Model['Shape']>, ResolveReturnShape>
|
|
33
|
+
]>) => FieldRef<ConnectionShapeHelper<Types, Model['Shape'], Nullable>['shape']> : '@pothos/plugin-relay is required to use this method';
|
|
34
|
+
}
|
|
35
|
+
interface ConnectionFieldOptions<Types extends SchemaTypes, ParentShape, Type extends OutputType<Types>, Nullable extends boolean, Args extends InputFieldMap, ResolveReturnShape> {
|
|
36
|
+
}
|
|
37
|
+
interface ConnectionObjectOptions<Types extends SchemaTypes, Type extends OutputType<Types>, Resolved> {
|
|
38
|
+
}
|
|
39
|
+
interface ConnectionEdgeObjectOptions<Types extends SchemaTypes, Type extends OutputType<Types>, Resolved> {
|
|
40
|
+
}
|
|
41
|
+
interface DefaultConnectionArguments {
|
|
42
|
+
first?: number | null | undefined;
|
|
43
|
+
last?: number | null | undefined;
|
|
44
|
+
before?: string | null | undefined;
|
|
45
|
+
after?: string | null | undefined;
|
|
46
|
+
}
|
|
47
|
+
interface ConnectionShapeHelper<Types extends SchemaTypes, T, Nullable> {
|
|
48
|
+
shape: unknown;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=global-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global-types.d.ts","sourceRoot":"","sources":["../src/global-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global-types.js","sourceRoot":"","sources":["../src/global-types.ts"],"names":[],"mappings":""}
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import './global-types';
|
|
2
|
+
import './field-builder';
|
|
3
|
+
import './schema-builder';
|
|
4
|
+
import { BasePlugin, BuildCache, SchemaTypes } from '@pothos/core';
|
|
5
|
+
export * from './types';
|
|
6
|
+
declare const pluginName: "prisma";
|
|
7
|
+
export default pluginName;
|
|
8
|
+
export declare class PrismaPlugin<Types extends SchemaTypes> extends BasePlugin<Types> {
|
|
9
|
+
constructor(cache: BuildCache<Types>);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,CAAC;AACxB,OAAO,iBAAiB,CAAC;AACzB,OAAO,kBAAkB,CAAC;AAC1B,OAAsB,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAElF,cAAc,SAAS,CAAC;AAExB,QAAA,MAAM,UAAU,UAAoB,CAAC;AAErC,eAAe,UAAU,CAAC;AAE1B,qBAAa,YAAY,CAAC,KAAK,SAAS,WAAW,CAAE,SAAQ,UAAU,CAAC,KAAK,CAAC;gBAChE,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC;CAGrC"}
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
22
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.PrismaPlugin = void 0;
|
|
26
|
+
require("./global-types");
|
|
27
|
+
require("./field-builder");
|
|
28
|
+
require("./schema-builder");
|
|
29
|
+
const core_1 = __importStar(require("@pothos/core"));
|
|
30
|
+
__exportStar(require("./types"), exports);
|
|
31
|
+
const pluginName = 'prisma';
|
|
32
|
+
exports.default = pluginName;
|
|
33
|
+
class PrismaPlugin extends core_1.BasePlugin {
|
|
34
|
+
constructor(cache) {
|
|
35
|
+
super(cache, pluginName);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.PrismaPlugin = PrismaPlugin;
|
|
39
|
+
core_1.default.registerPlugin(pluginName, PrismaPlugin);
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0BAAwB;AACxB,2BAAyB;AACzB,4BAA0B;AAC1B,qDAAkF;AAElF,0CAAwB;AAExB,MAAM,UAAU,GAAG,QAAiB,CAAC;AAErC,kBAAe,UAAU,CAAC;AAE1B,MAAa,YAAwC,SAAQ,iBAAiB;IAC5E,YAAY,KAAwB;QAClC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC3B,CAAC;CACF;AAJD,oCAIC;AAED,cAAa,CAAC,cAAc,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { GraphQLResolveInfo } from 'graphql';
|
|
2
|
+
import { LoaderMappings } from './types';
|
|
3
|
+
export declare function cacheKey(path: GraphQLResolveInfo['path'], subPath: string[]): string;
|
|
4
|
+
export declare function setLoaderMappings(ctx: object, path: GraphQLResolveInfo['path'], value: LoaderMappings): void;
|
|
5
|
+
export declare function getLoaderMapping(ctx: object, path: GraphQLResolveInfo['path']): LoaderMappings | null;
|
|
6
|
+
//# sourceMappingURL=loader-map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader-map.d.ts","sourceRoot":"","sources":["../src/loader-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAIzC,wBAAgB,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,UAgB3E;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAChC,KAAK,EAAE,cAAc,QAatB;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,yBAK7E"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getLoaderMapping = exports.setLoaderMappings = exports.cacheKey = void 0;
|
|
4
|
+
const core_1 = require("@pothos/core");
|
|
5
|
+
const cache = (0, core_1.createContextCache)((ctx) => new Map());
|
|
6
|
+
function cacheKey(path, subPath) {
|
|
7
|
+
let key = '';
|
|
8
|
+
let current = path;
|
|
9
|
+
while (current) {
|
|
10
|
+
if (typeof current.key === 'string') {
|
|
11
|
+
key = key ? `${current.key}.${key}` : current.key;
|
|
12
|
+
}
|
|
13
|
+
current = current.prev;
|
|
14
|
+
}
|
|
15
|
+
for (const entry of subPath) {
|
|
16
|
+
key = `${key}.${entry}`;
|
|
17
|
+
}
|
|
18
|
+
return key;
|
|
19
|
+
}
|
|
20
|
+
exports.cacheKey = cacheKey;
|
|
21
|
+
function setLoaderMappings(ctx, path, value) {
|
|
22
|
+
Object.keys(value).forEach((field) => {
|
|
23
|
+
var _a;
|
|
24
|
+
const map = cache(ctx);
|
|
25
|
+
for (const mapping of value[field]) {
|
|
26
|
+
const selectionName = (_a = mapping.alias) !== null && _a !== void 0 ? _a : mapping.field;
|
|
27
|
+
const subPath = [...mapping.indirectPath, selectionName];
|
|
28
|
+
const key = cacheKey(path, subPath);
|
|
29
|
+
map.set(key, mapping.mappings);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
exports.setLoaderMappings = setLoaderMappings;
|
|
34
|
+
function getLoaderMapping(ctx, path) {
|
|
35
|
+
var _a;
|
|
36
|
+
const map = cache(ctx);
|
|
37
|
+
const key = cacheKey(path, []);
|
|
38
|
+
return (_a = map.get(key)) !== null && _a !== void 0 ? _a : null;
|
|
39
|
+
}
|
|
40
|
+
exports.getLoaderMapping = getLoaderMapping;
|
|
41
|
+
//# sourceMappingURL=loader-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader-map.js","sourceRoot":"","sources":["../src/loader-map.ts"],"names":[],"mappings":";;;AACA,uCAAkD;AAGlD,MAAM,KAAK,GAAG,IAAA,yBAAkB,EAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAA0B,CAAC,CAAC;AAE7E,SAAgB,QAAQ,CAAC,IAAgC,EAAE,OAAiB;IAC1E,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,OAAO,GAA2C,IAAI,CAAC;IAE3D,OAAO,OAAO,EAAE;QACd,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE;YACnC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;SACnD;QACD,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;KACxB;IAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC3B,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;KACzB;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAhBD,4BAgBC;AAED,SAAgB,iBAAiB,CAC/B,GAAW,EACX,IAAgC,EAChC,KAAqB;IAErB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;;QACnC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAEvB,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;YAClC,MAAM,aAAa,GAAG,MAAA,OAAO,CAAC,KAAK,mCAAI,OAAO,CAAC,KAAK,CAAC;YACrD,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;YACzD,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAEpC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;SAChC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAhBD,8CAgBC;AAED,SAAgB,gBAAgB,CAAC,GAAW,EAAE,IAAgC;;IAC5E,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACvB,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAE/B,OAAO,MAAA,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAI,IAAI,CAAC;AAC9B,CAAC;AALD,4CAKC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SchemaTypes } from '@pothos/core';
|
|
2
|
+
import { PrismaDelegate } from './types';
|
|
3
|
+
export declare class ModelLoader {
|
|
4
|
+
model: object;
|
|
5
|
+
delegate: PrismaDelegate;
|
|
6
|
+
findUnique: (args: unknown, ctx: {}) => unknown;
|
|
7
|
+
staged: Set<{
|
|
8
|
+
promise: Promise<Record<string, unknown>>;
|
|
9
|
+
include: Record<string, unknown>;
|
|
10
|
+
}>;
|
|
11
|
+
constructor(model: object, delegate: PrismaDelegate, findUnique: (args: unknown, ctx: {}) => unknown);
|
|
12
|
+
static forModel<Types extends SchemaTypes>(modelName: string, builder: PothosSchemaTypes.SchemaBuilder<Types>): (model: object) => ModelLoader;
|
|
13
|
+
loadCount(relation: string, context: {}): Promise<number>;
|
|
14
|
+
loadRelation(relation: string, include: unknown, context: {}): Promise<unknown>;
|
|
15
|
+
initLoad(relation: string, includeArg: unknown, context: {}, count?: boolean): Promise<Record<string, unknown>>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=model-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-loader.d.ts","sourceRoot":"","sources":["../src/model-loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,WAAW,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAKzC,qBAAa,WAAW;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,KAAK,OAAO,CAAC;IAEhD,MAAM;iBACK,QAAQ,OAAO,MAAM,EAAE,OAAO,CAAC,CAAC;iBAChC,OAAO,MAAM,EAAE,OAAO,CAAC;OAC7B;gBAGH,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,KAAK,OAAO;IAOjD,MAAM,CAAC,QAAQ,CAAC,KAAK,SAAS,WAAW,EACvC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC;IAiB3C,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBzD,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IA8B5D,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,UAAQ;CAoCjF"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ModelLoader = void 0;
|
|
4
|
+
/* eslint-disable prefer-destructuring */
|
|
5
|
+
/* eslint-disable no-underscore-dangle */
|
|
6
|
+
const core_1 = require("@pothos/core");
|
|
7
|
+
const refs_1 = require("./refs");
|
|
8
|
+
const util_1 = require("./util");
|
|
9
|
+
const loaderCache = new WeakMap();
|
|
10
|
+
class ModelLoader {
|
|
11
|
+
constructor(model, delegate, findUnique) {
|
|
12
|
+
this.staged = new Set();
|
|
13
|
+
this.model = model;
|
|
14
|
+
this.delegate = delegate;
|
|
15
|
+
this.findUnique = findUnique;
|
|
16
|
+
}
|
|
17
|
+
static forModel(modelName, builder) {
|
|
18
|
+
const delegate = (0, refs_1.getDelegateFromModel)(builder.options.prisma.client, modelName);
|
|
19
|
+
if (!loaderCache.has(delegate)) {
|
|
20
|
+
const ref = (0, refs_1.getRefFromModel)(modelName, builder);
|
|
21
|
+
const findUnique = (0, refs_1.getFindUniqueForRef)(ref, builder);
|
|
22
|
+
loaderCache.set(delegate, (0, core_1.createContextCache)((model) => new ModelLoader(model, delegate, findUnique)));
|
|
23
|
+
}
|
|
24
|
+
return loaderCache.get(delegate);
|
|
25
|
+
}
|
|
26
|
+
async loadCount(relation, context) {
|
|
27
|
+
let promise;
|
|
28
|
+
const entry = [...this.staged][0];
|
|
29
|
+
if (entry) {
|
|
30
|
+
if (!entry.include._count) {
|
|
31
|
+
entry.include._count = { select: {} };
|
|
32
|
+
}
|
|
33
|
+
entry.include._count.select[relation] = true;
|
|
34
|
+
promise = entry.promise;
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
promise = this.initLoad(relation, null, context, true);
|
|
38
|
+
}
|
|
39
|
+
const result = await promise;
|
|
40
|
+
return result._count[relation];
|
|
41
|
+
}
|
|
42
|
+
async loadRelation(relation, include, context) {
|
|
43
|
+
let promise;
|
|
44
|
+
for (const entry of this.staged) {
|
|
45
|
+
if (entry.include[relation] === undefined) {
|
|
46
|
+
promise = entry.promise;
|
|
47
|
+
entry.include[relation] = include;
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
const merged = (0, util_1.mergeIncludes)(entry.include[relation], include);
|
|
51
|
+
if (merged) {
|
|
52
|
+
entry.include[relation] = merged;
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (!promise) {
|
|
57
|
+
promise = this.initLoad(relation, include, context);
|
|
58
|
+
}
|
|
59
|
+
const result = await promise;
|
|
60
|
+
return result[relation];
|
|
61
|
+
}
|
|
62
|
+
async initLoad(relation, includeArg, context, count = false) {
|
|
63
|
+
const include = count
|
|
64
|
+
? {
|
|
65
|
+
_count: {
|
|
66
|
+
select: {
|
|
67
|
+
[relation]: true,
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
}
|
|
71
|
+
: {
|
|
72
|
+
[relation]: includeArg,
|
|
73
|
+
};
|
|
74
|
+
const promise = new Promise((resolve, reject) => {
|
|
75
|
+
setTimeout(() => {
|
|
76
|
+
this.staged.delete(entry);
|
|
77
|
+
resolve(this.delegate.findUnique({
|
|
78
|
+
rejectOnNotFound: true,
|
|
79
|
+
where: { ...this.findUnique(this.model, context) },
|
|
80
|
+
include,
|
|
81
|
+
}));
|
|
82
|
+
}, 0);
|
|
83
|
+
});
|
|
84
|
+
const entry = {
|
|
85
|
+
promise,
|
|
86
|
+
include,
|
|
87
|
+
};
|
|
88
|
+
this.staged.add(entry);
|
|
89
|
+
return promise;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.ModelLoader = ModelLoader;
|
|
93
|
+
//# sourceMappingURL=model-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-loader.js","sourceRoot":"","sources":["../src/model-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { abstractReturnShapeKey, ObjectRef } from '@pothos/core';
|
|
2
|
+
import { WithBrand } from './types';
|
|
3
|
+
export default class PrismaNodeRef<T> extends ObjectRef<T, T> {
|
|
4
|
+
[abstractReturnShapeKey]: WithBrand<T>;
|
|
5
|
+
addBrand<V extends T | T[]>(value: V): V extends T[] ? {
|
|
6
|
+
[K in keyof V]: WithBrand<V[K]>;
|
|
7
|
+
} : WithBrand<V>;
|
|
8
|
+
hasBrand(value: unknown): boolean;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=node-ref.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-ref.d.ts","sourceRoot":"","sources":["../src/node-ref.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAiB,SAAS,EAAgB,MAAM,cAAc,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,MAAM,CAAC,OAAO,OAAO,aAAa,CAAC,CAAC,CAAE,SAAQ,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC,sBAAsB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAEvC,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EACxB,KAAK,EAAE,CAAC,GACP,CAAC,SAAS,CAAC,EAAE,GAAG;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,GAAG,SAAS,CAAC,CAAC,CAAC;IAYrE,QAAQ,CAAC,KAAK,EAAE,OAAO;CAQxB"}
|
package/lib/node-ref.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@pothos/core");
|
|
4
|
+
class PrismaNodeRef extends core_1.ObjectRef {
|
|
5
|
+
addBrand(value) {
|
|
6
|
+
if (Array.isArray(value)) {
|
|
7
|
+
value.forEach((val) => void (0, core_1.brandWithType)(val, this.name));
|
|
8
|
+
return value;
|
|
9
|
+
}
|
|
10
|
+
(0, core_1.brandWithType)(value, this.name);
|
|
11
|
+
return value;
|
|
12
|
+
}
|
|
13
|
+
hasBrand(value) {
|
|
14
|
+
return (typeof value === 'object' &&
|
|
15
|
+
value !== null &&
|
|
16
|
+
core_1.typeBrandKey in value &&
|
|
17
|
+
value[core_1.typeBrandKey] === this.name);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.default = PrismaNodeRef;
|
|
21
|
+
//# sourceMappingURL=node-ref.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-ref.js","sourceRoot":"","sources":["../src/node-ref.ts"],"names":[],"mappings":";;AAAA,uCAA8F;AAG9F,MAAqB,aAAiB,SAAQ,gBAAe;IAG3D,QAAQ,CACN,KAAQ;QAER,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,IAAA,oBAAa,EAAC,GAAG,EAAE,IAAI,CAAC,IAAa,CAAC,CAAC,CAAC;YAEpE,OAAO,KAAc,CAAC;SACvB;QAED,IAAA,oBAAa,EAAC,KAAK,EAAE,IAAI,CAAC,IAAa,CAAC,CAAC;QAEzC,OAAO,KAAc,CAAC;IACxB,CAAC;IAED,QAAQ,CAAC,KAAc;QACrB,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,KAAK,IAAI;YACd,mBAAY,IAAI,KAAK;YACpB,KAAsC,CAAC,mBAAY,CAAC,KAAK,IAAI,CAAC,IAAI,CACpE,CAAC;IACJ,CAAC;CACF;AAzBD,gCAyBC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { FieldRef, InputFieldMap, NormalizeArgs, ObjectFieldBuilder, ObjectRef, PluginName, SchemaTypes } from '@pothos/core';
|
|
2
|
+
import { PrismaDelegate, PrismaModelTypes, RelatedConnectionOptions, RelatedFieldOptions, RelationCountOptions } from './types';
|
|
3
|
+
export declare class PrismaObjectFieldBuilder<Types extends SchemaTypes, Model extends PrismaModelTypes, NeedsResolve extends boolean, Shape extends object = Model['Shape']> extends ObjectFieldBuilder<Types, Shape> {
|
|
4
|
+
delegate: PrismaDelegate;
|
|
5
|
+
model: string;
|
|
6
|
+
relatedConnection: 'relay' extends PluginName ? <Field extends Model['ListRelations'], Nullable extends boolean, Args extends InputFieldMap, ResolveReturnShape>(...args: NormalizeArgs<[
|
|
7
|
+
field: Field,
|
|
8
|
+
options: RelatedConnectionOptions<Types, Model, Field, Nullable, Args, NeedsResolve>,
|
|
9
|
+
connectionOptions?: PothosSchemaTypes.ConnectionObjectOptions<Types, ObjectRef<Shape>, ResolveReturnShape>,
|
|
10
|
+
edgeOptions?: PothosSchemaTypes.ConnectionEdgeObjectOptions<Types, ObjectRef<Shape>, ResolveReturnShape>
|
|
11
|
+
]>) => FieldRef<PothosSchemaTypes.ConnectionShapeHelper<Types, Shape, Nullable>['shape']> : '@pothos/plugin-relay is required to use this method';
|
|
12
|
+
constructor(name: string, builder: PothosSchemaTypes.SchemaBuilder<Types>, model: string);
|
|
13
|
+
relation<Field extends Model['Fields'], Nullable extends boolean, Args extends InputFieldMap, ResolveReturnShape>(...allArgs: NormalizeArgs<[
|
|
14
|
+
name: Field,
|
|
15
|
+
options?: RelatedFieldOptions<Types, Model, Field, Nullable, Args, ResolveReturnShape, NeedsResolve, Shape>
|
|
16
|
+
]>): FieldRef<Model['Relations'][Field]['Shape'], 'Object'>;
|
|
17
|
+
relationCount<Field extends Model['Fields']>(...allArgs: NormalizeArgs<[
|
|
18
|
+
name: Field,
|
|
19
|
+
options?: RelationCountOptions<Types, Shape, NeedsResolve>
|
|
20
|
+
]>): FieldRef<number, 'Object'>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=prisma-field-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prisma-field-builder.d.ts","sourceRoot":"","sources":["../src/prisma-field-builder.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,QAAQ,EACR,aAAa,EAEb,aAAa,EACb,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,WAAW,EACZ,MAAM,cAAc,CAAC;AAKtB,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAGjB,qBAAa,wBAAwB,CACnC,KAAK,SAAS,WAAW,EACzB,KAAK,SAAS,gBAAgB,EAC9B,YAAY,SAAS,OAAO,EAC5B,KAAK,SAAS,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CACrC,SAAQ,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC;IACxC,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IAEd,iBAAiB,EAAE,OAAO,SAAS,UAAU,GACzC,CACE,KAAK,SAAS,KAAK,CAAC,eAAe,CAAC,EACpC,QAAQ,SAAS,OAAO,EACxB,IAAI,SAAS,aAAa,EAC1B,kBAAkB,EAElB,GAAG,IAAI,EAAE,aAAa,CACpB;QACE,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,wBAAwB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC;QACpF,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,uBAAuB,CAC3D,KAAK,EACL,SAAS,CAAC,KAAK,CAAC,EAChB,kBAAkB,CACnB;QACD,WAAW,CAAC,EAAE,iBAAiB,CAAC,2BAA2B,CACzD,KAAK,EACL,SAAS,CAAC,KAAK,CAAC,EAChB,kBAAkB,CACnB;KACF,CACF,KACE,QAAQ,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,GACvF,qDAAqD,CA4I9C;gBAEC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM;IAOxF,QAAQ,CACN,KAAK,SAAS,KAAK,CAAC,QAAQ,CAAC,EAC7B,QAAQ,SAAS,OAAO,EACxB,IAAI,SAAS,aAAa,EAC1B,kBAAkB,EAElB,GAAG,OAAO,EAAE,aAAa,CACvB;QACE,IAAI,EAAE,KAAK;QACX,OAAO,CAAC,EAAE,mBAAmB,CAC3B,KAAK,EACL,KAAK,EACL,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,kBAAkB,EAClB,YAAY,EACZ,KAAK,CACN;KACF,CACF,GACA,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC;IAwDzD,aAAa,CAAC,KAAK,SAAS,KAAK,CAAC,QAAQ,CAAC,EACzC,GAAG,OAAO,EAAE,aAAa,CACvB;QAAC,IAAI,EAAE,KAAK;QAAE,OAAO,CAAC,EAAE,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC;KAAC,CAC1E,GACA,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;CAmC9B"}
|