@pothos/plugin-prisma 3.40.3 → 3.41.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/model-loader.d.ts.map +1 -1
- package/dts/util/cursors.d.ts.map +1 -1
- package/dts/util/datamodel.d.ts.map +1 -1
- package/dts/util/map-query.d.ts.map +1 -1
- package/esm/generator.js.map +1 -1
- package/esm/model-loader.d.ts.map +1 -1
- package/esm/model-loader.js +5 -5
- package/esm/model-loader.js.map +1 -1
- package/esm/prisma-field-builder.js.map +1 -1
- package/esm/schema-builder.js +2 -2
- package/esm/schema-builder.js.map +1 -1
- package/esm/util/cursors.d.ts.map +1 -1
- package/esm/util/cursors.js +17 -17
- package/esm/util/cursors.js.map +1 -1
- package/esm/util/datamodel.d.ts.map +1 -1
- package/esm/util/datamodel.js +5 -4
- package/esm/util/datamodel.js.map +1 -1
- package/esm/util/description.js.map +1 -1
- package/esm/util/map-query.d.ts.map +1 -1
- package/esm/util/map-query.js +8 -7
- package/esm/util/map-query.js.map +1 -1
- package/esm/util/selections.js +2 -2
- package/esm/util/selections.js.map +1 -1
- package/lib/connection-helpers.js.map +1 -1
- package/lib/field-builder.js.map +1 -1
- package/lib/generator.js.map +1 -1
- package/lib/global-types.js.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/model-loader.js +4 -4
- package/lib/model-loader.js.map +1 -1
- package/lib/node-ref.js.map +1 -1
- package/lib/object-ref.js.map +1 -1
- package/lib/prisma-field-builder.js.map +1 -1
- package/lib/schema-builder.js +1 -1
- package/lib/schema-builder.js.map +1 -1
- package/lib/types.js.map +1 -1
- package/lib/util/cursors.js +16 -16
- package/lib/util/cursors.js.map +1 -1
- package/lib/util/datamodel.js +5 -4
- package/lib/util/datamodel.js.map +1 -1
- package/lib/util/deep-equal.js.map +1 -1
- package/lib/util/description.js.map +1 -1
- package/lib/util/get-client.js.map +1 -1
- package/lib/util/loader-map.js.map +1 -1
- package/lib/util/map-query.js +8 -7
- package/lib/util/map-query.js.map +1 -1
- package/lib/util/relation-map.js.map +1 -1
- package/lib/util/selections.js +2 -2
- package/lib/util/selections.js.map +1 -1
- package/package.json +8 -8
- package/src/generator.ts +1 -1
- package/src/model-loader.ts +5 -5
- package/src/schema-builder.ts +2 -1
- package/src/util/cursors.ts +29 -15
- package/src/util/datamodel.ts +7 -5
- package/src/util/map-query.ts +12 -7
package/lib/util/datamodel.js
CHANGED
|
@@ -18,6 +18,7 @@ _export(exports, {
|
|
|
18
18
|
getModel: ()=>getModel,
|
|
19
19
|
getDelegateFromModel: ()=>getDelegateFromModel
|
|
20
20
|
});
|
|
21
|
+
const _core = require("@pothos/core");
|
|
21
22
|
const _objectRef = require("../object-ref");
|
|
22
23
|
const _getClient = require("./get-client");
|
|
23
24
|
const refMap = new WeakMap();
|
|
@@ -36,7 +37,7 @@ function getRefFromModel(name, builder) {
|
|
|
36
37
|
function getRelation(name, builder, relation) {
|
|
37
38
|
const fieldData = getFieldData(name, builder, relation);
|
|
38
39
|
if (fieldData.kind !== 'object') {
|
|
39
|
-
throw new
|
|
40
|
+
throw new _core.PothosSchemaError(`Field ${relation} of model '${name}' is not a relation (${fieldData.kind})`);
|
|
40
41
|
}
|
|
41
42
|
return fieldData;
|
|
42
43
|
}
|
|
@@ -44,7 +45,7 @@ function getFieldData(name, builder, fieldName) {
|
|
|
44
45
|
const modelData = getModel(name, builder);
|
|
45
46
|
const fieldData = modelData.fields.find((field)=>field.name === fieldName);
|
|
46
47
|
if (!fieldData) {
|
|
47
|
-
throw new
|
|
48
|
+
throw new _core.PothosSchemaError(`Field '${fieldName}' not found in model '${name}'`);
|
|
48
49
|
}
|
|
49
50
|
return fieldData;
|
|
50
51
|
}
|
|
@@ -52,7 +53,7 @@ function getModel(name, builder) {
|
|
|
52
53
|
const dmmf = (0, _getClient.getDMMF)(builder);
|
|
53
54
|
const modelData = dmmf.datamodel.models.find((model)=>model.name === name);
|
|
54
55
|
if (!modelData) {
|
|
55
|
-
throw new
|
|
56
|
+
throw new _core.PothosSchemaError(`Model '${name}' not found in DMMF`);
|
|
56
57
|
}
|
|
57
58
|
return modelData;
|
|
58
59
|
}
|
|
@@ -60,7 +61,7 @@ function getDelegateFromModel(client, model) {
|
|
|
60
61
|
const lowerCase = `${model.slice(0, 1).toLowerCase()}${model.slice(1)}`;
|
|
61
62
|
const delegate = lowerCase in client ? client[lowerCase] : null;
|
|
62
63
|
if (!delegate) {
|
|
63
|
-
throw new
|
|
64
|
+
throw new _core.PothosSchemaError(`Unable to find delegate for model ${model}`);
|
|
64
65
|
}
|
|
65
66
|
return delegate;
|
|
66
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/datamodel.ts"],"names":["refMap","findUniqueMap","includeForRefMap","getRefFromModel","getRelation","getFieldData","getModel","getDelegateFromModel","WeakMap","name","builder","has","set","Map","cache","get","PrismaObjectRef","relation","fieldData","kind","
|
|
1
|
+
{"version":3,"sources":["../../src/util/datamodel.ts"],"names":["refMap","findUniqueMap","includeForRefMap","getRefFromModel","getRelation","getFieldData","getModel","getDelegateFromModel","WeakMap","name","builder","has","set","Map","cache","get","PrismaObjectRef","relation","fieldData","kind","PothosSchemaError","fieldName","modelData","fields","find","field","dmmf","getDMMF","datamodel","models","model","client","lowerCase","slice","toLowerCase","delegate"],"mappings":";;;;;;;;;;;IAKaA,MAAM,MAANA;IACAC,aAAa,MAAbA;IAKAC,gBAAgB,MAAhBA;IAKGC,eAAe,MAAfA;IAgBAC,WAAW,MAAXA;IAgBAC,YAAY,MAAZA;IAgBAC,QAAQ,MAARA;IAcAC,oBAAoB,MAApBA;;sBA9E0C;2BAC1B;2BAER;AAEjB,MAAMP,SAAS,IAAIQ;AACnB,MAAMP,gBAAgB,IAAIO;AAK1B,MAAMN,mBAAmB,IAAIM;AAK7B,SAASL,gBACdM,IAAY,EACZC,OAA+C,EACZ;IACnC,IAAI,CAACV,OAAOW,GAAG,CAACD,UAAU;QACxBV,OAAOY,GAAG,CAACF,SAAS,IAAIG;IAC1B,CAAC;IACD,MAAMC,QAAQd,OAAOe,GAAG,CAACL;IAEzB,IAAI,CAACI,MAAMH,GAAG,CAACF,OAAO;QACpBK,MAAMF,GAAG,CAACH,MAAM,IAAIO,0BAAe,CAACP,MAAMA;IAC5C,CAAC;IAED,OAAOK,MAAMC,GAAG,CAACN;AACnB;AAEO,SAASL,YACdK,IAAY,EACZC,OAA+C,EAC/CO,QAAgB,EAChB;IACA,MAAMC,YAAYb,aAAaI,MAAMC,SAASO;IAE9C,IAAIC,UAAUC,IAAI,KAAK,UAAU;QAC/B,MAAM,IAAIC,uBAAiB,CACzB,CAAC,MAAM,EAAEH,SAAS,WAAW,EAAER,KAAK,qBAAqB,EAAES,UAAUC,IAAI,CAAC,CAAC,CAAC,EAC5E;IACJ,CAAC;IAED,OAAOD;AACT;AAEO,SAASb,aACdI,IAAY,EACZC,OAA+C,EAC/CW,SAAiB,EACjB;IACA,MAAMC,YAAYhB,SAASG,MAAMC;IAEjC,MAAMQ,YAAYI,UAAUC,MAAM,CAACC,IAAI,CAAC,CAACC,QAAUA,MAAMhB,IAAI,KAAKY;IAElE,IAAI,CAACH,WAAW;QACd,MAAM,IAAIE,uBAAiB,CAAC,CAAC,OAAO,EAAEC,UAAU,sBAAsB,EAAEZ,KAAK,CAAC,CAAC,EAAE;IACnF,CAAC;IAED,OAAOS;AACT;AAEO,SAASZ,SACdG,IAAY,EACZC,OAA+C,EAC/C;IACA,MAAMgB,OAAOC,IAAAA,kBAAO,EAACjB;IACrB,MAAMY,YAAYI,KAAKE,SAAS,CAACC,MAAM,CAACL,IAAI,CAAC,CAACM,QAAUA,MAAMrB,IAAI,KAAKA;IAEvE,IAAI,CAACa,WAAW;QACd,MAAM,IAAIF,uBAAiB,CAAC,CAAC,OAAO,EAAEX,KAAK,mBAAmB,CAAC,EAAE;IACnE,CAAC;IAED,OAAOa;AACT;AAEO,SAASf,qBAAqBwB,MAAoB,EAAED,KAAa,EAAE;IACxE,MAAME,YAAY,CAAC,EAAEF,MAAMG,KAAK,CAAC,GAAG,GAAGC,WAAW,GAAG,EAAEJ,MAAMG,KAAK,CAAC,GAAG,CAAC;IAEvE,MAAME,WACJH,aAAaD,SAAS,AAACA,MAAiD,CAACC,UAAU,GAAG,IAAI;IAE5F,IAAI,CAACG,UAAU;QACb,MAAM,IAAIf,uBAAiB,CAAC,CAAC,kCAAkC,EAAEU,MAAM,CAAC,EAAE;IAC5E,CAAC;IAED,OAAOK;AACT"}
|
|
@@ -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
|
|
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;;aAAAA;;AAAT,SAASA,UAAUC,IAAa,EAAEC,KAAc,EAAEC,MAAoB,EAAE;IAC7E,IAAIF,SAASC,OAAO;QAClB,OAAO,IAAI;IACb,CAAC;IAED,IAAID,QAAQC,SAAS,OAAOD,SAAS,YAAY,OAAOC,UAAU,UAAU;QAC1E,IAAIE,MAAMC,OAAO,CAACJ,OAAO;YACvB,IAAI,CAACG,MAAMC,OAAO,CAACH,QAAQ;gBACzB,OAAO,KAAK;YACd,CAAC;YAED,MAAM,EAAEI,OAAM,EAAE,GAAGL;YAEnB,IAAIC,MAAMI,MAAM,KAAKA,QAAQ;gBAC3B,OAAO,KAAK;YACd,CAAC;YAED,IAAK,IAAIC,IAAI,GAAGA,IAAID,QAAQC,KAAK,EAAG;gBAClC,IAAI,CAACP,UAAUC,IAAI,CAACM,EAAE,EAAEL,KAAK,CAACK,EAAE,GAAG;oBACjC,OAAO,KAAK;gBACd,CAAC;YACH;YAEA,OAAO,IAAI;QACb,CAAC;QAED,MAAMC,OAAOC,OAAOD,IAAI,CAACP;QACzB,MAAMS,YAAYF,KAAKF,MAAM;QAE7B,IAAII,cAAcD,OAAOD,IAAI,CAACN,OAAOI,MAAM,EAAE;YAC3C,OAAO,KAAK;QACd,CAAC;QAED,KAAK,MAAMK,OAAOH,KAAM;YACtB,IAAIL,mBAAAA,oBAAAA,KAAAA,IAAAA,OAAQS,GAAG,CAACD,MAAM;gBACpB,QAAS;YACX,CAAC;YAED,IACE,CAACX,UAAU,AAACC,IAAgC,CAACU,IAAI,EAAE,AAACT,KAAiC,CAACS,IAAI,GAC1F;gBACA,OAAO,KAAK;YACd,CAAC;QACH;QAEA,OAAO,IAAI;IACb,CAAC;IAED,OAAO,KAAK;AACd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/description.ts"],"names":["getFieldDescription","getModelDescription","model","builder","fieldName","description","exposeDescriptions","options","prisma","usePrismaDescription","fields","getFieldData","documentation","undefined","models","getModel"],"mappings":"AAAA,+DAA+D
|
|
1
|
+
{"version":3,"sources":["../../src/util/description.ts"],"names":["getFieldDescription","getModelDescription","model","builder","fieldName","description","exposeDescriptions","options","prisma","usePrismaDescription","fields","getFieldData","documentation","undefined","models","getModel"],"mappings":"AAAA,+DAA+D;;;;;;;;;;;IAI/CA,mBAAmB,MAAnBA;IAkBAC,mBAAmB,MAAnBA;;2BApBuB;AAEhC,SAASD,oBACdE,KAAa,EACbC,OAA+C,EAC/CC,SAAiB,EACjBC,WAA4B,EAC5B;IACA,MAAM,EAAEC,mBAAkB,EAAE,GAAGH,QAAQI,OAAO,CAACC,MAAM;IACrD,MAAMC,uBACJH,uBAAuB,IAAI,IAC1B,OAAOA,uBAAuB,YAAYA,CAAAA,+BAAAA,gCAAAA,KAAAA,IAAAA,mBAAoBI,MAAM,AAAD,MAAM,IAAI;IAEhF,OACE,AAACD,CAAAA,uBACGJ,wBAAAA,yBAAAA,cAAeM,IAAAA,uBAAY,EAACT,OAAOC,SAASC,WAAWQ,aAAa,GACpEP,WAAW,AAAD,KAAMQ;AAExB;AAEO,SAASZ,oBACdC,KAAa,EACbC,OAA+C,EAC/CE,WAA4B,EAC5B;IACA,MAAM,EAAEC,mBAAkB,EAAE,GAAGH,QAAQI,OAAO,CAACC,MAAM;IACrD,MAAMC,uBACJH,uBAAuB,IAAI,IAC1B,OAAOA,uBAAuB,YAAYA,CAAAA,+BAAAA,gCAAAA,KAAAA,IAAAA,mBAAoBQ,MAAM,AAAD,MAAM,IAAI;IAEhF,OACE,AAACL,CAAAA,uBAAuBJ,wBAAAA,yBAAAA,cAAeU,IAAAA,mBAAQ,EAACb,OAAOC,SAASS,aAAa,GAAGP,WAAW,AAAD,KAC1FQ;AAEJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/get-client.ts"],"names":["getClient","getDMMF","prismaClientCache","createContextCache","builder","context","options","prisma","client","dmmf","_baseDmmf","_dmmf"],"mappings":"AAAA,uCAAuC
|
|
1
|
+
{"version":3,"sources":["../../src/util/get-client.ts"],"names":["getClient","getDMMF","prismaClientCache","createContextCache","builder","context","options","prisma","client","dmmf","_baseDmmf","_dmmf"],"mappings":"AAAA,uCAAuC;;;;;;;;;;;IAoCvBA,SAAS,MAATA;IAWAC,OAAO,MAAPA;;sBA9CgC;AA0BhD,MAAMC,oBAAoBC,IAAAA,wBAAkB,EAC1C,CAA4BC,UAC1BD,IAAAA,wBAAkB,EAAC,CAACE,UAClB,OAAOD,QAAQE,OAAO,CAACC,MAAM,CAACC,MAAM,KAAK,aACrCJ,QAAQE,OAAO,CAACC,MAAM,CAACC,MAAM,CAACH,WAC9BD,QAAQE,OAAO,CAACC,MAAM,CAACC,MAAM;AAIhC,SAASR,UACdI,OAA+C,EAC/CC,OAAyB,EACX;IACd,IAAI,OAAOD,QAAQE,OAAO,CAACC,MAAM,CAACC,MAAM,KAAK,YAAY;QACvD,OAAON,kBAAkBE,SAASC;IACpC,CAAC;IAED,OAAOD,QAAQE,OAAO,CAACC,MAAM,CAACC,MAAM;AACtC;AAEO,SAASP,QACdG,OAA+C,EACzC;IACN,IAAI,UAAUA,QAAQE,OAAO,CAACC,MAAM,IAAIH,QAAQE,OAAO,CAACC,MAAM,CAACE,IAAI,EAAE;QACnE,OAAOL,QAAQE,OAAO,CAACC,MAAM,CAACE,IAAI;IACpC,CAAC;IAED,MAAMD,SAASJ,QAAQE,OAAO,CAACC,MAAM,CAACC,MAAM;QAKrCA;IAAP,OAAOA,CAAAA,oBAAAA,OAAOE,SAAS,cAAhBF,+BAAAA,oBAAoBA,OAAOG,KAAK;AACzC"}
|
|
@@ -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":"
|
|
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,MAARA;IAkBAC,iBAAiB,MAAjBA;IAYAC,gBAAgB,MAAhBA;;sBAnCmB;AAGnC,MAAMC,QAAQC,IAAAA,wBAAkB,EAAC,CAACC,MAAQ,IAAIC;AAEvC,SAASN,SAASO,IAAY,EAAEC,IAAgC,EAAEC,OAAiB,EAAE;IAC1F,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,CAAC;QACDC,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,EAAE;IAC9FC,OAAOC,IAAI,CAACF,OAAOG,OAAO,CAAC,CAACC,QAAU;QACpC,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,EAAE;IAC5F,MAAMa,MAAMjB,MAAME;IAClB,MAAMK,MAAMV,SAASO,MAAMC,MAAM,EAAE;QAE5BY;IAAP,OAAOA,CAAAA,WAAAA,IAAIK,GAAG,CAACf,kBAARU,sBAAAA,WAAgB,IAAI;AAC7B"}
|
package/lib/util/map-query.js
CHANGED
|
@@ -14,6 +14,7 @@ _export(exports, {
|
|
|
14
14
|
getIndirectType: ()=>getIndirectType
|
|
15
15
|
});
|
|
16
16
|
const _graphql = require("graphql");
|
|
17
|
+
const _core = require("@pothos/core");
|
|
17
18
|
const _loaderMap = require("./loader-map");
|
|
18
19
|
const _selections = require("./selections");
|
|
19
20
|
function addTypeSelectionsForField(type, context, info, state, selection, indirectPath) {
|
|
@@ -83,7 +84,7 @@ function resolveIndirectInclude(type, info, selection, includePath, path, resolv
|
|
|
83
84
|
}
|
|
84
85
|
continue;
|
|
85
86
|
default:
|
|
86
|
-
throw new
|
|
87
|
+
throw new _core.PothosValidationError(`Unsupported selection kind ${selection.kind}`);
|
|
87
88
|
}
|
|
88
89
|
}
|
|
89
90
|
}
|
|
@@ -106,7 +107,7 @@ function addNestedSelections(type, context, info, state, selections, indirectPat
|
|
|
106
107
|
addNestedSelections(type, context, info, state, selection.selectionSet, indirectPath);
|
|
107
108
|
continue;
|
|
108
109
|
default:
|
|
109
|
-
throw new
|
|
110
|
+
throw new _core.PothosValidationError(`Unsupported selection kind ${selection.kind}`);
|
|
110
111
|
}
|
|
111
112
|
}
|
|
112
113
|
}
|
|
@@ -117,7 +118,7 @@ function addFieldSelection(type, context, info, state, selection, indirectPath)
|
|
|
117
118
|
}
|
|
118
119
|
const field = type.getFields()[selection.name.value];
|
|
119
120
|
if (!field) {
|
|
120
|
-
throw new
|
|
121
|
+
throw new _core.PothosValidationError(`Unknown field ${selection.name.value} on ${type.name}`);
|
|
121
122
|
}
|
|
122
123
|
const fieldSelect = (_field_extensions = field.extensions) === null || _field_extensions === void 0 ? void 0 : _field_extensions.pothosPrismaSelect;
|
|
123
124
|
let fieldSelectionMap;
|
|
@@ -206,7 +207,7 @@ function selectionStateFromInfo(context, info, typeName) {
|
|
|
206
207
|
const type = typeName ? info.schema.getTypeMap()[typeName] : info.parentType;
|
|
207
208
|
const state = createStateForType(type, info);
|
|
208
209
|
if (!(0, _graphql.isObjectType)(type)) {
|
|
209
|
-
throw new
|
|
210
|
+
throw new _core.PothosValidationError('Prisma plugin can only resolve includes for object types');
|
|
210
211
|
}
|
|
211
212
|
addFieldSelection(type, context, info, state, info.fieldNodes[0], []);
|
|
212
213
|
return state;
|
|
@@ -230,16 +231,16 @@ function normalizeInclude(path, type) {
|
|
|
230
231
|
let currentType = type;
|
|
231
232
|
const normalized = [];
|
|
232
233
|
if (!(0, _graphql.isObjectType)(currentType)) {
|
|
233
|
-
throw new
|
|
234
|
+
throw new _core.PothosValidationError(`Expected ${currentType} to be an Object type`);
|
|
234
235
|
}
|
|
235
236
|
for (const fieldName of path){
|
|
236
237
|
const field = currentType.getFields()[fieldName];
|
|
237
238
|
if (!field) {
|
|
238
|
-
throw new
|
|
239
|
+
throw new _core.PothosValidationError(`Expected ${currentType} to have a field ${fieldName}`);
|
|
239
240
|
}
|
|
240
241
|
currentType = (0, _graphql.getNamedType)(field.type);
|
|
241
242
|
if (!(0, _graphql.isObjectType)(currentType)) {
|
|
242
|
-
throw new
|
|
243
|
+
throw new _core.PothosValidationError(`Expected ${currentType} to be an Object type`);
|
|
243
244
|
}
|
|
244
245
|
normalized.push({
|
|
245
246
|
name: fieldName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/map-query.ts"],"names":["queryFromInfo","selectionStateFromInfo","getIndirectType","addTypeSelectionsForField","type","context","info","state","selection","indirectPath","name","value","startsWith","pothosPrismaInclude","pothosPrismaSelect","pothosPrismaIndirectInclude","pothosPrismaModel","extensions","path","length","resolveIndirectInclude","resolvedType","field","schema","getType","isObjectType","mode","mergeSelection","select","undefined","include","selectionSet","addNestedSelections","includePath","resolve","rest","sel","selections","kind","Kind","FIELD","returnType","getNamedType","getFields","alias","FRAGMENT_SPREAD","fragments","typeCondition","INLINE_FRAGMENT","
|
|
1
|
+
{"version":3,"sources":["../../src/util/map-query.ts"],"names":["queryFromInfo","selectionStateFromInfo","getIndirectType","addTypeSelectionsForField","type","context","info","state","selection","indirectPath","name","value","startsWith","pothosPrismaInclude","pothosPrismaSelect","pothosPrismaIndirectInclude","pothosPrismaModel","extensions","path","length","resolveIndirectInclude","resolvedType","field","schema","getType","isObjectType","mode","mergeSelection","select","undefined","include","selectionSet","addNestedSelections","includePath","resolve","rest","sel","selections","kind","Kind","FIELD","returnType","getNamedType","getFields","alias","FRAGMENT_SPREAD","fragments","typeCondition","INLINE_FRAGMENT","PothosValidationError","addFieldSelection","fieldSelect","fieldSelectionMap","mappings","args","getArgumentValues","variableValues","rawQuery","indirectInclude","query","normalizedIndirectInclude","Array","isArray","normalizeInclude","fieldState","createStateForType","Object","keys","resolvedField","selectionToQuery","node","map","_","selectionCompatible","typeName","getTypeMap","fieldNodes","indirectType","indirectField","subPath","n","nested","setLoaderMappings","parentType","parent","targetType","fieldMap","pothosPrismaFieldMap","createState","currentType","normalized","fieldName","push"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/relation-map.ts"],"names":["getRelationMap","createRelationMap","createContextCache","dmmf","datamodel","models","relationMap","Map","forEach","model","set","name","relations","map","get","fields","field","kind","has","type"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/util/relation-map.ts"],"names":["getRelationMap","createRelationMap","createContextCache","dmmf","datamodel","models","relationMap","Map","forEach","model","set","name","relations","map","get","fields","field","kind","has","type"],"mappings":";;;;;;;;;;;IAUaA,cAAc,MAAdA;IAIGC,iBAAiB,MAAjBA;;sBAdmB;AAU5B,MAAMD,iBAAiBE,IAAAA,wBAAkB,EAAC,CAACC,OAChDF,kBAAkBE,KAAKC,SAAS;AAG3B,SAASH,kBAAkB,EAAEI,OAAM,EAAkB,EAAE;IAC5D,MAAMC,cAA2B,IAAIC;IAErCF,OAAOG,OAAO,CAAC,CAACC,QAAU;QACxBH,YAAYI,GAAG,CAACD,MAAME,IAAI,EAAE;YAAEF,OAAOA,MAAME,IAAI;YAAEC,WAAW,IAAIL;QAAM;IACxE;IAEAF,OAAOG,OAAO,CAAC,CAACC,QAAU;QACxB,MAAMI,MAAMP,YAAYQ,GAAG,CAACL,MAAME,IAAI,EAAGC,SAAS;QAElDH,MAAMM,MAAM,CAACP,OAAO,CAAC,CAACQ,QAAU;YAC9B,IAAIA,MAAMC,IAAI,KAAK,YAAYX,YAAYY,GAAG,CAACF,MAAMG,IAAI,GAAG;gBAC1DN,IAAIH,GAAG,CAACM,MAAML,IAAI,EAAEL,YAAYQ,GAAG,CAACE,MAAMG,IAAI;YAChD,CAAC;QACH;IACF;IAEA,OAAOb;AACT"}
|
package/lib/util/selections.js
CHANGED
|
@@ -58,8 +58,8 @@ function mergeState(state, newState) {
|
|
|
58
58
|
if (newState.mode === 'include') {
|
|
59
59
|
state.mode = 'include';
|
|
60
60
|
} else {
|
|
61
|
-
for (const
|
|
62
|
-
state.fields.add(
|
|
61
|
+
for (const name of newState.fields){
|
|
62
|
+
state.fields.add(name);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/selections.ts"],"names":["selectionCompatible","stateCompatible","mergeState","createState","mergeSelection","selectionToQuery","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":"AAAA,oCAAoC,GACpC,uCAAuC
|
|
1
|
+
{"version":3,"sources":["../../src/util/selections.ts"],"names":["selectionCompatible","stateCompatible","mergeState","createState","mergeSelection","selectionToQuery","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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pothos/plugin-prisma",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.41.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",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"access": "public"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@prisma/generator-helper": "^4.
|
|
53
|
+
"@prisma/generator-helper": "^4.9.0"
|
|
54
54
|
},
|
|
55
55
|
"prisma": {
|
|
56
56
|
"seed": "node prisma/seed.mjs"
|
|
@@ -62,15 +62,15 @@
|
|
|
62
62
|
"typescript": ">=4.7.2"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
|
-
"@prisma/client": "^4.
|
|
65
|
+
"@prisma/client": "^4.9.0",
|
|
66
66
|
"graphql": "16.6.0",
|
|
67
67
|
"graphql-scalars": "^1.20.1",
|
|
68
68
|
"graphql-tag": "^2.12.6",
|
|
69
|
-
"prisma": "^4.
|
|
70
|
-
"@pothos/core": "3.
|
|
71
|
-
"@pothos/plugin-complexity": "3.
|
|
72
|
-
"@pothos/plugin-errors": "3.
|
|
73
|
-
"@pothos/plugin-relay": "3.
|
|
69
|
+
"prisma": "^4.9.0",
|
|
70
|
+
"@pothos/core": "3.25.0",
|
|
71
|
+
"@pothos/plugin-complexity": "3.12.0",
|
|
72
|
+
"@pothos/plugin-errors": "3.11.0",
|
|
73
|
+
"@pothos/plugin-relay": "3.35.0",
|
|
74
74
|
"@pothos/plugin-simple-objects": "3.6.7",
|
|
75
75
|
"@pothos/test-utils": "1.4.7"
|
|
76
76
|
},
|
package/src/generator.ts
CHANGED
|
@@ -40,7 +40,7 @@ generatorHandler({
|
|
|
40
40
|
const prismaLocation =
|
|
41
41
|
config.clientOutput ??
|
|
42
42
|
options.otherGenerators.find((gen) => gen.provider.value === 'prisma-client-js')!.output!
|
|
43
|
-
.value
|
|
43
|
+
.value!;
|
|
44
44
|
|
|
45
45
|
const outputLocation = options.generator.output?.value ?? defaultOutput;
|
|
46
46
|
const prismaTypes = buildTypes(options.dmmf);
|
package/src/model-loader.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createContextCache, ObjectRef, SchemaTypes } from '@pothos/core';
|
|
1
|
+
import { createContextCache, ObjectRef, PothosSchemaError, SchemaTypes } from '@pothos/core';
|
|
2
2
|
import { getDelegateFromModel, getModel } from './util/datamodel';
|
|
3
3
|
import { getClient } from './util/get-client';
|
|
4
4
|
import {
|
|
@@ -45,7 +45,7 @@ export class ModelLoader {
|
|
|
45
45
|
modelName,
|
|
46
46
|
findUnique === null
|
|
47
47
|
? () => {
|
|
48
|
-
throw new
|
|
48
|
+
throw new PothosSchemaError(`Missing findUnique for ${ref.name}`);
|
|
49
49
|
}
|
|
50
50
|
: findUnique ?? this.getDefaultFindUnique(ref, modelName, builder),
|
|
51
51
|
),
|
|
@@ -108,7 +108,7 @@ export class ModelLoader {
|
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
if (!findBy) {
|
|
111
|
-
throw new
|
|
111
|
+
throw new PothosSchemaError(`Missing findUnique for ${ref.name}`);
|
|
112
112
|
}
|
|
113
113
|
|
|
114
114
|
return findBy;
|
|
@@ -161,7 +161,7 @@ export class ModelLoader {
|
|
|
161
161
|
.find((idx) => (idx!.name ?? idx!.fields.join('_')) === cursor);
|
|
162
162
|
|
|
163
163
|
if (!index) {
|
|
164
|
-
throw new
|
|
164
|
+
throw new PothosSchemaError(`Can't find "${cursor}" field or index for ${ref.name}`);
|
|
165
165
|
}
|
|
166
166
|
|
|
167
167
|
const selection: Record<string, boolean> = {};
|
|
@@ -205,7 +205,7 @@ export class ModelLoader {
|
|
|
205
205
|
}
|
|
206
206
|
|
|
207
207
|
if (!findBy) {
|
|
208
|
-
throw new
|
|
208
|
+
throw new PothosSchemaError(`Unable to find field or index for ${fieldName} of ${ref.name}`);
|
|
209
209
|
}
|
|
210
210
|
|
|
211
211
|
return this.getFindUnique(findBy);
|
package/src/schema-builder.ts
CHANGED
|
@@ -5,6 +5,7 @@ import SchemaBuilder, {
|
|
|
5
5
|
FieldRef,
|
|
6
6
|
InterfaceRef,
|
|
7
7
|
OutputType,
|
|
8
|
+
PothosError,
|
|
8
9
|
SchemaTypes,
|
|
9
10
|
} from '@pothos/core';
|
|
10
11
|
import { PrismaObjectFieldBuilder } from './field-builder';
|
|
@@ -87,7 +88,7 @@ schemaBuilderProto.prismaNode = function prismaNode(
|
|
|
87
88
|
: ModelLoader.getFindUniqueForField(nodeRef, type, fieldName, this);
|
|
88
89
|
|
|
89
90
|
if (!interfaceRef) {
|
|
90
|
-
throw new
|
|
91
|
+
throw new PothosError('builder.prismaNode requires @pothos/plugin-relay to be installed');
|
|
91
92
|
}
|
|
92
93
|
|
|
93
94
|
const extendedOptions = {
|
package/src/util/cursors.ts
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
/* eslint-disable no-nested-ternary */
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
decodeBase64,
|
|
4
|
+
encodeBase64,
|
|
5
|
+
MaybePromise,
|
|
6
|
+
PothosValidationError,
|
|
7
|
+
SchemaTypes,
|
|
8
|
+
} from '@pothos/core';
|
|
3
9
|
import { getModel } from './datamodel';
|
|
4
10
|
import { DMMFField } from './get-client';
|
|
5
11
|
|
|
@@ -19,7 +25,7 @@ export function formatCursorChunk(value: unknown) {
|
|
|
19
25
|
case 'bigint':
|
|
20
26
|
return `I:${value}`;
|
|
21
27
|
default:
|
|
22
|
-
throw new
|
|
28
|
+
throw new PothosValidationError(`Unsupported cursor type ${typeof value}`);
|
|
23
29
|
}
|
|
24
30
|
}
|
|
25
31
|
|
|
@@ -39,7 +45,7 @@ export function cursorFormatter(fields: string | string[]) {
|
|
|
39
45
|
|
|
40
46
|
export function parsePrismaCursor(cursor: unknown) {
|
|
41
47
|
if (typeof cursor !== 'string') {
|
|
42
|
-
throw new
|
|
48
|
+
throw new PothosValidationError('Cursor must be a string');
|
|
43
49
|
}
|
|
44
50
|
|
|
45
51
|
try {
|
|
@@ -59,10 +65,10 @@ export function parsePrismaCursor(cursor: unknown) {
|
|
|
59
65
|
// eslint-disable-next-line node/no-unsupported-features/es-builtins
|
|
60
66
|
return BigInt(value);
|
|
61
67
|
default:
|
|
62
|
-
throw new
|
|
68
|
+
throw new PothosValidationError(`Invalid cursor type ${type}`);
|
|
63
69
|
}
|
|
64
70
|
} catch {
|
|
65
|
-
throw new
|
|
71
|
+
throw new PothosValidationError(`Invalid cursor: ${cursor}`);
|
|
66
72
|
}
|
|
67
73
|
}
|
|
68
74
|
|
|
@@ -120,7 +126,7 @@ export function getDefaultIDSerializer<Types extends SchemaTypes>(
|
|
|
120
126
|
return (parent) => JSON.stringify(fields.map((f) => serializeID(parent[f.name], f.kind)));
|
|
121
127
|
}
|
|
122
128
|
|
|
123
|
-
throw new
|
|
129
|
+
throw new PothosValidationError(`Unable to find ${fieldName} for model ${modelName}`);
|
|
124
130
|
}
|
|
125
131
|
|
|
126
132
|
export function getDefaultIDParser<Types extends SchemaTypes>(
|
|
@@ -129,7 +135,7 @@ export function getDefaultIDParser<Types extends SchemaTypes>(
|
|
|
129
135
|
builder: PothosSchemaTypes.SchemaBuilder<Types>,
|
|
130
136
|
): (id: string) => unknown {
|
|
131
137
|
if (!fieldName) {
|
|
132
|
-
throw new
|
|
138
|
+
throw new PothosValidationError('Missing field name');
|
|
133
139
|
}
|
|
134
140
|
const model = getModel(modelName, builder);
|
|
135
141
|
|
|
@@ -149,14 +155,14 @@ export function getDefaultIDParser<Types extends SchemaTypes>(
|
|
|
149
155
|
}
|
|
150
156
|
|
|
151
157
|
if (!fields) {
|
|
152
|
-
throw new
|
|
158
|
+
throw new PothosValidationError(`Unable to find ${fieldName} for model ${modelName}`);
|
|
153
159
|
}
|
|
154
160
|
|
|
155
161
|
return (id) => {
|
|
156
162
|
const parts = JSON.parse(id) as unknown;
|
|
157
163
|
|
|
158
164
|
if (!Array.isArray(parts)) {
|
|
159
|
-
throw new
|
|
165
|
+
throw new PothosValidationError(`Invalid id received for ${fieldName} of ${modelName}`);
|
|
160
166
|
}
|
|
161
167
|
|
|
162
168
|
const result: Record<string, unknown> = {};
|
|
@@ -185,7 +191,9 @@ export function parseCompositeCursor(fields: string[]) {
|
|
|
185
191
|
const parsed = parsePrismaCursor(cursor) as unknown[];
|
|
186
192
|
|
|
187
193
|
if (!Array.isArray(parsed)) {
|
|
188
|
-
throw new
|
|
194
|
+
throw new PothosValidationError(
|
|
195
|
+
`Expected compound cursor to contain an array, but got ${parsed}`,
|
|
196
|
+
);
|
|
189
197
|
}
|
|
190
198
|
|
|
191
199
|
const record: Record<string, unknown> = {};
|
|
@@ -220,23 +228,29 @@ export function prismaCursorConnectionQuery({
|
|
|
220
228
|
}: PrismaCursorConnectionQueryOptions) {
|
|
221
229
|
const { before, after, first, last } = args;
|
|
222
230
|
if (first != null && first < 0) {
|
|
223
|
-
throw new
|
|
231
|
+
throw new PothosValidationError('Argument "first" must be a non-negative integer');
|
|
224
232
|
}
|
|
225
233
|
|
|
226
234
|
if (last != null && last < 0) {
|
|
227
|
-
throw new
|
|
235
|
+
throw new PothosValidationError('Argument "last" must be a non-negative integer');
|
|
228
236
|
}
|
|
229
237
|
|
|
230
238
|
if (before && after) {
|
|
231
|
-
throw new
|
|
239
|
+
throw new PothosValidationError(
|
|
240
|
+
'Arguments "before" and "after" are not supported at the same time',
|
|
241
|
+
);
|
|
232
242
|
}
|
|
233
243
|
|
|
234
244
|
if (before != null && first != null) {
|
|
235
|
-
throw new
|
|
245
|
+
throw new PothosValidationError(
|
|
246
|
+
'Arguments "before" and "first" are not supported at the same time',
|
|
247
|
+
);
|
|
236
248
|
}
|
|
237
249
|
|
|
238
250
|
if (after != null && last != null) {
|
|
239
|
-
throw new
|
|
251
|
+
throw new PothosValidationError(
|
|
252
|
+
'Arguments "after" and "last" are not supported at the same time',
|
|
253
|
+
);
|
|
240
254
|
}
|
|
241
255
|
|
|
242
256
|
const cursor = before ?? after;
|
package/src/util/datamodel.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ObjectRef, SchemaTypes } from '@pothos/core';
|
|
1
|
+
import { ObjectRef, PothosSchemaError, SchemaTypes } from '@pothos/core';
|
|
2
2
|
import { PrismaObjectRef } from '../object-ref';
|
|
3
3
|
import { PrismaClient, PrismaDelegate, PrismaModelTypes } from '../types';
|
|
4
4
|
import { getDMMF } from './get-client';
|
|
@@ -38,7 +38,9 @@ export function getRelation<Types extends SchemaTypes>(
|
|
|
38
38
|
const fieldData = getFieldData(name, builder, relation);
|
|
39
39
|
|
|
40
40
|
if (fieldData.kind !== 'object') {
|
|
41
|
-
throw new
|
|
41
|
+
throw new PothosSchemaError(
|
|
42
|
+
`Field ${relation} of model '${name}' is not a relation (${fieldData.kind})`,
|
|
43
|
+
);
|
|
42
44
|
}
|
|
43
45
|
|
|
44
46
|
return fieldData;
|
|
@@ -54,7 +56,7 @@ export function getFieldData<Types extends SchemaTypes>(
|
|
|
54
56
|
const fieldData = modelData.fields.find((field) => field.name === fieldName);
|
|
55
57
|
|
|
56
58
|
if (!fieldData) {
|
|
57
|
-
throw new
|
|
59
|
+
throw new PothosSchemaError(`Field '${fieldName}' not found in model '${name}'`);
|
|
58
60
|
}
|
|
59
61
|
|
|
60
62
|
return fieldData;
|
|
@@ -68,7 +70,7 @@ export function getModel<Types extends SchemaTypes>(
|
|
|
68
70
|
const modelData = dmmf.datamodel.models.find((model) => model.name === name);
|
|
69
71
|
|
|
70
72
|
if (!modelData) {
|
|
71
|
-
throw new
|
|
73
|
+
throw new PothosSchemaError(`Model '${name}' not found in DMMF`);
|
|
72
74
|
}
|
|
73
75
|
|
|
74
76
|
return modelData;
|
|
@@ -81,7 +83,7 @@ export function getDelegateFromModel(client: PrismaClient, model: string) {
|
|
|
81
83
|
lowerCase in client ? (client as PrismaClient & Record<string, unknown>)[lowerCase] : null;
|
|
82
84
|
|
|
83
85
|
if (!delegate) {
|
|
84
|
-
throw new
|
|
86
|
+
throw new PothosSchemaError(`Unable to find delegate for model ${model}`);
|
|
85
87
|
}
|
|
86
88
|
|
|
87
89
|
return delegate as PrismaDelegate;
|
package/src/util/map-query.ts
CHANGED
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
Kind,
|
|
15
15
|
SelectionSetNode,
|
|
16
16
|
} from 'graphql';
|
|
17
|
+
import { PothosValidationError } from '@pothos/core';
|
|
17
18
|
import {
|
|
18
19
|
FieldSelection,
|
|
19
20
|
IncludeMap,
|
|
@@ -161,7 +162,9 @@ function resolveIndirectInclude(
|
|
|
161
162
|
continue;
|
|
162
163
|
|
|
163
164
|
default:
|
|
164
|
-
throw new
|
|
165
|
+
throw new PothosValidationError(
|
|
166
|
+
`Unsupported selection kind ${(selection as { kind: string }).kind}`,
|
|
167
|
+
);
|
|
165
168
|
}
|
|
166
169
|
}
|
|
167
170
|
}
|
|
@@ -206,7 +209,9 @@ function addNestedSelections(
|
|
|
206
209
|
continue;
|
|
207
210
|
|
|
208
211
|
default:
|
|
209
|
-
throw new
|
|
212
|
+
throw new PothosValidationError(
|
|
213
|
+
`Unsupported selection kind ${(selection as { kind: string }).kind}`,
|
|
214
|
+
);
|
|
210
215
|
}
|
|
211
216
|
}
|
|
212
217
|
}
|
|
@@ -226,7 +231,7 @@ function addFieldSelection(
|
|
|
226
231
|
const field = type.getFields()[selection.name.value];
|
|
227
232
|
|
|
228
233
|
if (!field) {
|
|
229
|
-
throw new
|
|
234
|
+
throw new PothosValidationError(`Unknown field ${selection.name.value} on ${type.name}`);
|
|
230
235
|
}
|
|
231
236
|
|
|
232
237
|
const fieldSelect = field.extensions?.pothosPrismaSelect as FieldSelection | undefined;
|
|
@@ -403,7 +408,7 @@ export function selectionStateFromInfo(
|
|
|
403
408
|
const state = createStateForType(type, info);
|
|
404
409
|
|
|
405
410
|
if (!isObjectType(type)) {
|
|
406
|
-
throw new
|
|
411
|
+
throw new PothosValidationError('Prisma plugin can only resolve includes for object types');
|
|
407
412
|
}
|
|
408
413
|
|
|
409
414
|
addFieldSelection(type, context, info, state, info.fieldNodes[0], []);
|
|
@@ -445,20 +450,20 @@ function normalizeInclude(path: string[], type: GraphQLNamedType) {
|
|
|
445
450
|
const normalized: { name: string; type: string }[] = [];
|
|
446
451
|
|
|
447
452
|
if (!isObjectType(currentType)) {
|
|
448
|
-
throw new
|
|
453
|
+
throw new PothosValidationError(`Expected ${currentType} to be an Object type`);
|
|
449
454
|
}
|
|
450
455
|
|
|
451
456
|
for (const fieldName of path) {
|
|
452
457
|
const field: GraphQLField<unknown, unknown> = currentType.getFields()[fieldName];
|
|
453
458
|
|
|
454
459
|
if (!field) {
|
|
455
|
-
throw new
|
|
460
|
+
throw new PothosValidationError(`Expected ${currentType} to have a field ${fieldName}`);
|
|
456
461
|
}
|
|
457
462
|
|
|
458
463
|
currentType = getNamedType(field.type);
|
|
459
464
|
|
|
460
465
|
if (!isObjectType(currentType)) {
|
|
461
|
-
throw new
|
|
466
|
+
throw new PothosValidationError(`Expected ${currentType} to be an Object type`);
|
|
462
467
|
}
|
|
463
468
|
|
|
464
469
|
normalized.push({ name: fieldName, type: currentType.name });
|