@pothos/plugin-prisma 3.57.0 → 3.59.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 +18 -0
- package/dts/global-types.d.ts +16 -2
- package/dts/global-types.d.ts.map +1 -1
- package/dts/index.d.ts.map +1 -1
- package/dts/model-loader.d.ts +24 -5
- package/dts/model-loader.d.ts.map +1 -1
- package/dts/types.d.ts.map +1 -1
- package/dts/util/deep-equal.d.ts.map +1 -1
- package/dts/util/loader-map.d.ts +1 -1
- package/dts/util/loader-map.d.ts.map +1 -1
- package/esm/global-types.d.ts +16 -2
- package/esm/global-types.d.ts.map +1 -1
- package/esm/global-types.js.map +1 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +2 -9
- package/esm/index.js.map +1 -1
- package/esm/model-loader.d.ts +24 -5
- package/esm/model-loader.d.ts.map +1 -1
- package/esm/model-loader.js +82 -27
- package/esm/model-loader.js.map +1 -1
- package/esm/schema-builder.js +14 -0
- package/esm/schema-builder.js.map +1 -1
- package/esm/types.d.ts.map +1 -1
- package/esm/util/deep-equal.d.ts.map +1 -1
- package/esm/util/deep-equal.js +6 -0
- package/esm/util/deep-equal.js.map +1 -1
- package/esm/util/loader-map.d.ts +1 -1
- package/esm/util/loader-map.d.ts.map +1 -1
- package/esm/util/loader-map.js +1 -1
- package/esm/util/loader-map.js.map +1 -1
- package/lib/index.js +1 -8
- package/lib/index.js.map +1 -1
- package/lib/model-loader.js +81 -27
- package/lib/model-loader.js.map +1 -1
- package/lib/schema-builder.js +14 -0
- package/lib/schema-builder.js.map +1 -1
- package/lib/util/deep-equal.js +6 -0
- package/lib/util/deep-equal.js.map +1 -1
- package/lib/util/loader-map.js +1 -1
- package/lib/util/loader-map.js.map +1 -1
- package/package.json +3 -3
- package/src/global-types.ts +33 -2
- package/src/index.ts +4 -14
- package/src/model-loader.ts +102 -32
- package/src/schema-builder.ts +34 -0
- package/src/types.ts +4 -1
- package/src/util/deep-equal.ts +7 -0
- package/src/util/loader-map.ts +1 -1
package/lib/model-loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/model-loader.ts"],"names":["ModelLoader","forRef","ref","modelName","findUnique","builder","createContextCache","model","PothosSchemaError","name","getDefaultFindUnique","getFindUnique","findBy","parent","fields","primaryKeyName","primaryKey","key","join","getDefaultFindBy","getModel","idField","find","field","isId","uniqueField","isRequired","isUnique","uniqueIndex","uniqueIndexes","idx","every","f","getDefaultIDSelection","result","getCursorSelection","cursor","index","filter","Boolean","selection","column","getFindUniqueForField","fieldName","some","
|
|
1
|
+
{"version":3,"sources":["../src/model-loader.ts"],"names":["ModelLoader","forRef","ref","modelName","findUnique","builder","createContextCache","model","PothosSchemaError","name","getDefaultFindUnique","getFindUnique","findBy","parent","fields","primaryKeyName","primaryKey","key","join","getDefaultFindBy","getModel","idField","find","field","isId","uniqueField","isRequired","isUnique","uniqueIndex","uniqueIndexes","idx","every","f","getDefaultIDSelection","result","getCursorSelection","cursor","index","filter","Boolean","selection","column","getFindUniqueForField","fieldName","some","getSelection","info","cacheKey","parentType","path","queryCache","has","selectionStateFromInfo","context","set","query","selectionToQuery","get","loadSelection","stageQuery","mappings","setLoaderMappings","entry","staged","selectionCompatible","state","mergeSelection","models","createResolvablePromise","promise","initLoad","initialModel","Map","add","nextTick","tick","then","delete","resolve","reject","delegate","findUniqueOrThrow","where","rejectOnNotFound","setTimeout","constructor","Set","Promise","getDelegateFromModel","getClient","resolveFn","rejectFn"],"mappings":"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"}
|
package/lib/schema-builder.js
CHANGED
|
@@ -185,11 +185,25 @@ schemaBuilderProto.prismaObjectField = function prismaObjectField(type, fieldNam
|
|
|
185
185
|
}));
|
|
186
186
|
});
|
|
187
187
|
};
|
|
188
|
+
schemaBuilderProto.prismaInterfaceField = function prismaInterfaceField(type, fieldName, field) {
|
|
189
|
+
const ref = typeof type === 'string' ? (0, _datamodel.getRefFromModel)(type, this) : type;
|
|
190
|
+
this.configStore.onTypeConfig(ref, ({ name })=>{
|
|
191
|
+
this.configStore.addFields(ref, ()=>({
|
|
192
|
+
[fieldName]: field(new _prismafieldbuilder.PrismaObjectFieldBuilder(name, this, ref.modelName, (0, _relationmap.getRelationMap)((0, _getclient.getDMMF)(this)).get(ref.modelName), 'Interface'))
|
|
193
|
+
}));
|
|
194
|
+
});
|
|
195
|
+
};
|
|
188
196
|
schemaBuilderProto.prismaObjectFields = function prismaObjectFields(type, fields) {
|
|
189
197
|
const ref = typeof type === 'string' ? (0, _datamodel.getRefFromModel)(type, this) : type;
|
|
190
198
|
this.configStore.onTypeConfig(ref, ({ name })=>{
|
|
191
199
|
this.configStore.addFields(ref, ()=>fields(new _prismafieldbuilder.PrismaObjectFieldBuilder(name, this, ref.modelName, (0, _relationmap.getRelationMap)((0, _getclient.getDMMF)(this)).get(ref.modelName))));
|
|
192
200
|
});
|
|
193
201
|
};
|
|
202
|
+
schemaBuilderProto.prismaInterfaceFields = function prismaInterfaceFields(type, fields) {
|
|
203
|
+
const ref = typeof type === 'string' ? (0, _datamodel.getRefFromModel)(type, this) : type;
|
|
204
|
+
this.configStore.onTypeConfig(ref, ({ name })=>{
|
|
205
|
+
this.configStore.addFields(ref, ()=>fields(new _prismafieldbuilder.PrismaObjectFieldBuilder(name, this, ref.modelName, (0, _relationmap.getRelationMap)((0, _getclient.getDMMF)(this)).get(ref.modelName), 'Interface')));
|
|
206
|
+
});
|
|
207
|
+
};
|
|
194
208
|
|
|
195
209
|
//# sourceMappingURL=schema-builder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/schema-builder.ts"],"names":["schemaBuilderProto","SchemaBuilder","prototype","prismaObject","type","fields","findUnique","select","include","description","options","ref","variant","PrismaObjectRef","getRefFromModel","name","fieldMap","getRelationMap","getDMMF","get","idSelection","ModelLoader","getDefaultIDSelection","objectType","getModelDescription","extensions","pothosPrismaInclude","pothosPrismaModel","pothosPrismaFieldMap","pothosPrismaSelect","pothosPrismaLoader","forRef","PrismaObjectFieldBuilder","undefined","prismaInterface","PrismaInterfaceRef","interfaceType","prismaNode","id","field","resolve","rawResolve","idOptions","rawFindUnique","nullable","fieldName","interfaceRef","nodeInterfaceRef","getDefaultIDSerializer","idParser","getDefaultIDParser","typeName","nodeRef","PrismaNodeRef","parent","context","getFindUniqueForField","PothosError","extendedOptions","interfaces","loadWithoutCache","info","query","queryFromInfo","delegate","getDelegateFromModel","getClient","record","findUniqueOrThrow","where","rejectOnNotFound","brandWithType","configStore","addInterfaces","onTypeConfig","nodeConfig","objectField","relayOptions","idFieldName","t","globalID","idFieldOptions","args","completeValue","associateRefWithName","prismaObjectField","addFields","modelName","prismaObjectFields"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../src/schema-builder.ts"],"names":["schemaBuilderProto","SchemaBuilder","prototype","prismaObject","type","fields","findUnique","select","include","description","options","ref","variant","PrismaObjectRef","getRefFromModel","name","fieldMap","getRelationMap","getDMMF","get","idSelection","ModelLoader","getDefaultIDSelection","objectType","getModelDescription","extensions","pothosPrismaInclude","pothosPrismaModel","pothosPrismaFieldMap","pothosPrismaSelect","pothosPrismaLoader","forRef","PrismaObjectFieldBuilder","undefined","prismaInterface","PrismaInterfaceRef","interfaceType","prismaNode","id","field","resolve","rawResolve","idOptions","rawFindUnique","nullable","fieldName","interfaceRef","nodeInterfaceRef","getDefaultIDSerializer","idParser","getDefaultIDParser","typeName","nodeRef","PrismaNodeRef","parent","context","getFindUniqueForField","PothosError","extendedOptions","interfaces","loadWithoutCache","info","query","queryFromInfo","delegate","getDelegateFromModel","getClient","record","findUniqueOrThrow","where","rejectOnNotFound","brandWithType","configStore","addInterfaces","onTypeConfig","nodeConfig","objectField","relayOptions","idFieldName","t","globalID","idFieldOptions","args","completeValue","associateRefWithName","prismaObjectField","addFields","modelName","prismaInterfaceField","prismaObjectFields","prismaInterfaceFields"],"mappings":"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"}
|
package/lib/util/deep-equal.js
CHANGED
|
@@ -13,6 +13,7 @@ function deepEqual(left, right, ignore) {
|
|
|
13
13
|
return true;
|
|
14
14
|
}
|
|
15
15
|
if (left && right && typeof left === 'object' && typeof right === 'object') {
|
|
16
|
+
var _left_valueOf, _left, _right_valueOf, _right;
|
|
16
17
|
if (Array.isArray(left)) {
|
|
17
18
|
if (!Array.isArray(right)) {
|
|
18
19
|
return false;
|
|
@@ -28,6 +29,11 @@ function deepEqual(left, right, ignore) {
|
|
|
28
29
|
}
|
|
29
30
|
return true;
|
|
30
31
|
}
|
|
32
|
+
const lValue = (_left_valueOf = (_left = left).valueOf) === null || _left_valueOf === void 0 ? void 0 : _left_valueOf.call(_left);
|
|
33
|
+
const rValue = (_right_valueOf = (_right = right).valueOf) === null || _right_valueOf === void 0 ? void 0 : _right_valueOf.call(_right);
|
|
34
|
+
if ((lValue != null || rValue != null) && typeof lValue !== 'object') {
|
|
35
|
+
return lValue === rValue;
|
|
36
|
+
}
|
|
31
37
|
const keys = Object.keys(left);
|
|
32
38
|
const keyLength = keys.length;
|
|
33
39
|
if (keyLength !== Object.keys(right).length) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/deep-equal.ts"],"names":["deepEqual","left","right","ignore","Array","isArray","length","i","keys","Object","keyLength","key","has"],"mappings":"AAAA,8BAA8B;;;;+BACdA;;;eAAAA;;;AAAT,SAASA,UAAUC,IAAa,EAAEC,KAAc,EAAEC,MAAoB;IAC3E,IAAIF,SAASC,OAAO;QAClB,OAAO;IACT;IAEA,IAAID,QAAQC,SAAS,OAAOD,SAAS,YAAY,OAAOC,UAAU,UAAU;
|
|
1
|
+
{"version":3,"sources":["../../src/util/deep-equal.ts"],"names":["deepEqual","left","right","ignore","Array","isArray","length","i","lValue","valueOf","rValue","keys","Object","keyLength","key","has"],"mappings":"AAAA,8BAA8B;;;;+BACdA;;;eAAAA;;;AAAT,SAASA,UAAUC,IAAa,EAAEC,KAAc,EAAEC,MAAoB;IAC3E,IAAIF,SAASC,OAAO;QAClB,OAAO;IACT;IAEA,IAAID,QAAQC,SAAS,OAAOD,SAAS,YAAY,OAAOC,UAAU,UAAU;YAqB3DD,eAAAA,OACAC,gBAAAA;QArBf,IAAIE,MAAMC,OAAO,CAACJ,OAAO;YACvB,IAAI,CAACG,MAAMC,OAAO,CAACH,QAAQ;gBACzB,OAAO;YACT;YAEA,MAAM,EAAEI,MAAM,EAAE,GAAGL;YAEnB,IAAIC,MAAMI,MAAM,KAAKA,QAAQ;gBAC3B,OAAO;YACT;YAEA,IAAK,IAAIC,IAAI,GAAGA,IAAID,QAAQC,KAAK,EAAG;gBAClC,IAAI,CAACP,UAAUC,IAAI,CAACM,EAAE,EAAEL,KAAK,CAACK,EAAE,GAAG;oBACjC,OAAO;gBACT;YACF;YAEA,OAAO;QACT;QAEA,MAAMC,UAASP,gBAAAA,CAAAA,QAAAA,MAAKQ,OAAO,cAAZR,oCAAAA,mBAAAA;QACf,MAAMS,UAASR,iBAAAA,CAAAA,SAAAA,OAAMO,OAAO,cAAbP,qCAAAA,oBAAAA;QAEf,IAAI,AAACM,CAAAA,UAAU,QAAQE,UAAU,IAAG,KAAM,OAAOF,WAAW,UAAU;YACpE,OAAOA,WAAWE;QACpB;QAEA,MAAMC,OAAOC,OAAOD,IAAI,CAACV;QACzB,MAAMY,YAAYF,KAAKL,MAAM;QAE7B,IAAIO,cAAcD,OAAOD,IAAI,CAACT,OAAOI,MAAM,EAAE;YAC3C,OAAO;QACT;QAEA,KAAK,MAAMQ,OAAOH,KAAM;gBAClBR;YAAJ,KAAIA,UAAAA,oBAAAA,8BAAAA,QAAQY,GAAG,CAACD,MAAM;gBACpB;YACF;YAEA,IACE,CAACd,UAAU,AAACC,IAAgC,CAACa,IAAI,EAAE,AAACZ,KAAiC,CAACY,IAAI,GAC1F;gBACA,OAAO;YACT;QACF;QAEA,OAAO;IACT;IAEA,OAAO;AACT"}
|
package/lib/util/loader-map.js
CHANGED
|
@@ -21,7 +21,7 @@ _export(exports, {
|
|
|
21
21
|
});
|
|
22
22
|
const _core = require("@pothos/core");
|
|
23
23
|
const cache = (0, _core.createContextCache)((ctx)=>new Map());
|
|
24
|
-
function cacheKey(type, path, subPath) {
|
|
24
|
+
function cacheKey(type, path, subPath = []) {
|
|
25
25
|
let key = '';
|
|
26
26
|
let current = path;
|
|
27
27
|
while(current){
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/loader-map.ts"],"names":["cacheKey","setLoaderMappings","getLoaderMapping","cache","createContextCache","ctx","Map","type","path","subPath","key","current","prev","entry","info","value","Object","keys","forEach","field","map","mapping","indirectPath","set","mappings","get"],"mappings":";;;;;;;;;;;IAMgBA,QAAQ;eAARA;;IAkBAC,iBAAiB;eAAjBA;;IAYAC,gBAAgB;eAAhBA;;;sBAnCmB;AAGnC,MAAMC,QAAQC,IAAAA,wBAAkB,EAAC,CAACC,MAAQ,IAAIC;AAEvC,SAASN,SAASO,IAAY,EAAEC,IAAgC,EAAEC,
|
|
1
|
+
{"version":3,"sources":["../../src/util/loader-map.ts"],"names":["cacheKey","setLoaderMappings","getLoaderMapping","cache","createContextCache","ctx","Map","type","path","subPath","key","current","prev","entry","info","value","Object","keys","forEach","field","map","mapping","indirectPath","set","mappings","get"],"mappings":";;;;;;;;;;;IAMgBA,QAAQ;eAARA;;IAkBAC,iBAAiB;eAAjBA;;IAYAC,gBAAgB;eAAhBA;;;sBAnCmB;AAGnC,MAAMC,QAAQC,IAAAA,wBAAkB,EAAC,CAACC,MAAQ,IAAIC;AAEvC,SAASN,SAASO,IAAY,EAAEC,IAAgC,EAAEC,UAAoB,EAAE;IAC7F,IAAIC,MAAM;IACV,IAAIC,UAAkDH;IAEtD,MAAOG,QAAS;QACd,IAAI,OAAOA,QAAQD,GAAG,KAAK,UAAU;YACnCA,MAAMA,MAAM,CAAC,EAAEC,QAAQD,GAAG,CAAC,CAAC,EAAEA,IAAI,CAAC,GAAGC,QAAQD,GAAG;QACnD;QACAC,UAAUA,QAAQC,IAAI;IACxB;IAEA,KAAK,MAAMC,SAASJ,QAAS;QAC3BC,MAAM,CAAC,EAAEA,IAAI,CAAC,EAAEG,MAAM,CAAC;IACzB;IAEA,OAAO,CAAC,EAAEN,KAAK,CAAC,EAAEG,IAAI,CAAC;AACzB;AAEO,SAAST,kBAAkBI,GAAW,EAAES,IAAwB,EAAEC,KAAqB;IAC5FC,OAAOC,IAAI,CAACF,OAAOG,OAAO,CAAC,CAACC;QAC1B,MAAMC,MAAMjB,MAAME;QAElB,MAAMgB,UAAUN,KAAK,CAACI,MAAM;QAC5B,MAAMV,UAAU;eAAIY,QAAQC,YAAY;YAAEH;SAAM;QAChD,MAAMT,MAAMV,SAASqB,QAAQd,IAAI,EAAEO,KAAKN,IAAI,EAAEC;QAE9CW,IAAIG,GAAG,CAACb,KAAKW,QAAQG,QAAQ;IAC/B;AACF;AAEO,SAAStB,iBAAiBG,GAAW,EAAEG,IAAgC,EAAED,IAAY;IAC1F,MAAMa,MAAMjB,MAAME;IAClB,MAAMK,MAAMV,SAASO,MAAMC,MAAM,EAAE;QAE5BY;IAAP,OAAOA,CAAAA,WAAAA,IAAIK,GAAG,CAACf,kBAARU,sBAAAA,WAAgB;AACzB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pothos/plugin-prisma",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.59.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",
|
|
@@ -69,10 +69,10 @@
|
|
|
69
69
|
"graphql-scalars": "^1.22.2",
|
|
70
70
|
"graphql-tag": "^2.12.6",
|
|
71
71
|
"prisma": "^5.0.0",
|
|
72
|
-
"@pothos/core": "3.33.
|
|
72
|
+
"@pothos/core": "3.33.1",
|
|
73
73
|
"@pothos/plugin-complexity": "3.13.0",
|
|
74
74
|
"@pothos/plugin-errors": "3.11.1",
|
|
75
|
-
"@pothos/plugin-relay": "3.43.
|
|
75
|
+
"@pothos/plugin-relay": "3.43.1",
|
|
76
76
|
"@pothos/plugin-simple-objects": "3.7.0",
|
|
77
77
|
"@pothos/test-utils": "1.4.8"
|
|
78
78
|
},
|
package/src/global-types.ts
CHANGED
|
@@ -156,7 +156,23 @@ declare global {
|
|
|
156
156
|
? M
|
|
157
157
|
: Types['PrismaTypes'][Type & keyof Types['PrismaTypes']] & PrismaModelTypes,
|
|
158
158
|
Shape extends {} = Type extends PrismaObjectRef<PrismaModelTypes, infer S>
|
|
159
|
-
? S
|
|
159
|
+
? S & { [prismaModelName]?: Model['Name'] }
|
|
160
|
+
: Model['Shape'] & {
|
|
161
|
+
[prismaModelName]?: Type;
|
|
162
|
+
},
|
|
163
|
+
>(
|
|
164
|
+
type: Type,
|
|
165
|
+
fieldName: string,
|
|
166
|
+
field: (t: PrismaObjectFieldBuilder<Types, Model, false, Shape>) => FieldRef,
|
|
167
|
+
) => void;
|
|
168
|
+
|
|
169
|
+
prismaInterfaceField: <
|
|
170
|
+
Type extends PrismaInterfaceRef<PrismaModelTypes, {}> | keyof Types['PrismaTypes'],
|
|
171
|
+
Model extends PrismaModelTypes = Type extends PrismaInterfaceRef<infer M, {}>
|
|
172
|
+
? M
|
|
173
|
+
: Types['PrismaTypes'][Type & keyof Types['PrismaTypes']] & PrismaModelTypes,
|
|
174
|
+
Shape extends {} = Type extends PrismaInterfaceRef<PrismaModelTypes, infer S>
|
|
175
|
+
? S & { [prismaModelName]?: Model['Name'] }
|
|
160
176
|
: Model['Shape'] & {
|
|
161
177
|
[prismaModelName]?: Type;
|
|
162
178
|
},
|
|
@@ -172,7 +188,22 @@ declare global {
|
|
|
172
188
|
? M
|
|
173
189
|
: Types['PrismaTypes'][Type & keyof Types['PrismaTypes']] & PrismaModelTypes,
|
|
174
190
|
Shape extends {} = Type extends PrismaObjectRef<PrismaModelTypes, infer S>
|
|
175
|
-
? S
|
|
191
|
+
? S & { [prismaModelName]?: Model['Name'] }
|
|
192
|
+
: Model['Shape'] & {
|
|
193
|
+
[prismaModelName]?: Type;
|
|
194
|
+
},
|
|
195
|
+
>(
|
|
196
|
+
type: Type,
|
|
197
|
+
fields: (t: PrismaObjectFieldBuilder<Types, Model, false, Shape>) => FieldMap,
|
|
198
|
+
) => void;
|
|
199
|
+
|
|
200
|
+
prismaInterfaceFields: <
|
|
201
|
+
Type extends PrismaInterfaceRef<PrismaModelTypes, {}> | keyof Types['PrismaTypes'],
|
|
202
|
+
Model extends PrismaModelTypes = Type extends PrismaInterfaceRef<infer M, {}>
|
|
203
|
+
? M
|
|
204
|
+
: Types['PrismaTypes'][Type & keyof Types['PrismaTypes']] & PrismaModelTypes,
|
|
205
|
+
Shape extends {} = Type extends PrismaInterfaceRef<PrismaModelTypes, infer S>
|
|
206
|
+
? S & { [prismaModelName]?: Model['Name'] }
|
|
176
207
|
: Model['Shape'] & {
|
|
177
208
|
[prismaModelName]?: Type;
|
|
178
209
|
},
|
package/src/index.ts
CHANGED
|
@@ -16,7 +16,7 @@ import { PrismaModelTypes } from './types';
|
|
|
16
16
|
import { formatPrismaCursor, parsePrismaCursor } from './util/cursors';
|
|
17
17
|
import { getModel, getRefFromModel } from './util/datamodel';
|
|
18
18
|
import { getLoaderMapping, setLoaderMappings } from './util/loader-map';
|
|
19
|
-
import { queryFromInfo
|
|
19
|
+
import { queryFromInfo } from './util/map-query';
|
|
20
20
|
|
|
21
21
|
export { prismaConnectionHelpers } from './connection-helpers';
|
|
22
22
|
export { PrismaInterfaceRef } from './interface-ref';
|
|
@@ -164,19 +164,9 @@ export class PrismaPlugin<Types extends SchemaTypes> extends BasePlugin<Types> {
|
|
|
164
164
|
return fallback(queryFromInfo({ context, info }), parent, args, context, info);
|
|
165
165
|
}
|
|
166
166
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
.loadSelection(selectionState, context)
|
|
171
|
-
.then((result) => {
|
|
172
|
-
const mappings = selectionState.mappings[info.path.key];
|
|
173
|
-
|
|
174
|
-
if (mappings) {
|
|
175
|
-
setLoaderMappings(context, info, mappings.mappings);
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
return resolver(result, args, context, info);
|
|
179
|
-
});
|
|
167
|
+
return loaderCache(context)
|
|
168
|
+
.loadSelection(info, parent as object)
|
|
169
|
+
.then((result) => resolver(result, args, context, info));
|
|
180
170
|
};
|
|
181
171
|
}
|
|
182
172
|
}
|
package/src/model-loader.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { GraphQLResolveInfo } from 'graphql';
|
|
1
2
|
import {
|
|
2
3
|
createContextCache,
|
|
3
4
|
InterfaceRef,
|
|
@@ -5,8 +6,11 @@ import {
|
|
|
5
6
|
PothosSchemaError,
|
|
6
7
|
SchemaTypes,
|
|
7
8
|
} from '@pothos/core';
|
|
9
|
+
import { PrismaDelegate, SelectionMap } from './types';
|
|
8
10
|
import { getDelegateFromModel, getModel } from './util/datamodel';
|
|
9
11
|
import { getClient } from './util/get-client';
|
|
12
|
+
import { cacheKey, setLoaderMappings } from './util/loader-map';
|
|
13
|
+
import { selectionStateFromInfo } from './util/map-query';
|
|
10
14
|
import {
|
|
11
15
|
mergeSelection,
|
|
12
16
|
selectionCompatible,
|
|
@@ -14,27 +18,38 @@ import {
|
|
|
14
18
|
selectionToQuery,
|
|
15
19
|
} from './util/selections';
|
|
16
20
|
|
|
21
|
+
interface ResolvablePromise<T> {
|
|
22
|
+
promise: Promise<T>;
|
|
23
|
+
resolve: (value: T) => void;
|
|
24
|
+
reject: (err: unknown) => void;
|
|
25
|
+
}
|
|
17
26
|
export class ModelLoader {
|
|
18
|
-
|
|
27
|
+
context: object;
|
|
19
28
|
builder: PothosSchemaTypes.SchemaBuilder<never>;
|
|
20
29
|
findUnique: (model: Record<string, unknown>, ctx: {}) => unknown;
|
|
21
30
|
modelName: string;
|
|
22
|
-
|
|
31
|
+
queryCache = new Map<string, { selection: SelectionState; query: SelectionMap }>();
|
|
23
32
|
staged = new Set<{
|
|
24
|
-
promise: Promise<Record<string, unknown>>;
|
|
25
33
|
state: SelectionState;
|
|
34
|
+
models: Map<object, ResolvablePromise<Record<string, unknown> | null>>;
|
|
26
35
|
}>();
|
|
36
|
+
delegate: PrismaDelegate;
|
|
37
|
+
tick = Promise.resolve();
|
|
27
38
|
|
|
28
39
|
constructor(
|
|
29
|
-
|
|
40
|
+
context: object,
|
|
30
41
|
builder: PothosSchemaTypes.SchemaBuilder<never>,
|
|
31
42
|
modelName: string,
|
|
32
43
|
findUnique: (model: Record<string, unknown>, ctx: {}) => unknown,
|
|
33
44
|
) {
|
|
34
|
-
this.
|
|
45
|
+
this.context = context;
|
|
35
46
|
this.builder = builder;
|
|
36
47
|
this.findUnique = findUnique;
|
|
37
48
|
this.modelName = modelName;
|
|
49
|
+
this.delegate = getDelegateFromModel(
|
|
50
|
+
getClient(this.builder, this.context as never),
|
|
51
|
+
this.modelName,
|
|
52
|
+
);
|
|
38
53
|
}
|
|
39
54
|
|
|
40
55
|
static forRef<Types extends SchemaTypes>(
|
|
@@ -217,48 +232,103 @@ export class ModelLoader {
|
|
|
217
232
|
return this.getFindUnique(findBy);
|
|
218
233
|
}
|
|
219
234
|
|
|
220
|
-
|
|
221
|
-
const
|
|
235
|
+
getSelection(info: GraphQLResolveInfo) {
|
|
236
|
+
const key = cacheKey(info.parentType.name, info.path);
|
|
237
|
+
if (!this.queryCache.has(key)) {
|
|
238
|
+
const selection = selectionStateFromInfo(this.context, info);
|
|
239
|
+
this.queryCache.set(key, {
|
|
240
|
+
selection,
|
|
241
|
+
query: selectionToQuery(selection),
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
return this.queryCache.get(key)!;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
async loadSelection(info: GraphQLResolveInfo, model: object) {
|
|
249
|
+
const { selection, query } = this.getSelection(info);
|
|
222
250
|
|
|
251
|
+
const result = await this.stageQuery(selection, query, model);
|
|
252
|
+
|
|
253
|
+
if (result) {
|
|
254
|
+
const mappings = selection.mappings[info.path.key];
|
|
255
|
+
|
|
256
|
+
if (mappings) {
|
|
257
|
+
setLoaderMappings(this.context, info, mappings.mappings);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
return result;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
async stageQuery(selection: SelectionState, query: SelectionMap, model: object) {
|
|
223
265
|
for (const entry of this.staged) {
|
|
224
266
|
if (selectionCompatible(entry.state, query)) {
|
|
225
267
|
mergeSelection(entry.state, query);
|
|
226
268
|
|
|
227
|
-
|
|
269
|
+
if (!entry.models.has(model)) {
|
|
270
|
+
entry.models.set(model, createResolvablePromise<Record<string, unknown> | null>());
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
return entry.models.get(model)!.promise;
|
|
228
274
|
}
|
|
229
275
|
}
|
|
230
276
|
|
|
231
|
-
return this.initLoad(selection,
|
|
277
|
+
return this.initLoad(selection, model);
|
|
232
278
|
}
|
|
233
279
|
|
|
234
|
-
async initLoad(state: SelectionState,
|
|
235
|
-
const
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
const delegate = getDelegateFromModel(
|
|
240
|
-
getClient(this.builder, context as never),
|
|
241
|
-
this.modelName,
|
|
242
|
-
);
|
|
243
|
-
|
|
244
|
-
if (delegate.findUniqueOrThrow) {
|
|
245
|
-
return delegate.findUniqueOrThrow({
|
|
246
|
-
...selectionToQuery(state),
|
|
247
|
-
where: { ...(this.findUnique(this.model as Record<string, unknown>, context) as {}) },
|
|
248
|
-
} as never) as Promise<Record<string, unknown>>;
|
|
249
|
-
}
|
|
280
|
+
async initLoad(state: SelectionState, initialModel: {}) {
|
|
281
|
+
const models = new Map<object, ResolvablePromise<Record<string, unknown> | null>>();
|
|
282
|
+
|
|
283
|
+
const promise = createResolvablePromise<Record<string, unknown> | null>();
|
|
284
|
+
models.set(initialModel, promise);
|
|
250
285
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
...selectionToQuery(state),
|
|
254
|
-
where: { ...(this.findUnique(this.model as Record<string, unknown>, context) as {}) },
|
|
255
|
-
} as never) as Promise<Record<string, unknown>>;
|
|
256
|
-
}),
|
|
286
|
+
const entry = {
|
|
287
|
+
models,
|
|
257
288
|
state,
|
|
258
289
|
};
|
|
259
290
|
|
|
260
291
|
this.staged.add(entry);
|
|
261
292
|
|
|
262
|
-
|
|
293
|
+
const nextTick = createResolvablePromise<void>();
|
|
294
|
+
void this.tick.then(() => {
|
|
295
|
+
this.staged.delete(entry);
|
|
296
|
+
|
|
297
|
+
for (const [model, { resolve, reject }] of entry.models) {
|
|
298
|
+
if (this.delegate.findUniqueOrThrow) {
|
|
299
|
+
void this.delegate
|
|
300
|
+
.findUniqueOrThrow({
|
|
301
|
+
...selectionToQuery(state),
|
|
302
|
+
where: { ...(this.findUnique(model as Record<string, unknown>, this.context) as {}) },
|
|
303
|
+
} as never)
|
|
304
|
+
// eslint-disable-next-line promise/no-nesting
|
|
305
|
+
.then(resolve as () => {}, reject);
|
|
306
|
+
} else {
|
|
307
|
+
void this.delegate
|
|
308
|
+
.findUnique({
|
|
309
|
+
rejectOnNotFound: true,
|
|
310
|
+
...selectionToQuery(state),
|
|
311
|
+
where: { ...(this.findUnique(model as Record<string, unknown>, this.context) as {}) },
|
|
312
|
+
} as never)
|
|
313
|
+
// eslint-disable-next-line promise/no-nesting
|
|
314
|
+
.then(resolve as () => {}, reject);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
});
|
|
318
|
+
setTimeout(() => void nextTick.resolve(), 0);
|
|
319
|
+
this.tick = nextTick.promise;
|
|
320
|
+
|
|
321
|
+
return promise.promise;
|
|
263
322
|
}
|
|
264
323
|
}
|
|
324
|
+
|
|
325
|
+
function createResolvablePromise<T = unknown>(): ResolvablePromise<T> {
|
|
326
|
+
let resolveFn!: (value: T) => void;
|
|
327
|
+
let rejectFn!: (reason?: unknown) => void;
|
|
328
|
+
const promise = new Promise<T>((resolve, reject) => {
|
|
329
|
+
resolveFn = resolve;
|
|
330
|
+
rejectFn = reject;
|
|
331
|
+
});
|
|
332
|
+
|
|
333
|
+
return { promise, resolve: resolveFn, reject: rejectFn };
|
|
334
|
+
}
|
package/src/schema-builder.ts
CHANGED
|
@@ -219,6 +219,23 @@ schemaBuilderProto.prismaObjectField = function prismaObjectField(type, fieldNam
|
|
|
219
219
|
});
|
|
220
220
|
};
|
|
221
221
|
|
|
222
|
+
schemaBuilderProto.prismaInterfaceField = function prismaInterfaceField(type, fieldName, field) {
|
|
223
|
+
const ref = typeof type === 'string' ? getRefFromModel(type, this) : type;
|
|
224
|
+
this.configStore.onTypeConfig(ref, ({ name }) => {
|
|
225
|
+
this.configStore.addFields(ref, () => ({
|
|
226
|
+
[fieldName]: field(
|
|
227
|
+
new PrismaObjectFieldBuilder(
|
|
228
|
+
name,
|
|
229
|
+
this,
|
|
230
|
+
ref.modelName,
|
|
231
|
+
getRelationMap(getDMMF(this)).get(ref.modelName)!,
|
|
232
|
+
'Interface',
|
|
233
|
+
),
|
|
234
|
+
),
|
|
235
|
+
}));
|
|
236
|
+
});
|
|
237
|
+
};
|
|
238
|
+
|
|
222
239
|
schemaBuilderProto.prismaObjectFields = function prismaObjectFields(type, fields) {
|
|
223
240
|
const ref = typeof type === 'string' ? getRefFromModel(type, this) : type;
|
|
224
241
|
this.configStore.onTypeConfig(ref, ({ name }) => {
|
|
@@ -234,3 +251,20 @@ schemaBuilderProto.prismaObjectFields = function prismaObjectFields(type, fields
|
|
|
234
251
|
);
|
|
235
252
|
});
|
|
236
253
|
};
|
|
254
|
+
|
|
255
|
+
schemaBuilderProto.prismaInterfaceFields = function prismaInterfaceFields(type, fields) {
|
|
256
|
+
const ref = typeof type === 'string' ? getRefFromModel(type, this) : type;
|
|
257
|
+
this.configStore.onTypeConfig(ref, ({ name }) => {
|
|
258
|
+
this.configStore.addFields(ref, () =>
|
|
259
|
+
fields(
|
|
260
|
+
new PrismaObjectFieldBuilder(
|
|
261
|
+
name,
|
|
262
|
+
this,
|
|
263
|
+
ref.modelName,
|
|
264
|
+
getRelationMap(getDMMF(this)).get(ref.modelName)!,
|
|
265
|
+
'Interface',
|
|
266
|
+
),
|
|
267
|
+
),
|
|
268
|
+
);
|
|
269
|
+
});
|
|
270
|
+
};
|
package/src/types.ts
CHANGED
package/src/util/deep-equal.ts
CHANGED
|
@@ -25,6 +25,13 @@ export function deepEqual(left: unknown, right: unknown, ignore?: Set<string>) {
|
|
|
25
25
|
return true;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
+
const lValue = left.valueOf?.();
|
|
29
|
+
const rValue = right.valueOf?.();
|
|
30
|
+
|
|
31
|
+
if ((lValue != null || rValue != null) && typeof lValue !== 'object') {
|
|
32
|
+
return lValue === rValue;
|
|
33
|
+
}
|
|
34
|
+
|
|
28
35
|
const keys = Object.keys(left);
|
|
29
36
|
const keyLength = keys.length;
|
|
30
37
|
|
package/src/util/loader-map.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { LoaderMappings } from '../types';
|
|
|
4
4
|
|
|
5
5
|
const cache = createContextCache((ctx) => new Map<string, LoaderMappings>());
|
|
6
6
|
|
|
7
|
-
export function cacheKey(type: string, path: GraphQLResolveInfo['path'], subPath: string[]) {
|
|
7
|
+
export function cacheKey(type: string, path: GraphQLResolveInfo['path'], subPath: string[] = []) {
|
|
8
8
|
let key = '';
|
|
9
9
|
let current: GraphQLResolveInfo['path'] | undefined = path;
|
|
10
10
|
|