@pothos/plugin-prisma 0.0.0-preview-20220211212258
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 +18 -0
- package/.turbo/turbo-type.log +5 -0
- package/CHANGELOG.md +355 -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 +53 -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 +83 -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 +18 -0
- package/esm/model-loader.d.ts.map +1 -0
- package/esm/model-loader.js +101 -0
- package/esm/model-loader.js.map +1 -0
- package/esm/node-ref.d.ts +12 -0
- package/esm/node-ref.d.ts.map +1 -0
- package/esm/node-ref.js +19 -0
- package/esm/node-ref.js.map +1 -0
- package/esm/object-ref.d.ts +7 -0
- package/esm/object-ref.d.ts.map +1 -0
- package/esm/object-ref.js +5 -0
- package/esm/object-ref.js.map +1 -0
- package/esm/package.json +3 -0
- package/esm/prisma-field-builder.d.ts +28 -0
- package/esm/prisma-field-builder.d.ts.map +1 -0
- package/esm/prisma-field-builder.js +204 -0
- package/esm/prisma-field-builder.js.map +1 -0
- package/esm/refs.d.ts +15 -0
- package/esm/refs.d.ts.map +1 -0
- package/esm/refs.js +64 -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 +65 -0
- package/esm/schema-builder.js.map +1 -0
- package/esm/types.d.ts +177 -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 +6 -0
- package/esm/util/map-includes.d.ts.map +1 -0
- package/esm/util/map-includes.js +184 -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/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 +65 -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 +104 -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 +18 -0
- package/lib/model-loader.d.ts.map +1 -0
- package/lib/model-loader.js +105 -0
- package/lib/model-loader.js.map +1 -0
- package/lib/node-ref.d.ts +12 -0
- package/lib/node-ref.d.ts.map +1 -0
- package/lib/node-ref.js +22 -0
- package/lib/node-ref.js.map +1 -0
- package/lib/object-ref.d.ts +7 -0
- package/lib/object-ref.d.ts.map +1 -0
- package/lib/object-ref.js +9 -0
- package/lib/object-ref.js.map +1 -0
- package/lib/prisma-field-builder.d.ts +28 -0
- package/lib/prisma-field-builder.d.ts.map +1 -0
- package/lib/prisma-field-builder.js +208 -0
- package/lib/prisma-field-builder.js.map +1 -0
- package/lib/refs.d.ts +15 -0
- package/lib/refs.d.ts.map +1 -0
- package/lib/refs.js +73 -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 +89 -0
- package/lib/schema-builder.js.map +1 -0
- package/lib/types.d.ts +177 -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 +6 -0
- package/lib/util/map-includes.d.ts.map +1 -0
- package/lib/util/map-includes.js +189 -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 +71 -0
- package/src/cursors.ts +159 -0
- package/src/field-builder.ts +117 -0
- package/src/generator.ts +191 -0
- package/src/global-types.ts +196 -0
- package/src/index.ts +18 -0
- package/src/loader-map.ts +48 -0
- package/src/model-loader.ts +152 -0
- package/src/node-ref.ts +34 -0
- package/src/object-ref.ts +8 -0
- package/src/prisma-field-builder.ts +375 -0
- package/src/refs.ts +112 -0
- package/src/schema-builder.ts +121 -0
- package/src/types.ts +502 -0
- package/src/util/index.ts +26 -0
- package/src/util/map-includes.ts +329 -0
- package/src/util/merge-includes.ts +121 -0
- package/tsconfig.json +21 -0
package/lib/cursors.js
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolvePrismaCursorConnection = exports.wrapConnectionResult = exports.prismaCursorConnectionQuery = void 0;
|
|
4
|
+
const DEFAULT_MAX_SIZE = 100;
|
|
5
|
+
const DEFAULT_SIZE = 20;
|
|
6
|
+
function formatCursor(value) {
|
|
7
|
+
if (value instanceof Date) {
|
|
8
|
+
return Buffer.from(`GPC:D:${String(Number(value))}`).toString('base64');
|
|
9
|
+
}
|
|
10
|
+
switch (typeof value) {
|
|
11
|
+
case 'number':
|
|
12
|
+
return Buffer.from(`GPC:N:${value}`).toString('base64');
|
|
13
|
+
case 'string':
|
|
14
|
+
return Buffer.from(`GPC:S:${value}`).toString('base64');
|
|
15
|
+
default:
|
|
16
|
+
throw new TypeError(`Unsupported cursor type ${typeof value}`);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function parseCursor(cursor) {
|
|
20
|
+
if (typeof cursor !== 'string') {
|
|
21
|
+
throw new TypeError('Cursor must be a string');
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
const decoded = Buffer.from(cursor, 'base64').toString();
|
|
25
|
+
const [, type, value] = decoded.match(/^GPC:(\w):(.*)/);
|
|
26
|
+
switch (type) {
|
|
27
|
+
case 'S':
|
|
28
|
+
return value;
|
|
29
|
+
case 'N':
|
|
30
|
+
return Number.parseInt(value, 10);
|
|
31
|
+
case 'D':
|
|
32
|
+
return new Date(Number.parseInt(value, 10));
|
|
33
|
+
default:
|
|
34
|
+
throw new TypeError(`Invalid cursor type ${type}`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
throw new Error(`Invalid cursor: ${cursor}`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
function prismaCursorConnectionQuery({ args: { before, after, first, last }, maxSize = DEFAULT_MAX_SIZE, defaultSize = DEFAULT_SIZE, column, }) {
|
|
42
|
+
var _a;
|
|
43
|
+
if (first != null && first < 0) {
|
|
44
|
+
throw new TypeError('Argument "first" must be a non-negative integer');
|
|
45
|
+
}
|
|
46
|
+
if (last != null && last < 0) {
|
|
47
|
+
throw new Error('Argument "last" must be a non-negative integer');
|
|
48
|
+
}
|
|
49
|
+
if (before && after) {
|
|
50
|
+
throw new Error('Arguments "before" and "after" are not supported at the same time');
|
|
51
|
+
}
|
|
52
|
+
if (before != null && last == null) {
|
|
53
|
+
throw new Error('Argument "last" must be provided when using "before"');
|
|
54
|
+
}
|
|
55
|
+
if (before != null && first != null) {
|
|
56
|
+
throw new Error('Arguments "before" and "first" are not supported at the same time');
|
|
57
|
+
}
|
|
58
|
+
if (after != null && last != null) {
|
|
59
|
+
throw new Error('Arguments "after" and "last" are not supported at the same time');
|
|
60
|
+
}
|
|
61
|
+
const cursor = before !== null && before !== void 0 ? before : after;
|
|
62
|
+
let take = Math.min((_a = first !== null && first !== void 0 ? first : last) !== null && _a !== void 0 ? _a : defaultSize, maxSize) + 1;
|
|
63
|
+
if (before) {
|
|
64
|
+
take = -take;
|
|
65
|
+
}
|
|
66
|
+
return cursor == null
|
|
67
|
+
? { take, skip: 0 }
|
|
68
|
+
: {
|
|
69
|
+
cursor: {
|
|
70
|
+
[column]: parseCursor(cursor),
|
|
71
|
+
},
|
|
72
|
+
take,
|
|
73
|
+
skip: 1,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
exports.prismaCursorConnectionQuery = prismaCursorConnectionQuery;
|
|
77
|
+
function wrapConnectionResult(results, args, take, column, totalCount) {
|
|
78
|
+
var _a, _b;
|
|
79
|
+
const gotFullResults = results.length === Math.abs(take);
|
|
80
|
+
const hasNextPage = args.before ? true : gotFullResults;
|
|
81
|
+
const hasPreviousPage = args.after ? true : args.before ? gotFullResults : false;
|
|
82
|
+
const nodes = gotFullResults
|
|
83
|
+
? results.slice(take < 0 ? 1 : 0, take < 0 ? results.length : -1)
|
|
84
|
+
: results;
|
|
85
|
+
const edges = nodes.map((value, index) => value == null
|
|
86
|
+
? null
|
|
87
|
+
: {
|
|
88
|
+
cursor: formatCursor(value[column]),
|
|
89
|
+
node: value,
|
|
90
|
+
});
|
|
91
|
+
return {
|
|
92
|
+
totalCount,
|
|
93
|
+
edges,
|
|
94
|
+
pageInfo: {
|
|
95
|
+
startCursor: (_a = edges[0]) === null || _a === void 0 ? void 0 : _a.cursor,
|
|
96
|
+
endCursor: (_b = edges[edges.length - 1]) === null || _b === void 0 ? void 0 : _b.cursor,
|
|
97
|
+
hasPreviousPage,
|
|
98
|
+
hasNextPage,
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
exports.wrapConnectionResult = wrapConnectionResult;
|
|
103
|
+
async function resolvePrismaCursorConnection(options, resolve) {
|
|
104
|
+
const query = prismaCursorConnectionQuery(options);
|
|
105
|
+
const results = await resolve({
|
|
106
|
+
...options.query,
|
|
107
|
+
...query,
|
|
108
|
+
});
|
|
109
|
+
return wrapConnectionResult(results, options.args, query.take, options.column, options.totalCount);
|
|
110
|
+
}
|
|
111
|
+
exports.resolvePrismaCursorConnection = resolvePrismaCursorConnection;
|
|
112
|
+
//# sourceMappingURL=cursors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursors.js","sourceRoot":"","sources":["../src/cursors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-builder.d.ts","sourceRoot":"","sources":["../src/field-builder.ts"],"names":[],"mappings":"AAcA,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
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 modelOrRef = Array.isArray(type) ? type[0] : type;
|
|
21
|
+
const typeRef = typeof modelOrRef === 'string'
|
|
22
|
+
? (0, refs_1.getRefFromModel)(modelOrRef, this.builder)
|
|
23
|
+
: modelOrRef;
|
|
24
|
+
const typeParam = Array.isArray(type) ? [typeRef] : typeRef;
|
|
25
|
+
return this.field({
|
|
26
|
+
...options,
|
|
27
|
+
type: typeParam,
|
|
28
|
+
resolve: (parent, args, ctx, info) => {
|
|
29
|
+
const query = (0, util_1.queryFromInfo)(ctx, info);
|
|
30
|
+
return resolve(query, parent, args, ctx, info);
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
fieldBuilderProto.prismaConnection = function prismaConnection({ type, cursor, maxSize, defaultSize, resolve, ...options }, connectionOptions, edgeOptions) {
|
|
35
|
+
var _a;
|
|
36
|
+
const ref = typeof type === 'string' ? (0, refs_1.getRefFromModel)(type, this.builder) : type;
|
|
37
|
+
let typeName;
|
|
38
|
+
const fieldRef = this.connection({
|
|
39
|
+
...options,
|
|
40
|
+
type: ref,
|
|
41
|
+
resolve: (parent, args, ctx, info) => (0, cursors_1.resolvePrismaCursorConnection)({
|
|
42
|
+
query: (0, util_1.queryFromInfo)(ctx, info),
|
|
43
|
+
column: cursor,
|
|
44
|
+
maxSize,
|
|
45
|
+
defaultSize,
|
|
46
|
+
args,
|
|
47
|
+
}, (query) => resolve(query, parent, args, ctx, info)),
|
|
48
|
+
}, {
|
|
49
|
+
...connectionOptions,
|
|
50
|
+
extensions: {
|
|
51
|
+
...(_a = connectionOptions) === null || _a === void 0 ? void 0 : _a.extensions,
|
|
52
|
+
pothosPrismaIndirectInclude: {
|
|
53
|
+
getType: () => {
|
|
54
|
+
if (!typeName) {
|
|
55
|
+
typeName = this.builder.configStore.getTypeConfig(ref).name;
|
|
56
|
+
}
|
|
57
|
+
return typeName;
|
|
58
|
+
},
|
|
59
|
+
path: [{ name: 'edges' }, { name: 'node' }],
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
}, edgeOptions);
|
|
63
|
+
return fieldRef;
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=field-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-builder.js","sourceRoot":"","sources":["../src/field-builder.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,uCAOsB;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,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,MAAM,OAAO,GACX,OAAO,UAAU,KAAK,QAAQ;QAC5B,CAAC,CAAC,IAAA,sBAAe,EAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC;QAC3C,CAAC,CAAE,UAAiC,CAAC;IACzC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC,OAAO,CAA0B,CAAC,CAAC,CAAC,OAAO,CAAC;IAEtF,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,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAA,sBAAe,EAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClF,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,104 @@
|
|
|
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([], 'Name', undefined, typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral(model.name))),
|
|
47
|
+
typescript_1.default.factory.createPropertySignature([], 'Shape', undefined, typescript_1.default.factory.createTypeReferenceNode(model.name)),
|
|
48
|
+
typescript_1.default.factory.createPropertySignature([], 'Include', undefined, relations.length > 0
|
|
49
|
+
? typescript_1.default.factory.createTypeReferenceNode(`Prisma.${model.name}Include`)
|
|
50
|
+
: typescript_1.default.factory.createTypeReferenceNode('never')),
|
|
51
|
+
typescript_1.default.factory.createPropertySignature([], 'Where', undefined, typescript_1.default.factory.createTypeReferenceNode(`Prisma.${model.name}WhereUniqueInput`)),
|
|
52
|
+
typescript_1.default.factory.createPropertySignature([], 'Fields', undefined, relations.length > 0
|
|
53
|
+
? typescript_1.default.factory.createUnionTypeNode(relations.map((field) => typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral(field.name))))
|
|
54
|
+
: typescript_1.default.factory.createTypeReferenceNode('never')),
|
|
55
|
+
typescript_1.default.factory.createPropertySignature([], 'ListRelations', undefined, listRelations.length > 0
|
|
56
|
+
? typescript_1.default.factory.createUnionTypeNode(listRelations.map((field) => typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral(field.name))))
|
|
57
|
+
: typescript_1.default.factory.createTypeReferenceNode('never')),
|
|
58
|
+
typescript_1.default.factory.createPropertySignature([], 'Relations', undefined, typescript_1.default.factory.createTypeLiteralNode(relations.map((field) => {
|
|
59
|
+
const typeName = field.type;
|
|
60
|
+
return typescript_1.default.factory.createPropertySignature([], field.name, undefined, typescript_1.default.factory.createTypeLiteralNode([
|
|
61
|
+
typescript_1.default.factory.createPropertySignature([], 'Shape', undefined, field.isList
|
|
62
|
+
? typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createTypeReferenceNode(typeName))
|
|
63
|
+
: field.isRequired
|
|
64
|
+
? typescript_1.default.factory.createTypeReferenceNode(typeName)
|
|
65
|
+
: typescript_1.default.factory.createUnionTypeNode([
|
|
66
|
+
typescript_1.default.factory.createTypeReferenceNode(typeName),
|
|
67
|
+
typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createNull()),
|
|
68
|
+
])),
|
|
69
|
+
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)))),
|
|
70
|
+
]));
|
|
71
|
+
}))),
|
|
72
|
+
]));
|
|
73
|
+
});
|
|
74
|
+
const prismaTypes = typescript_1.default.factory.createInterfaceDeclaration([], [
|
|
75
|
+
typescript_1.default.factory.createModifier(typescript_1.SyntaxKind.ExportKeyword),
|
|
76
|
+
typescript_1.default.factory.createModifier(typescript_1.SyntaxKind.DefaultKeyword),
|
|
77
|
+
], 'PrismaTypes', [], [], modelTypes);
|
|
78
|
+
const printer = typescript_1.default.createPrinter({});
|
|
79
|
+
const sourcefile = typescript_1.default.createSourceFile(options.generator.output.value, '', typescript_1.ScriptTarget.ESNext, false, typescript_1.ScriptKind.TS);
|
|
80
|
+
const nodes = typescript_1.default.factory.createNodeArray([importStatement, prismaTypes]);
|
|
81
|
+
const result = printer.printList(typescript_1.ListFormat.SourceFileStatements, nodes, sourcefile);
|
|
82
|
+
await new Promise((resolve, reject) => {
|
|
83
|
+
(0, fs_1.mkdir)((0, path_1.dirname)(sourcefile.fileName), { recursive: true }, (err) => {
|
|
84
|
+
if (err) {
|
|
85
|
+
reject(err);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
resolve();
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
return new Promise((resolve, reject) => {
|
|
93
|
+
(0, fs_1.writeFile)(sourcefile.fileName, result, (err) => {
|
|
94
|
+
if (err) {
|
|
95
|
+
reject(err);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
resolve();
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
},
|
|
103
|
+
});
|
|
104
|
+
//# 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 { prismaModelKey, PrismaObjectRef } from './object-ref';
|
|
4
|
+
import { PrismaConnectionFieldOptions, PrismaFieldOptions, PrismaModelTypes, PrismaNodeOptions, PrismaObjectTypeOptions, ShapeWithInclude } from './types';
|
|
5
|
+
import { PrismaPlugin, ShapeFromConnection } from '.';
|
|
6
|
+
declare global {
|
|
7
|
+
export namespace PothosSchemaTypes {
|
|
8
|
+
interface Plugins<Types extends SchemaTypes> {
|
|
9
|
+
prisma: PrismaPlugin<Types>;
|
|
10
|
+
}
|
|
11
|
+
interface SchemaBuilderOptions<Types extends SchemaTypes> {
|
|
12
|
+
prisma: {
|
|
13
|
+
client: {
|
|
14
|
+
$connect: () => Promise<void>;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
interface UserSchemaTypes {
|
|
19
|
+
PrismaTypes: {};
|
|
20
|
+
}
|
|
21
|
+
interface ExtendDefaultTypes<PartialTypes extends Partial<UserSchemaTypes>> {
|
|
22
|
+
PrismaTypes: undefined extends PartialTypes['PrismaTypes'] ? {} : PartialTypes['PrismaTypes'] & {};
|
|
23
|
+
}
|
|
24
|
+
interface SchemaBuilder<Types extends SchemaTypes> {
|
|
25
|
+
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>) => PrismaObjectRef<Model, Shape>;
|
|
26
|
+
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<Model, Shape> : '@pothos/plugin-relay is required to use this method';
|
|
27
|
+
}
|
|
28
|
+
interface RootFieldBuilder<Types extends SchemaTypes, ParentShape, Kind extends FieldKind = FieldKind> {
|
|
29
|
+
prismaField: <Args extends InputFieldMap, TypeParam extends PrismaObjectRef<PrismaModelTypes> | keyof Types['PrismaTypes'] | [keyof Types['PrismaTypes']] | [PrismaObjectRef<PrismaModelTypes>], Nullable extends FieldNullability<Type>, ResolveReturnShape, Type extends TypeParam extends [unknown] ? [ObjectRef<Model['Shape']>] : ObjectRef<Model['Shape']>, Model extends PrismaModelTypes = PrismaModelTypes & (TypeParam extends [keyof Types['PrismaTypes']] ? Types['PrismaTypes'][TypeParam[0]] : TypeParam extends [PrismaObjectRef<PrismaModelTypes>] ? TypeParam[0][typeof prismaModelKey] : TypeParam extends PrismaObjectRef<PrismaModelTypes> ? TypeParam[typeof prismaModelKey] : 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>>;
|
|
30
|
+
prismaConnection: 'relay' extends PluginName ? <Type extends PrismaObjectRef<PrismaModelTypes> | keyof Types['PrismaTypes'], Nullable extends boolean, ResolveReturnShape, Args extends InputFieldMap = {}, Model extends PrismaModelTypes = Type extends PrismaObjectRef<infer T> ? T : PrismaModelTypes & Types['PrismaTypes'][Type & keyof Types['PrismaTypes']]>(...args: NormalizeArgs<[
|
|
31
|
+
options: PrismaConnectionFieldOptions<Types, ParentShape, Type, Model, ObjectRef<Model['Shape']>, Nullable, Args, ResolveReturnShape, Kind>,
|
|
32
|
+
connectionOptions?: ConnectionObjectOptions<Types, ObjectRef<Model['Shape']>, false, false, ResolveReturnShape>,
|
|
33
|
+
edgeOptions?: ConnectionEdgeObjectOptions<Types, ObjectRef<Model['Shape']>, false, ResolveReturnShape>
|
|
34
|
+
]>) => FieldRef<ShapeFromConnection<ConnectionShapeHelper<Types, Model['Shape'], Nullable>>> : '@pothos/plugin-relay is required to use this method';
|
|
35
|
+
}
|
|
36
|
+
interface ConnectionFieldOptions<Types extends SchemaTypes, ParentShape, Type extends OutputType<Types>, Nullable extends boolean, EdgeNullability extends FieldNullability<[unknown]>, NodeNullability extends boolean, Args extends InputFieldMap, ResolveReturnShape> {
|
|
37
|
+
}
|
|
38
|
+
interface ConnectionObjectOptions<Types extends SchemaTypes, Type extends OutputType<Types>, EdgeNullability extends FieldNullability<[unknown]>, NodeNullability extends boolean, Resolved> {
|
|
39
|
+
}
|
|
40
|
+
interface ConnectionEdgeObjectOptions<Types extends SchemaTypes, Type extends OutputType<Types>, NodeNullability extends boolean, Resolved> {
|
|
41
|
+
}
|
|
42
|
+
interface DefaultConnectionArguments {
|
|
43
|
+
first?: number | null | undefined;
|
|
44
|
+
last?: number | null | undefined;
|
|
45
|
+
before?: string | null | undefined;
|
|
46
|
+
after?: string | null | undefined;
|
|
47
|
+
}
|
|
48
|
+
interface ConnectionShapeHelper<Types extends SchemaTypes, T, Nullable> {
|
|
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,18 @@
|
|
|
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
|
+
loadSelf(include: unknown, context: {}): Promise<Record<string, unknown>>;
|
|
15
|
+
loadRelation(relation: string, include: unknown, context: {}): Promise<unknown>;
|
|
16
|
+
initLoad(relation: string | null, includeArg: unknown, context: {}, count?: boolean): Promise<Record<string, unknown>>;
|
|
17
|
+
}
|
|
18
|
+
//# 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,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IActC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IA8B5D,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,UAAQ;CAuCxF"}
|