@pothos/plugin-prisma 3.60.0 → 3.61.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/CHANGELOG.md +6 -0
- package/dts/prisma-field-builder.d.ts.map +1 -1
- package/dts/util/map-query.d.ts.map +1 -1
- package/esm/connection-helpers.js +1 -2
- package/esm/connection-helpers.js.map +1 -1
- package/esm/field-builder.js +14 -11
- package/esm/field-builder.js.map +1 -1
- package/esm/global-types.js.map +1 -1
- package/esm/model-loader.js +8 -4
- package/esm/model-loader.js.map +1 -1
- package/esm/prisma-field-builder.d.ts.map +1 -1
- package/esm/prisma-field-builder.js +12 -11
- package/esm/prisma-field-builder.js.map +1 -1
- package/esm/util/cursors.js +18 -10
- package/esm/util/cursors.js.map +1 -1
- package/esm/util/deep-equal.js +4 -5
- package/esm/util/deep-equal.js.map +1 -1
- package/esm/util/description.js +2 -4
- package/esm/util/description.js.map +1 -1
- package/esm/util/map-query.d.ts.map +1 -1
- package/esm/util/map-query.js +15 -24
- package/esm/util/map-query.js.map +1 -1
- package/lib/connection-helpers.js +4 -5
- package/lib/connection-helpers.js.map +1 -1
- package/lib/field-builder.js +14 -11
- package/lib/field-builder.js.map +1 -1
- package/lib/index.js +11 -11
- package/lib/index.js.map +1 -1
- package/lib/model-loader.js +8 -4
- package/lib/model-loader.js.map +1 -1
- package/lib/object-ref.js +3 -3
- package/lib/object-ref.js.map +1 -1
- package/lib/prisma-field-builder.js +12 -11
- package/lib/prisma-field-builder.js.map +1 -1
- package/lib/util/cursors.js +37 -29
- package/lib/util/cursors.js.map +1 -1
- package/lib/util/datamodel.js +12 -12
- package/lib/util/datamodel.js.map +1 -1
- package/lib/util/deep-equal.js +4 -5
- package/lib/util/deep-equal.js.map +1 -1
- package/lib/util/description.js +2 -4
- package/lib/util/description.js.map +1 -1
- package/lib/util/loader-map.js +3 -3
- package/lib/util/loader-map.js.map +1 -1
- package/lib/util/map-query.js +18 -27
- package/lib/util/map-query.js.map +1 -1
- package/lib/util/relation-map.js +3 -3
- package/lib/util/relation-map.js.map +1 -1
- package/lib/util/selections.js +9 -9
- package/lib/util/selections.js.map +1 -1
- package/lib/util/usage.js +6 -6
- package/lib/util/usage.js.map +1 -1
- package/package.json +7 -7
- package/src/field-builder.ts +9 -7
- package/src/prisma-field-builder.ts +11 -8
- package/src/util/map-query.ts +30 -28
package/lib/util/relation-map.js
CHANGED
|
@@ -9,11 +9,11 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
getRelationMap: function() {
|
|
13
|
-
return getRelationMap;
|
|
14
|
-
},
|
|
15
12
|
createRelationMap: function() {
|
|
16
13
|
return createRelationMap;
|
|
14
|
+
},
|
|
15
|
+
getRelationMap: function() {
|
|
16
|
+
return getRelationMap;
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
19
|
const _core = require("@pothos/core");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/relation-map.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../src/util/relation-map.ts"],"names":["createRelationMap","getRelationMap","createContextCache","datamodel","models","relationMap","Map","Array","isArray","forEach","model","set","name","relations","map","get","fields","field","kind","has","type","Object","keys","entries"],"mappings":";;;;;;;;;;;IAcgBA,iBAAiB;eAAjBA;;IAJHC,cAAc;eAAdA;;;sBAVsB;AAU5B,MAAMA,iBAAiBC,IAAAA,wBAAkB,EAC9C,CAACC,YAAoDH,kBAAkBG;AAGlE,SAASH,kBAAkB,EAAEI,MAAM,EAAwC;IAChF,MAAMC,cAA2B,IAAIC;IAErC,IAAIC,MAAMC,OAAO,CAACJ,SAAS;QACzBA,OAAOK,OAAO,CAAC,CAACC;YACdL,YAAYM,GAAG,CAACD,MAAME,IAAI,EAAE;gBAAEF,OAAOA,MAAME,IAAI;gBAAEC,WAAW,IAAIP;YAAM;QACxE;QAEAF,OAAOK,OAAO,CAAC,CAACC;YACd,MAAMI,MAAMT,YAAYU,GAAG,CAACL,MAAME,IAAI,EAAGC,SAAS;YAElDH,MAAMM,MAAM,CAACP,OAAO,CAAC,CAACQ;gBACpB,IAAIA,MAAMC,IAAI,KAAK,YAAYb,YAAYc,GAAG,CAACF,MAAMG,IAAI,GAAG;oBAC1DN,IAAIH,GAAG,CAACM,MAAML,IAAI,EAAEP,YAAYU,GAAG,CAACE,MAAMG,IAAI;gBAChD;YACF;QACF;IACF,OAAO;QACLC,OAAOC,IAAI,CAAClB,QAAQK,OAAO,CAAC,CAACG;YAC3BP,YAAYM,GAAG,CAACC,MAAM;gBAAEF,OAAOE;gBAAMC,WAAW,IAAIP;YAAM;QAC5D;QAEAe,OAAOE,OAAO,CAACnB,QAAQK,OAAO,CAAC,CAAC,CAACG,MAAMF,MAAM;YAC3C,MAAMI,MAAMT,YAAYU,GAAG,CAACH,MAAOC,SAAS;YAE5CH,MAAMM,MAAM,CAACP,OAAO,CAAC,CAACQ;gBACpB,IAAIA,MAAMC,IAAI,KAAK,YAAYb,YAAYc,GAAG,CAACF,MAAMG,IAAI,GAAG;oBAC1DN,IAAIH,GAAG,CAACM,MAAML,IAAI,EAAEP,YAAYU,GAAG,CAACE,MAAMG,IAAI;gBAChD;YACF;QACF;IACF;IAEA,OAAOf;AACT"}
|
package/lib/util/selections.js
CHANGED
|
@@ -9,23 +9,23 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
selectionCompatible: function() {
|
|
13
|
-
return selectionCompatible;
|
|
14
|
-
},
|
|
15
|
-
stateCompatible: function() {
|
|
16
|
-
return stateCompatible;
|
|
17
|
-
},
|
|
18
|
-
mergeState: function() {
|
|
19
|
-
return mergeState;
|
|
20
|
-
},
|
|
21
12
|
createState: function() {
|
|
22
13
|
return createState;
|
|
23
14
|
},
|
|
24
15
|
mergeSelection: function() {
|
|
25
16
|
return mergeSelection;
|
|
26
17
|
},
|
|
18
|
+
mergeState: function() {
|
|
19
|
+
return mergeState;
|
|
20
|
+
},
|
|
21
|
+
selectionCompatible: function() {
|
|
22
|
+
return selectionCompatible;
|
|
23
|
+
},
|
|
27
24
|
selectionToQuery: function() {
|
|
28
25
|
return selectionToQuery;
|
|
26
|
+
},
|
|
27
|
+
stateCompatible: function() {
|
|
28
|
+
return stateCompatible;
|
|
29
29
|
}
|
|
30
30
|
});
|
|
31
31
|
const _deepequal = require("./deep-equal");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/selections.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../src/util/selections.ts"],"names":["createState","mergeSelection","mergeState","selectionCompatible","selectionToQuery","stateCompatible","state","selectionMap","ignoreQuery","Object","keys","query","length","select","include","some","key","compare","deepEqual","value","selections","k","counts","has","get","fieldMap","relations","newState","name","relationState","mode","fields","add","parent","Set","Map","mappings","forEach","merge","count","set","selection","childMap","relatedState","nestedIncludes","hasSelection","sel","relation","nested","size","_count","field"],"mappings":"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"}
|
package/lib/util/usage.js
CHANGED
|
@@ -9,17 +9,17 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
+
extendWithUsage: function() {
|
|
13
|
+
return extendWithUsage;
|
|
14
|
+
},
|
|
15
|
+
isUsed: function() {
|
|
16
|
+
return isUsed;
|
|
17
|
+
},
|
|
12
18
|
usageSymbol: function() {
|
|
13
19
|
return usageSymbol;
|
|
14
20
|
},
|
|
15
21
|
wrapWithUsageCheck: function() {
|
|
16
22
|
return wrapWithUsageCheck;
|
|
17
|
-
},
|
|
18
|
-
isUsed: function() {
|
|
19
|
-
return isUsed;
|
|
20
|
-
},
|
|
21
|
-
extendWithUsage: function() {
|
|
22
|
-
return extendWithUsage;
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
25
|
const usageSymbol = Symbol.for('Pothos.isUsed');
|
package/lib/util/usage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/usage.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../src/util/usage.ts"],"names":["extendWithUsage","isUsed","usageSymbol","wrapWithUsageCheck","Symbol","for","obj","result","used","Object","defineProperty","get","set","value","enumerable","key","keys","configurable","original","extension"],"mappings":";;;;;;;;;;;IAqCgBA,eAAe;eAAfA;;IAJAC,MAAM;eAANA;;IAjCHC,WAAW;eAAXA;;IAEGC,kBAAkB;eAAlBA;;;AAFT,MAAMD,cAAcE,OAAOC,GAAG,CAAC;AAE/B,SAASF,mBAAqCG,GAAM;IACzD,MAAMC,SAAS,CAAC;IAChB,IAAIC,OAAO;IAEXC,OAAOC,cAAc,CAACH,QAAQL,aAAa;QACzCS;YACE,OAAOH;QACT;QACAI,KAAIC,KAAc;YAChBL,OAAOK;QACT;QACAC,YAAY;IACd;IAEA,KAAK,MAAMC,OAAON,OAAOO,IAAI,CAACV,KAAM;QAClC,2CAA2C;QAC3CE,OAAO;QACPC,OAAOC,cAAc,CAACH,QAAQQ,KAAK;YACjCD,YAAY;YACZG,cAAc;YACd,2DAA2D;YAC3DN;gBACEH,OAAO;gBACP,OAAOF,GAAG,CAACS,IAAe;YAC5B;QACF;IACF;IAEA,OAAOR;AACT;AAEO,SAASN,OAAOK,GAAW;IAChC,OAAO,CAAEJ,CAAAA,eAAeI,GAAE,KAAM,AAACA,GAAkC,CAACJ,YAAY;AAClF;AAEO,SAASF,gBACdkB,QAAW,EACXC,SAAY;IAEZ,IAAI,CAAEjB,CAAAA,eAAegB,QAAO,GAAI;QAC9B,OAAO;YAAE,GAAGA,QAAQ;YAAE,GAAGC,SAAS;QAAC;IACrC;IAEA,MAAMZ,SAAS;QAAE,GAAGY,SAAS;IAAC;IAE9B,KAAK,MAAMJ,OAAO;QAACb;WAAgBO,OAAOO,IAAI,CAACE;KAAU,CAAE;QACzD,IAAIH,OAAOR,QAAQ;YAEjB;QACF;QAEAE,OAAOC,cAAc,CAACH,QAAQQ,KAAK;YACjCD,YAAYC,QAAQb;YACpBe,cAAcF,QAAQb;YACtBS;gBACE,OAAOO,QAAQ,CAACH,IAAe;YACjC;QACF;IACF;IAEA,OAAOR;AACT"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pothos/plugin-prisma",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.61.0",
|
|
4
4
|
"description": "A Pothos plugin for more efficient integration with prisma",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"types": "./dts/index.d.ts",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"provenance": true
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@prisma/generator-helper": "^5.
|
|
55
|
+
"@prisma/generator-helper": "^5.4.1"
|
|
56
56
|
},
|
|
57
57
|
"prisma": {
|
|
58
58
|
"seed": "node prisma/seed.mjs"
|
|
@@ -64,12 +64,12 @@
|
|
|
64
64
|
"typescript": ">=4.7.2"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
|
-
"@prisma/client": "^5.
|
|
68
|
-
"graphql": "16.8.
|
|
67
|
+
"@prisma/client": "^5.4.1",
|
|
68
|
+
"graphql": "16.8.1",
|
|
69
69
|
"graphql-scalars": "^1.22.2",
|
|
70
70
|
"graphql-tag": "^2.12.6",
|
|
71
|
-
"prisma": "^5.
|
|
72
|
-
"@pothos/core": "3.
|
|
71
|
+
"prisma": "^5.4.1",
|
|
72
|
+
"@pothos/core": "3.38.0",
|
|
73
73
|
"@pothos/plugin-complexity": "3.13.0",
|
|
74
74
|
"@pothos/plugin-errors": "3.11.1",
|
|
75
75
|
"@pothos/plugin-relay": "3.44.0",
|
|
@@ -85,6 +85,6 @@
|
|
|
85
85
|
"build:esm": "cp -r dts/* esm/ && swc src -d esm --config-file ../../.swcrc -C module.type=es6 && pnpm esm:extensions",
|
|
86
86
|
"build:dts": "tsc",
|
|
87
87
|
"esm:extensions": "TS_NODE_PROJECT=../../tsconfig.json node -r @swc-node/register ../../scripts/esm-transformer.ts",
|
|
88
|
-
"test": "pnpm vitest --run --segfault-retry=3"
|
|
88
|
+
"test": "pnpm vitest --run --segfault-retry=3 --retry 3"
|
|
89
89
|
}
|
|
90
90
|
}
|
package/src/field-builder.ts
CHANGED
|
@@ -149,14 +149,16 @@ fieldBuilderProto.prismaConnection = function prismaConnection<
|
|
|
149
149
|
const fields =
|
|
150
150
|
isObjectType(returnType) || isInterfaceType(returnType) ? returnType.getFields() : {};
|
|
151
151
|
|
|
152
|
-
const
|
|
152
|
+
const selections = info.fieldNodes;
|
|
153
153
|
|
|
154
|
-
const totalCountOnly =
|
|
155
|
-
selection
|
|
156
|
-
|
|
157
|
-
(
|
|
158
|
-
s
|
|
159
|
-
|
|
154
|
+
const totalCountOnly = selections.every(
|
|
155
|
+
(selection) =>
|
|
156
|
+
selection.selectionSet?.selections.length === 1 &&
|
|
157
|
+
selection.selectionSet.selections.every(
|
|
158
|
+
(s) =>
|
|
159
|
+
s.kind === Kind.FIELD && fields[s.name.value]?.extensions?.pothosPrismaTotalCount,
|
|
160
|
+
),
|
|
161
|
+
);
|
|
160
162
|
|
|
161
163
|
return resolvePrismaCursorConnection(
|
|
162
164
|
{
|
|
@@ -323,14 +323,17 @@ export class PrismaObjectFieldBuilder<
|
|
|
323
323
|
const fields =
|
|
324
324
|
isObjectType(returnType) || isInterfaceType(returnType) ? returnType.getFields() : {};
|
|
325
325
|
|
|
326
|
-
const
|
|
327
|
-
|
|
328
|
-
const totalCountOnly =
|
|
329
|
-
selection
|
|
330
|
-
|
|
331
|
-
(
|
|
332
|
-
s
|
|
333
|
-
|
|
326
|
+
const selections = info.fieldNodes;
|
|
327
|
+
|
|
328
|
+
const totalCountOnly = selections.every(
|
|
329
|
+
(selection) =>
|
|
330
|
+
selection.selectionSet?.selections.length === 1 &&
|
|
331
|
+
selection.selectionSet.selections.every(
|
|
332
|
+
(s) =>
|
|
333
|
+
s.kind === Kind.FIELD &&
|
|
334
|
+
fields[s.name.value]?.extensions?.pothosPrismaTotalCount,
|
|
335
|
+
),
|
|
336
|
+
);
|
|
334
337
|
|
|
335
338
|
return totalCountOnly || value[name] !== undefined;
|
|
336
339
|
},
|
package/src/util/map-query.ts
CHANGED
|
@@ -134,6 +134,7 @@ function resolveIndirectInclude(
|
|
|
134
134
|
includePath: { type?: string; name: string }[],
|
|
135
135
|
path: string[],
|
|
136
136
|
resolve: (type: GraphQLNamedType, field: FieldNode, path: string[]) => void,
|
|
137
|
+
expectedType = type,
|
|
137
138
|
) {
|
|
138
139
|
if (includePath.length === 0) {
|
|
139
140
|
resolve(type, selection as FieldNode, path);
|
|
@@ -149,6 +150,7 @@ function resolveIndirectInclude(
|
|
|
149
150
|
switch (sel.kind) {
|
|
150
151
|
case Kind.FIELD:
|
|
151
152
|
if (
|
|
153
|
+
expectedType.name === type.name &&
|
|
152
154
|
!fieldSkipped(info, sel) &&
|
|
153
155
|
sel.name.value === include.name &&
|
|
154
156
|
(isObjectType(type) || isInterfaceType(type))
|
|
@@ -166,19 +168,15 @@ function resolveIndirectInclude(
|
|
|
166
168
|
}
|
|
167
169
|
continue;
|
|
168
170
|
case Kind.FRAGMENT_SPREAD:
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
info
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
path,
|
|
179
|
-
resolve,
|
|
180
|
-
);
|
|
181
|
-
}
|
|
171
|
+
resolveIndirectInclude(
|
|
172
|
+
info.schema.getType(info.fragments[sel.name.value].typeCondition.name.value)!,
|
|
173
|
+
info,
|
|
174
|
+
info.fragments[sel.name.value],
|
|
175
|
+
includePath,
|
|
176
|
+
path,
|
|
177
|
+
resolve,
|
|
178
|
+
include.type ? info.schema.getType(include.type)! : expectedType,
|
|
179
|
+
);
|
|
182
180
|
|
|
183
181
|
continue;
|
|
184
182
|
|
|
@@ -191,6 +189,7 @@ function resolveIndirectInclude(
|
|
|
191
189
|
includePath,
|
|
192
190
|
path,
|
|
193
191
|
resolve,
|
|
192
|
+
include.type ? info.schema.getType(include.type)! : expectedType,
|
|
194
193
|
);
|
|
195
194
|
}
|
|
196
195
|
|
|
@@ -211,11 +210,15 @@ function addNestedSelections(
|
|
|
211
210
|
state: SelectionState,
|
|
212
211
|
selections: SelectionSetNode,
|
|
213
212
|
indirectPath: string[],
|
|
213
|
+
expectedType = type,
|
|
214
214
|
) {
|
|
215
215
|
let parentType = type;
|
|
216
216
|
for (const selection of selections.selections) {
|
|
217
217
|
switch (selection.kind) {
|
|
218
218
|
case Kind.FIELD:
|
|
219
|
+
if (expectedType.name !== type.name) {
|
|
220
|
+
continue;
|
|
221
|
+
}
|
|
219
222
|
addFieldSelection(type, context, info, state, selection, indirectPath);
|
|
220
223
|
|
|
221
224
|
continue;
|
|
@@ -223,13 +226,6 @@ function addNestedSelections(
|
|
|
223
226
|
parentType = info.schema.getType(
|
|
224
227
|
info.fragments[selection.name.value].typeCondition.name.value,
|
|
225
228
|
)! as GraphQLObjectType;
|
|
226
|
-
if (
|
|
227
|
-
isObjectType(type)
|
|
228
|
-
? parentType.name !== type.name
|
|
229
|
-
: parentType.extensions?.pothosPrismaModel !== type.extensions.pothosPrismaModel
|
|
230
|
-
) {
|
|
231
|
-
continue;
|
|
232
|
-
}
|
|
233
229
|
|
|
234
230
|
addNestedSelections(
|
|
235
231
|
parentType,
|
|
@@ -238,6 +234,9 @@ function addNestedSelections(
|
|
|
238
234
|
state,
|
|
239
235
|
info.fragments[selection.name.value].selectionSet,
|
|
240
236
|
indirectPath,
|
|
237
|
+
parentType.extensions?.pothosPrismaModel === type.extensions.pothosPrismaModel
|
|
238
|
+
? parentType
|
|
239
|
+
: expectedType,
|
|
241
240
|
);
|
|
242
241
|
|
|
243
242
|
continue;
|
|
@@ -246,15 +245,18 @@ function addNestedSelections(
|
|
|
246
245
|
parentType = selection.typeCondition
|
|
247
246
|
? (info.schema.getType(selection.typeCondition.name.value) as GraphQLObjectType)
|
|
248
247
|
: type;
|
|
249
|
-
if (
|
|
250
|
-
isObjectType(type)
|
|
251
|
-
? parentType.name !== type.name
|
|
252
|
-
: parentType.extensions?.pothosPrismaModel !== type.extensions.pothosPrismaModel
|
|
253
|
-
) {
|
|
254
|
-
continue;
|
|
255
|
-
}
|
|
256
248
|
|
|
257
|
-
addNestedSelections(
|
|
249
|
+
addNestedSelections(
|
|
250
|
+
parentType,
|
|
251
|
+
context,
|
|
252
|
+
info,
|
|
253
|
+
state,
|
|
254
|
+
selection.selectionSet,
|
|
255
|
+
indirectPath,
|
|
256
|
+
parentType.extensions?.pothosPrismaModel === type.extensions.pothosPrismaModel
|
|
257
|
+
? parentType
|
|
258
|
+
: expectedType,
|
|
259
|
+
);
|
|
258
260
|
|
|
259
261
|
continue;
|
|
260
262
|
|