@pothos/plugin-prisma 3.35.8 → 3.36.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 +9 -0
- package/README.md +232 -41
- package/dts/connection-helpers.d.ts +34 -0
- package/dts/connection-helpers.d.ts.map +1 -0
- package/dts/global-types.d.ts +15 -6
- package/dts/global-types.d.ts.map +1 -1
- package/dts/index.d.ts +3 -0
- package/dts/index.d.ts.map +1 -1
- package/dts/node-ref.d.ts +1 -1
- package/dts/node-ref.d.ts.map +1 -1
- package/dts/object-ref.d.ts +2 -0
- package/dts/object-ref.d.ts.map +1 -1
- package/dts/prisma-field-builder.d.ts +5 -2
- package/dts/prisma-field-builder.d.ts.map +1 -1
- package/dts/types.d.ts +8 -6
- package/dts/types.d.ts.map +1 -1
- package/dts/util/map-query.d.ts.map +1 -1
- package/esm/connection-helpers.d.ts +34 -0
- package/esm/connection-helpers.d.ts.map +1 -0
- package/esm/connection-helpers.js +26 -0
- package/esm/connection-helpers.js.map +1 -0
- package/esm/field-builder.js +9 -15
- package/esm/field-builder.js.map +1 -1
- package/esm/global-types.d.ts +15 -6
- package/esm/global-types.d.ts.map +1 -1
- package/esm/global-types.js.map +1 -1
- package/esm/index.d.ts +3 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +3 -0
- package/esm/index.js.map +1 -1
- package/esm/node-ref.d.ts +1 -1
- package/esm/node-ref.d.ts.map +1 -1
- package/esm/node-ref.js +1 -1
- package/esm/node-ref.js.map +1 -1
- package/esm/object-ref.d.ts +2 -0
- package/esm/object-ref.d.ts.map +1 -1
- package/esm/object-ref.js +4 -0
- package/esm/object-ref.js.map +1 -1
- package/esm/prisma-field-builder.d.ts +5 -2
- package/esm/prisma-field-builder.d.ts.map +1 -1
- package/esm/prisma-field-builder.js +2 -2
- package/esm/prisma-field-builder.js.map +1 -1
- package/esm/schema-builder.js +18 -3
- package/esm/schema-builder.js.map +1 -1
- package/esm/types.d.ts +8 -6
- package/esm/types.d.ts.map +1 -1
- package/esm/util/datamodel.js +1 -1
- package/esm/util/datamodel.js.map +1 -1
- package/esm/util/map-query.d.ts.map +1 -1
- package/esm/util/map-query.js +21 -21
- package/esm/util/map-query.js.map +1 -1
- package/lib/connection-helpers.js +41 -0
- package/lib/connection-helpers.js.map +1 -0
- package/lib/field-builder.js +8 -14
- package/lib/field-builder.js.map +1 -1
- package/lib/index.js +6 -0
- package/lib/index.js.map +1 -1
- package/lib/node-ref.js +1 -1
- package/lib/node-ref.js.map +1 -1
- package/lib/object-ref.js +4 -0
- package/lib/object-ref.js.map +1 -1
- package/lib/prisma-field-builder.js +1 -1
- package/lib/prisma-field-builder.js.map +1 -1
- package/lib/schema-builder.js +18 -8
- package/lib/schema-builder.js.map +1 -1
- package/lib/util/datamodel.js +1 -1
- package/lib/util/datamodel.js.map +1 -1
- package/lib/util/map-query.js +21 -20
- package/lib/util/map-query.js.map +1 -1
- package/package.json +8 -8
- package/src/connection-helpers.ts +65 -0
- package/src/field-builder.ts +23 -23
- package/src/global-types.ts +50 -14
- package/src/index.ts +3 -0
- package/src/node-ref.ts +1 -4
- package/src/object-ref.ts +7 -0
- package/src/prisma-field-builder.ts +38 -25
- package/src/schema-builder.ts +38 -3
- package/src/types.ts +35 -16
- package/src/util/datamodel.ts +1 -1
- package/src/util/map-query.ts +32 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/prisma-field-builder.ts"],"names":["PrismaObjectFieldBuilder","RootBuilder","RootFieldBuilder","relation","name","allArgs","description","options","relationField","getRelation","model","builder","ref","type","getRefFromModel","query","resolve","extensions","rest","relationSelect","args","context","nestedQuery","select","field","isList","getFieldDescription","pothosPrismaSelect","pothosPrismaLoaded","value","undefined","pothosPrismaFallback","q","parent","info","relationCount","where","countSelect","_count","nullable","variant","isNull","selfSelect","parentIsNull","isThenable","then","resolved","expose","typeConfig","configStore","getTypeConfig","typename","usingSelect","exposeField","pothosPrismaVariant","createExpose","constructor","fieldMap","exposeBoolean","exposeFloat","exposeInt","exposeID","exposeString","exposeBooleanList","exposeFloatList","exposeIntList","exposeIDList","exposeStringList","withAuth","relatedConnection","maxSize","defaultSize","cursor","totalCount","connectionOptions","edgeOptions","typeName","formatCursor","getCursorFormatter","parseCursor","getCursorParser","getQuery","ctx","prismaCursorConnectionQuery","cursorSelection","ModelLoader","getCursorSelection","getSelection","nested","getType","path","hasTotalCount","prisma","filterConnectionTotalCount","fieldRef","connection","Promise","result","wrapConnectionResult","take","connectionQuery","fields","t","int","prismaFieldMap","addScopes","scopes","originalCreateField","createField","call","authScopes"],"mappings":"AAAA,oCAAoC,GACpC,uCAAuC,GACvC;;;;+BAqEaA;;aAAAA;;sBAtDN;6BACqB;yBAgBrB;2BACsC;6BACT;AAGpC,iEAAiE;AACjE,MAAMC,cAQFC,sBAAgB;AAuBb,MAAMF,iCAKHC;
|
|
1
|
+
{"version":3,"sources":["../src/prisma-field-builder.ts"],"names":["PrismaObjectFieldBuilder","RootBuilder","RootFieldBuilder","relation","name","allArgs","description","options","relationField","getRelation","model","builder","ref","type","getRefFromModel","query","resolve","extensions","rest","relationSelect","args","context","nestedQuery","select","field","isList","getFieldDescription","pothosPrismaSelect","pothosPrismaLoaded","value","undefined","pothosPrismaFallback","q","parent","info","relationCount","where","countSelect","_count","nullable","variant","isNull","selfSelect","parentIsNull","isThenable","then","resolved","expose","typeConfig","configStore","getTypeConfig","typename","usingSelect","exposeField","pothosPrismaVariant","createExpose","constructor","fieldMap","exposeBoolean","exposeFloat","exposeInt","exposeID","exposeString","exposeBooleanList","exposeFloatList","exposeIntList","exposeIDList","exposeStringList","withAuth","relatedConnection","maxSize","defaultSize","cursor","totalCount","connectionOptions","edgeOptions","typeName","formatCursor","getCursorFormatter","parseCursor","getCursorParser","getQuery","ctx","prismaCursorConnectionQuery","cursorSelection","ModelLoader","getCursorSelection","getSelection","nested","getType","path","hasTotalCount","prisma","filterConnectionTotalCount","fieldRef","connection","Promise","result","wrapConnectionResult","take","connectionQuery","ObjectRef","fields","t","int","prismaFieldMap","addScopes","scopes","originalCreateField","createField","call","authScopes"],"mappings":"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"}
|
package/lib/schema-builder.js
CHANGED
|
@@ -6,18 +6,14 @@ require("./global-types");
|
|
|
6
6
|
const _core = /*#__PURE__*/ _interopRequireWildcard(require("@pothos/core"));
|
|
7
7
|
const _fieldBuilder = require("./field-builder");
|
|
8
8
|
const _modelLoader = require("./model-loader");
|
|
9
|
-
const _nodeRef =
|
|
9
|
+
const _nodeRef = require("./node-ref");
|
|
10
|
+
const _objectRef = require("./object-ref");
|
|
10
11
|
const _cursors = require("./util/cursors");
|
|
11
12
|
const _datamodel = require("./util/datamodel");
|
|
12
13
|
const _description = require("./util/description");
|
|
13
14
|
const _getClient = require("./util/get-client");
|
|
14
15
|
const _mapQuery = require("./util/map-query");
|
|
15
16
|
const _relationMap = require("./util/relation-map");
|
|
16
|
-
function _interopRequireDefault(obj) {
|
|
17
|
-
return obj && obj.__esModule ? obj : {
|
|
18
|
-
default: obj
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
17
|
function _getRequireWildcardCache(nodeInterop) {
|
|
22
18
|
if (typeof WeakMap !== "function") return null;
|
|
23
19
|
var cacheBabelInterop = new WeakMap();
|
|
@@ -59,7 +55,7 @@ function _interopRequireWildcard(obj, nodeInterop) {
|
|
|
59
55
|
}
|
|
60
56
|
const schemaBuilderProto = _core.default.prototype;
|
|
61
57
|
schemaBuilderProto.prismaObject = function prismaObject(type, { fields , findUnique , select , include , description , ...options }) {
|
|
62
|
-
const ref = options.variant ?
|
|
58
|
+
const ref = options.variant ? new _objectRef.PrismaObjectRef(options.variant, type) : (0, _datamodel.getRefFromModel)(type, this);
|
|
63
59
|
var _variant, ref1;
|
|
64
60
|
const name = (ref1 = (_variant = options.variant) !== null && _variant !== void 0 ? _variant : options.name) !== null && ref1 !== void 0 ? ref1 : type;
|
|
65
61
|
const fieldMap = (0, _relationMap.getRelationMap)((0, _getClient.getDMMF)(this)).get(type);
|
|
@@ -92,7 +88,7 @@ schemaBuilderProto.prismaNode = function prismaNode(type, { id: { field , resolv
|
|
|
92
88
|
const idParser = fieldName ? (0, _cursors.getDefaultIDParser)(type, fieldName, this) : undefined;
|
|
93
89
|
var ref1;
|
|
94
90
|
const typeName = (ref1 = variant !== null && variant !== void 0 ? variant : name) !== null && ref1 !== void 0 ? ref1 : type;
|
|
95
|
-
const nodeRef = new _nodeRef.
|
|
91
|
+
const nodeRef = new _nodeRef.PrismaNodeRef(typeName, type);
|
|
96
92
|
const findUnique = rawFindUnique ? (parent, context)=>rawFindUnique(resolve(parent, context), context) : _modelLoader.ModelLoader.getFindUniqueForField(nodeRef, type, fieldName, this);
|
|
97
93
|
if (!interfaceRef) {
|
|
98
94
|
throw new TypeError('builder.prismaNode requires @pothos/plugin-relay to be installed');
|
|
@@ -151,5 +147,19 @@ schemaBuilderProto.prismaNode = function prismaNode(type, { id: { field , resolv
|
|
|
151
147
|
this.configStore.associateRefWithName(nodeRef, typeName);
|
|
152
148
|
return nodeRef;
|
|
153
149
|
};
|
|
150
|
+
schemaBuilderProto.prismaObjectField = function prismaObjectField(type, fieldName, field) {
|
|
151
|
+
const ref = typeof type === 'string' ? (0, _datamodel.getRefFromModel)(type, this) : type;
|
|
152
|
+
this.configStore.onTypeConfig(ref, ({ name })=>{
|
|
153
|
+
this.configStore.addFields(ref, ()=>({
|
|
154
|
+
[fieldName]: field(new _fieldBuilder.PrismaObjectFieldBuilder(name, this, ref.modelName, (0, _relationMap.getRelationMap)((0, _getClient.getDMMF)(this)).get(ref.modelName)))
|
|
155
|
+
}));
|
|
156
|
+
});
|
|
157
|
+
};
|
|
158
|
+
schemaBuilderProto.prismaObjectFields = function prismaObjectFields(type, fields) {
|
|
159
|
+
const ref = typeof type === 'string' ? (0, _datamodel.getRefFromModel)(type, this) : type;
|
|
160
|
+
this.configStore.onTypeConfig(ref, ({ name })=>{
|
|
161
|
+
this.configStore.addFields(ref, ()=>fields(new _fieldBuilder.PrismaObjectFieldBuilder(name, this, ref.modelName, (0, _relationMap.getRelationMap)((0, _getClient.getDMMF)(this)).get(ref.modelName))));
|
|
162
|
+
});
|
|
163
|
+
};
|
|
154
164
|
|
|
155
165
|
//# 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","
|
|
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","prismaNode","id","field","resolve","rawResolve","idOptions","rawFindUnique","fieldName","interfaceRef","nodeInterfaceRef","getDefaultIDSerializer","idParser","getDefaultIDParser","typeName","nodeRef","PrismaNodeRef","parent","context","getFindUniqueForField","TypeError","extendedOptions","interfaces","loadWithoutCache","info","query","queryFromInfo","delegate","getDelegateFromModel","getClient","record","findUniqueOrThrow","where","rejectOnNotFound","brandWithType","configStore","addInterfaces","onTypeConfig","nodeConfig","objectField","relayOptions","idFieldName","t","globalID","idFieldOptions","nullable","args","associateRefWithName","prismaObjectField","addFields","modelName","prismaObjectFields"],"mappings":"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"}
|
package/lib/util/datamodel.js
CHANGED
|
@@ -29,7 +29,7 @@ function getRefFromModel(name, builder) {
|
|
|
29
29
|
}
|
|
30
30
|
const cache = refMap.get(builder);
|
|
31
31
|
if (!cache.has(name)) {
|
|
32
|
-
cache.set(name, new _objectRef.PrismaObjectRef(name));
|
|
32
|
+
cache.set(name, new _objectRef.PrismaObjectRef(name, name));
|
|
33
33
|
}
|
|
34
34
|
return cache.get(name);
|
|
35
35
|
}
|
|
@@ -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","Error","fieldName","modelData","fields","find","field","dmmf","getDMMF","datamodel","models","model","client","lowerCase","slice","toLowerCase","delegate"],"mappings":"AAAA;;;;;;;;;;;IAKaA,MAAM,MAANA;IACAC,aAAa,MAAbA;IAKAC,gBAAgB,MAAhBA;IAKGC,eAAe,MAAfA;IAgBAC,WAAW,MAAXA;IAcAC,YAAY,MAAZA;IAgBAC,QAAQ,MAARA;IAcAC,oBAAoB,MAApBA;;2BA3EgB;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;
|
|
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","Error","fieldName","modelData","fields","find","field","dmmf","getDMMF","datamodel","models","model","client","lowerCase","slice","toLowerCase","delegate"],"mappings":"AAAA;;;;;;;;;;;IAKaA,MAAM,MAANA;IACAC,aAAa,MAAbA;IAKAC,gBAAgB,MAAhBA;IAKGC,eAAe,MAAfA;IAgBAC,WAAW,MAAXA;IAcAC,YAAY,MAAZA;IAgBAC,QAAQ,MAARA;IAcAC,oBAAoB,MAApBA;;2BA3EgB;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,MAAM,CAAC,MAAM,EAAEH,SAAS,WAAW,EAAER,KAAK,qBAAqB,EAAES,UAAUC,IAAI,CAAC,CAAC,CAAC,EAAE;IAChG,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,MAAM,CAAC,OAAO,EAAEC,UAAU,sBAAsB,EAAEZ,KAAK,CAAC,CAAC,EAAE;IACvE,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,MAAM,CAAC,OAAO,EAAEX,KAAK,mBAAmB,CAAC,EAAE;IACvD,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,MAAM,CAAC,kCAAkC,EAAEU,MAAM,CAAC,EAAE;IAChE,CAAC;IAED,OAAOK;AACT"}
|
package/lib/util/map-query.js
CHANGED
|
@@ -48,6 +48,10 @@ function addTypeSelectionsForField(type, context, info, state, selection, indire
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
function resolveIndirectInclude(type, info, selection, includePath, path, resolve) {
|
|
51
|
+
if (includePath.length === 0) {
|
|
52
|
+
resolve(type, selection, path);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
51
55
|
const [include, ...rest] = includePath;
|
|
52
56
|
if (!selection.selectionSet || !include) {
|
|
53
57
|
return;
|
|
@@ -56,22 +60,13 @@ function resolveIndirectInclude(type, info, selection, includePath, path, resolv
|
|
|
56
60
|
switch(sel.kind){
|
|
57
61
|
case _graphql.Kind.FIELD:
|
|
58
62
|
if (sel.name.value === include.name && (0, _graphql.isObjectType)(type)) {
|
|
63
|
+
var ref;
|
|
59
64
|
const returnType = (0, _graphql.getNamedType)(type.getFields()[sel.name.value].type);
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
(ref1 = (ref = sel.alias) === null || ref === void 0 ? void 0 : ref.value) !== null && ref1 !== void 0 ? ref1 : sel.name.value
|
|
66
|
-
]);
|
|
67
|
-
} else {
|
|
68
|
-
var ref2;
|
|
69
|
-
var ref3;
|
|
70
|
-
resolveIndirectInclude(returnType, info, sel, rest, [
|
|
71
|
-
...path,
|
|
72
|
-
(ref3 = (ref2 = sel.alias) === null || ref2 === void 0 ? void 0 : ref2.value) !== null && ref3 !== void 0 ? ref3 : sel.name.value
|
|
73
|
-
], resolve);
|
|
74
|
-
}
|
|
65
|
+
var ref1;
|
|
66
|
+
resolveIndirectInclude(returnType, info, sel, rest, [
|
|
67
|
+
...path,
|
|
68
|
+
(ref1 = (ref = sel.alias) === null || ref === void 0 ? void 0 : ref.value) !== null && ref1 !== void 0 ? ref1 : sel.name.value
|
|
69
|
+
], resolve);
|
|
75
70
|
}
|
|
76
71
|
continue;
|
|
77
72
|
case _graphql.Kind.FRAGMENT_SPREAD:
|
|
@@ -179,7 +174,8 @@ function addFieldSelection(type, context, info, state, selection, indirectPath)
|
|
|
179
174
|
}
|
|
180
175
|
}
|
|
181
176
|
function queryFromInfo({ context , info , typeName , select , path =[] }) {
|
|
182
|
-
const
|
|
177
|
+
const returnType = (0, _graphql.getNamedType)(info.returnType);
|
|
178
|
+
const type = typeName ? info.schema.getTypeMap()[typeName] : returnType;
|
|
183
179
|
const state = createStateForType(type, info);
|
|
184
180
|
if (select) {
|
|
185
181
|
(0, _selections.mergeSelection)(state, {
|
|
@@ -187,10 +183,15 @@ function queryFromInfo({ context , info , typeName , select , path =[] }) {
|
|
|
187
183
|
});
|
|
188
184
|
}
|
|
189
185
|
if (path.length > 0) {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
186
|
+
var _extensions;
|
|
187
|
+
const { pothosPrismaIndirectInclude } = (_extensions = returnType.extensions) !== null && _extensions !== void 0 ? _extensions : {};
|
|
188
|
+
var ref;
|
|
189
|
+
resolveIndirectInclude(returnType, info, info.fieldNodes[0], (ref = pothosPrismaIndirectInclude === null || pothosPrismaIndirectInclude === void 0 ? void 0 : pothosPrismaIndirectInclude.path) !== null && ref !== void 0 ? ref : [], [], (indirectType, indirectField, subPath)=>{
|
|
190
|
+
resolveIndirectInclude(indirectType, info, indirectField, path.map((n)=>typeof n === 'string' ? {
|
|
191
|
+
name: n
|
|
192
|
+
} : n), subPath, (resolvedType, resolvedField, nested)=>{
|
|
193
|
+
addTypeSelectionsForField(resolvedType, context, info, state, resolvedField, nested);
|
|
194
|
+
});
|
|
194
195
|
});
|
|
195
196
|
} else {
|
|
196
197
|
addTypeSelectionsForField(type, context, info, state, info.fieldNodes[0], []);
|
|
@@ -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","resolveIndirectInclude","path","resolvedType","field","isObjectType","mode","mergeSelection","select","undefined","include","selectionSet","addNestedSelections","includePath","resolve","rest","sel","selections","kind","Kind","FIELD","returnType","getNamedType","getFields","
|
|
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","resolveIndirectInclude","path","resolvedType","field","isObjectType","mode","mergeSelection","select","undefined","include","selectionSet","addNestedSelections","includePath","resolve","length","rest","sel","selections","kind","Kind","FIELD","returnType","getNamedType","getFields","alias","FRAGMENT_SPREAD","fragments","typeCondition","schema","getType","INLINE_FRAGMENT","Error","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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pothos/plugin-prisma",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.36.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,16 +52,16 @@
|
|
|
52
52
|
"typescript": ">=4.7.2"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
|
-
"@pothos/core": "3.22.9",
|
|
56
|
-
"@pothos/plugin-complexity": "3.11.7",
|
|
57
|
-
"@pothos/plugin-errors": "3.8.7",
|
|
58
|
-
"@pothos/plugin-relay": "3.28.7",
|
|
59
|
-
"@pothos/plugin-simple-objects": "3.6.7",
|
|
60
|
-
"@pothos/test-utils": "1.4.7",
|
|
61
55
|
"@prisma/client": "^4.5.0",
|
|
62
56
|
"graphql": "16.6.0",
|
|
63
57
|
"graphql-tag": "^2.12.6",
|
|
64
|
-
"prisma": "^4.5.0"
|
|
58
|
+
"prisma": "^4.5.0",
|
|
59
|
+
"@pothos/core": "3.23.0",
|
|
60
|
+
"@pothos/plugin-complexity": "3.11.7",
|
|
61
|
+
"@pothos/plugin-errors": "3.9.0",
|
|
62
|
+
"@pothos/plugin-relay": "3.29.0",
|
|
63
|
+
"@pothos/plugin-simple-objects": "3.6.7",
|
|
64
|
+
"@pothos/test-utils": "1.4.7"
|
|
65
65
|
},
|
|
66
66
|
"scripts": {
|
|
67
67
|
"generate": "prisma generate",
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { SchemaTypes } from '@pothos/core';
|
|
2
|
+
import { PrismaObjectRef } from './object-ref';
|
|
3
|
+
import type { PrismaModelTypes } from './types';
|
|
4
|
+
import {
|
|
5
|
+
getCursorFormatter,
|
|
6
|
+
getCursorParser,
|
|
7
|
+
prismaCursorConnectionQuery,
|
|
8
|
+
wrapConnectionResult,
|
|
9
|
+
} from './util/cursors';
|
|
10
|
+
import { getRefFromModel } from './util/datamodel';
|
|
11
|
+
|
|
12
|
+
export const prismaModelKey = Symbol.for('Pothos.prismaModelKey');
|
|
13
|
+
|
|
14
|
+
export function prismaConnectionHelpers<
|
|
15
|
+
Types extends SchemaTypes,
|
|
16
|
+
RefOrType extends PrismaObjectRef<PrismaModelTypes> | keyof Types['PrismaTypes'],
|
|
17
|
+
Model extends PrismaModelTypes = RefOrType extends PrismaObjectRef<infer T>
|
|
18
|
+
? T & PrismaModelTypes
|
|
19
|
+
: Types['PrismaTypes'][RefOrType & keyof Types['PrismaTypes']] & PrismaModelTypes,
|
|
20
|
+
Shape = RefOrType extends PrismaObjectRef<PrismaModelTypes, infer T> ? T : Model['Shape'],
|
|
21
|
+
>(
|
|
22
|
+
builder: PothosSchemaTypes.SchemaBuilder<Types>,
|
|
23
|
+
refOrType: RefOrType,
|
|
24
|
+
options: {
|
|
25
|
+
cursor: string & keyof Model['WhereUnique'];
|
|
26
|
+
defaultSize?:
|
|
27
|
+
| number
|
|
28
|
+
| ((args: PothosSchemaTypes.DefaultConnectionArguments, ctx: {}) => number);
|
|
29
|
+
maxSize?: number | ((args: PothosSchemaTypes.DefaultConnectionArguments, ctx: {}) => number);
|
|
30
|
+
},
|
|
31
|
+
) {
|
|
32
|
+
const modelName =
|
|
33
|
+
typeof refOrType === 'string' ? refOrType : (refOrType as PrismaObjectRef<Model>).modelName;
|
|
34
|
+
const formatCursor = getCursorFormatter(modelName, builder, options.cursor);
|
|
35
|
+
const parseCursor = getCursorParser(modelName, builder, options.cursor);
|
|
36
|
+
|
|
37
|
+
function resolve(
|
|
38
|
+
list: (Shape & {})[],
|
|
39
|
+
args: PothosSchemaTypes.DefaultConnectionArguments,
|
|
40
|
+
ctx: Types['Context'],
|
|
41
|
+
) {
|
|
42
|
+
return wrapConnectionResult(list, args, getQuery(args, ctx).take, formatCursor);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function getQuery(args: PothosSchemaTypes.DefaultConnectionArguments, ctx: Types['Context']) {
|
|
46
|
+
return prismaCursorConnectionQuery({
|
|
47
|
+
args,
|
|
48
|
+
ctx,
|
|
49
|
+
maxSize: typeof options.maxSize === 'function' ? options.maxSize(args, ctx) : options.maxSize,
|
|
50
|
+
defaultSize:
|
|
51
|
+
typeof options.defaultSize === 'function'
|
|
52
|
+
? options.defaultSize(args, ctx)
|
|
53
|
+
: options.defaultSize,
|
|
54
|
+
parseCursor,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return {
|
|
59
|
+
ref: (typeof refOrType === 'string'
|
|
60
|
+
? getRefFromModel(refOrType, builder)
|
|
61
|
+
: refOrType) as PrismaObjectRef<Model>,
|
|
62
|
+
resolve,
|
|
63
|
+
getQuery,
|
|
64
|
+
};
|
|
65
|
+
}
|
package/src/field-builder.ts
CHANGED
|
@@ -123,6 +123,8 @@ fieldBuilderProto.prismaConnection = function prismaConnection<
|
|
|
123
123
|
context,
|
|
124
124
|
info,
|
|
125
125
|
select: cursorSelection as {},
|
|
126
|
+
path: ['edges', 'node'],
|
|
127
|
+
typeName,
|
|
126
128
|
}),
|
|
127
129
|
ctx: context,
|
|
128
130
|
parseCursor,
|
|
@@ -135,30 +137,28 @@ fieldBuilderProto.prismaConnection = function prismaConnection<
|
|
|
135
137
|
(query) => resolve(query as never, parent, args as never, context, info) as never,
|
|
136
138
|
),
|
|
137
139
|
},
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
140
|
+
connectionOptions instanceof ObjectRef
|
|
141
|
+
? connectionOptions
|
|
142
|
+
: {
|
|
143
|
+
...connectionOptions,
|
|
144
|
+
fields: totalCount
|
|
145
|
+
? (
|
|
146
|
+
t: PothosSchemaTypes.ObjectFieldBuilder<
|
|
147
|
+
SchemaTypes,
|
|
148
|
+
{ totalCount?: () => MaybePromise<number> }
|
|
149
|
+
>,
|
|
150
|
+
) => ({
|
|
151
|
+
totalCount: t.int({
|
|
152
|
+
nullable: false,
|
|
153
|
+
resolve: (parent, args, context) => parent.totalCount?.(),
|
|
154
|
+
}),
|
|
155
|
+
...(connectionOptions as { fields?: (t: unknown) => {} }).fields?.(t),
|
|
156
|
+
})
|
|
157
|
+
: (connectionOptions as { fields: undefined }).fields,
|
|
158
|
+
extensions: {
|
|
159
|
+
...(connectionOptions as Record<string, {}> | undefined)?.extensions,
|
|
160
|
+
},
|
|
159
161
|
},
|
|
160
|
-
},
|
|
161
|
-
},
|
|
162
162
|
edgeOptions,
|
|
163
163
|
);
|
|
164
164
|
|
package/src/global-types.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-empty-interface */
|
|
3
3
|
import {
|
|
4
4
|
FieldKind,
|
|
5
|
+
FieldMap,
|
|
5
6
|
FieldNullability,
|
|
6
7
|
FieldRef,
|
|
7
8
|
InputFieldMap,
|
|
@@ -14,7 +15,7 @@ import {
|
|
|
14
15
|
ShapeFromTypeParam,
|
|
15
16
|
TypeParam,
|
|
16
17
|
} from '@pothos/core';
|
|
17
|
-
import PrismaNodeRef from './node-ref';
|
|
18
|
+
import { PrismaNodeRef } from './node-ref';
|
|
18
19
|
import { prismaModelKey, PrismaObjectRef } from './object-ref';
|
|
19
20
|
import { PrismaObjectFieldBuilder as InternalPrismaObjectFieldBuilder } from './prisma-field-builder';
|
|
20
21
|
import {
|
|
@@ -22,6 +23,7 @@ import {
|
|
|
22
23
|
PrismaConnectionFieldOptions,
|
|
23
24
|
PrismaFieldOptions,
|
|
24
25
|
PrismaFieldWithInputOptions,
|
|
26
|
+
prismaModelName,
|
|
25
27
|
PrismaModelTypes,
|
|
26
28
|
PrismaNodeOptions,
|
|
27
29
|
PrismaObjectFieldOptions,
|
|
@@ -116,6 +118,37 @@ declare global {
|
|
|
116
118
|
>,
|
|
117
119
|
) => PrismaObjectRef<Model, ShapeFromSelection<Model, { select: Select; include: Include }>>;
|
|
118
120
|
|
|
121
|
+
prismaObjectField: <
|
|
122
|
+
Type extends PrismaObjectRef<PrismaModelTypes, {}> | keyof Types['PrismaTypes'],
|
|
123
|
+
Model extends PrismaModelTypes = Type extends PrismaObjectRef<infer M, {}>
|
|
124
|
+
? M
|
|
125
|
+
: Types['PrismaTypes'][Type & keyof Types['PrismaTypes']] & PrismaModelTypes,
|
|
126
|
+
Shape extends {} = Type extends PrismaObjectRef<PrismaModelTypes, infer S>
|
|
127
|
+
? S
|
|
128
|
+
: Model['Shape'] & {
|
|
129
|
+
[prismaModelName]?: Type;
|
|
130
|
+
},
|
|
131
|
+
>(
|
|
132
|
+
type: Type,
|
|
133
|
+
fieldName: string,
|
|
134
|
+
field: (t: PrismaObjectFieldBuilder<Types, Model, false, Shape>) => FieldRef,
|
|
135
|
+
) => void;
|
|
136
|
+
|
|
137
|
+
prismaObjectFields: <
|
|
138
|
+
Type extends PrismaObjectRef<PrismaModelTypes, {}> | keyof Types['PrismaTypes'],
|
|
139
|
+
Model extends PrismaModelTypes = Type extends PrismaObjectRef<infer M, {}>
|
|
140
|
+
? M
|
|
141
|
+
: Types['PrismaTypes'][Type & keyof Types['PrismaTypes']] & PrismaModelTypes,
|
|
142
|
+
Shape extends {} = Type extends PrismaObjectRef<PrismaModelTypes, infer S>
|
|
143
|
+
? S
|
|
144
|
+
: Model['Shape'] & {
|
|
145
|
+
[prismaModelName]?: Type;
|
|
146
|
+
},
|
|
147
|
+
>(
|
|
148
|
+
type: Type,
|
|
149
|
+
fields: (t: PrismaObjectFieldBuilder<Types, Model, false, Shape>) => FieldMap,
|
|
150
|
+
) => void;
|
|
151
|
+
|
|
119
152
|
prismaNode: 'relay' extends PluginName
|
|
120
153
|
? <
|
|
121
154
|
Name extends keyof Types['PrismaTypes'],
|
|
@@ -199,6 +232,7 @@ declare global {
|
|
|
199
232
|
Model extends PrismaModelTypes = Type extends PrismaObjectRef<infer T>
|
|
200
233
|
? T
|
|
201
234
|
: PrismaModelTypes & Types['PrismaTypes'][Type & keyof Types['PrismaTypes']],
|
|
235
|
+
Shape = Type extends PrismaObjectRef<PrismaModelTypes, infer S> ? S : Model['Shape'],
|
|
202
236
|
>(
|
|
203
237
|
options: PrismaConnectionFieldOptions<
|
|
204
238
|
Types,
|
|
@@ -213,19 +247,21 @@ declare global {
|
|
|
213
247
|
>,
|
|
214
248
|
...args: NormalizeArgs<
|
|
215
249
|
[
|
|
216
|
-
connectionOptions:
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
Types,
|
|
225
|
-
|
|
226
|
-
false,
|
|
227
|
-
|
|
228
|
-
|
|
250
|
+
connectionOptions:
|
|
251
|
+
| ConnectionObjectOptions<
|
|
252
|
+
Types,
|
|
253
|
+
ObjectRef<Shape>,
|
|
254
|
+
false,
|
|
255
|
+
false,
|
|
256
|
+
ResolveReturnShape
|
|
257
|
+
>
|
|
258
|
+
| ObjectRef<ShapeFromConnection<ConnectionShapeHelper<Types, Shape, false>>>,
|
|
259
|
+
edgeOptions:
|
|
260
|
+
| ConnectionEdgeObjectOptions<Types, ObjectRef<Shape>, false, ResolveReturnShape>
|
|
261
|
+
| ObjectRef<{
|
|
262
|
+
cursor: string;
|
|
263
|
+
node?: Shape | null | undefined;
|
|
264
|
+
}>,
|
|
229
265
|
],
|
|
230
266
|
0
|
|
231
267
|
>
|
package/src/index.ts
CHANGED
|
@@ -13,6 +13,9 @@ import { PrismaModelTypes } from './types';
|
|
|
13
13
|
import { getLoaderMapping, setLoaderMappings } from './util/loader-map';
|
|
14
14
|
import { queryFromInfo, selectionStateFromInfo } from './util/map-query';
|
|
15
15
|
|
|
16
|
+
export { prismaConnectionHelpers } from './connection-helpers';
|
|
17
|
+
export { PrismaNodeRef } from './node-ref';
|
|
18
|
+
export { PrismaObjectRef } from './object-ref';
|
|
16
19
|
export * from './types';
|
|
17
20
|
|
|
18
21
|
const pluginName = 'prisma' as const;
|
package/src/node-ref.ts
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
import { PrismaObjectRef } from './object-ref';
|
|
2
2
|
import type { PrismaModelTypes } from './types';
|
|
3
3
|
|
|
4
|
-
export
|
|
5
|
-
Model,
|
|
6
|
-
T
|
|
7
|
-
> {}
|
|
4
|
+
export class PrismaNodeRef<Model extends PrismaModelTypes, T> extends PrismaObjectRef<Model, T> {}
|
package/src/object-ref.ts
CHANGED
|
@@ -6,6 +6,13 @@ export const prismaModelKey = Symbol.for('Pothos.prismaModelKey');
|
|
|
6
6
|
export class PrismaObjectRef<Model extends PrismaModelTypes, T = {}> extends ObjectRef<T> {
|
|
7
7
|
[prismaModelKey]!: Model;
|
|
8
8
|
[abstractReturnShapeKey]!: WithBrand<T>;
|
|
9
|
+
modelName: string;
|
|
10
|
+
|
|
11
|
+
constructor(name: string, modelName: string) {
|
|
12
|
+
super(name);
|
|
13
|
+
|
|
14
|
+
this.modelName = modelName;
|
|
15
|
+
}
|
|
9
16
|
|
|
10
17
|
addBrand<V extends T | T[]>(
|
|
11
18
|
value: V,
|