@pothos/plugin-prisma 3.9.0 → 3.10.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.
@@ -4,6 +4,7 @@ var _core = _interopRequireWildcard(require("@pothos/core"));
4
4
  var _fieldBuilder = require("./field-builder");
5
5
  var _modelLoader = require("./model-loader");
6
6
  var _nodeRef = _interopRequireDefault(require("./node-ref"));
7
+ var _cursors = require("./util/cursors");
7
8
  var _datamodel = require("./util/datamodel");
8
9
  var _getClient = require("./util/get-client");
9
10
  var _mapQuery = require("./util/map-query");
@@ -53,52 +54,60 @@ function _interopRequireWildcard(obj) {
53
54
  return newObj;
54
55
  }
55
56
  const schemaBuilderProto = _core.default.prototype;
56
- schemaBuilderProto.prismaObject = function prismaObject(type, { fields , findUnique , ...options }) {
57
+ schemaBuilderProto.prismaObject = function prismaObject(type, { fields , findUnique , select , include , ...options }) {
57
58
  const ref = options.variant ? this.objectRef(options.variant) : (0, _datamodel).getRefFromModel(type, this);
58
59
  var _variant, ref1;
59
60
  const name = (ref1 = (_variant = options.variant) !== null && _variant !== void 0 ? _variant : options.name) !== null && ref1 !== void 0 ? ref1 : type;
60
61
  const fieldMap = (0, _relationMap).getRelationMap((0, _getClient).getDMMF(this)).get(type);
62
+ const idSelection = _modelLoader.ModelLoader.getDefaultIDSelection(ref, type, this);
61
63
  ref.name = name;
62
64
  this.objectType(ref, {
63
65
  ...options,
64
66
  extensions: {
65
67
  ...options.extensions,
66
- pothosPrismaInclude: options.include,
68
+ pothosPrismaInclude: include,
67
69
  pothosPrismaModel: type,
68
70
  pothosPrismaFieldMap: fieldMap,
69
- pothosPrismaSelect: options.select,
70
- pothosPrismaLoader: _modelLoader.ModelLoader.forRef(type, findUnique || (()=>{
71
- throw new Error(`Missing findUnique for ${ref.name}`);
72
- }), this)
71
+ pothosPrismaSelect: select && {
72
+ ...idSelection,
73
+ ...select
74
+ },
75
+ pothosPrismaLoader: _modelLoader.ModelLoader.forRef(ref, type, findUnique, this)
73
76
  },
74
77
  name,
75
78
  fields: fields ? ()=>fields(new _fieldBuilder.PrismaObjectFieldBuilder(name, this, type, (0, _relationMap).getRelationMap((0, _getClient).getDMMF(this)).get(type))) : undefined
76
79
  });
77
80
  return ref;
78
81
  };
79
- schemaBuilderProto.prismaNode = function prismaNode(type, { findUnique , name , variant , ...options }) {
82
+ schemaBuilderProto.prismaNode = function prismaNode(type, { id: { field , resolve: rawResolve , ...idOptions } , findUnique: rawFindUnique , name , variant , ...options }) {
80
83
  var _obj, ref;
84
+ const fieldName = field;
81
85
  const interfaceRef = (ref = (_obj = this).nodeInterfaceRef) === null || ref === void 0 ? void 0 : ref.call(_obj);
82
- if (!interfaceRef) {
83
- throw new TypeError('builder.prismaNode requires @pothos/plugin-relay to be installed');
84
- }
86
+ const resolve = rawResolve !== null && rawResolve !== void 0 ? rawResolve : (0, _cursors).getDefaultIDSerializer(type, fieldName, this);
87
+ const idParser = fieldName ? (0, _cursors).getDefaultIDParser(type, fieldName, this) : undefined;
85
88
  var ref2;
86
89
  const typeName = (ref2 = variant !== null && variant !== void 0 ? variant : name) !== null && ref2 !== void 0 ? ref2 : type;
87
90
  const nodeRef = new _nodeRef.default(typeName);
91
+ const findUnique = rawFindUnique ? (parent, context)=>rawFindUnique(resolve(parent, context), context) : _modelLoader.ModelLoader.getFindUniqueForField(nodeRef, type, fieldName, this);
92
+ if (!interfaceRef) {
93
+ throw new TypeError('builder.prismaNode requires @pothos/plugin-relay to be installed');
94
+ }
88
95
  const extendedOptions = {
89
96
  ...options,
90
97
  variant,
91
98
  interfaces: [
92
99
  interfaceRef
93
100
  ],
94
- findUnique: (parent, context)=>findUnique(options.id.resolve(parent, context), context),
101
+ findUnique,
95
102
  loadWithoutCache: async (id, context, info)=>{
96
103
  const query = (0, _mapQuery).queryFromInfo(context, info, typeName);
97
104
  const delegate = (0, _datamodel).getDelegateFromModel((0, _getClient).getClient(this, context), type);
98
105
  const record = await delegate.findUnique({
99
106
  ...query,
100
107
  rejectOnNotFound: true,
101
- where: findUnique(id, context)
108
+ where: rawFindUnique ? rawFindUnique(id, context) : {
109
+ [fieldName]: idParser(id)
110
+ }
102
111
  });
103
112
  (0, _core).brandWithType(record, typeName);
104
113
  return record;
@@ -110,12 +119,12 @@ schemaBuilderProto.prismaNode = function prismaNode(type, { findUnique , name ,
110
119
  }
111
120
  this.configStore.onTypeConfig(ref3, (nodeConfig)=>{
112
121
  this.objectField(ref3, 'id', (t)=>t.globalID({
113
- ...options.id,
122
+ ...idOptions,
114
123
  nullable: false,
115
124
  args: {},
116
125
  resolve: async (parent, args, context, info)=>({
117
126
  type: nodeConfig.name,
118
- id: await options.id.resolve(parent, context)
127
+ id: await resolve(parent, context)
119
128
  })
120
129
  }));
121
130
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/schema-builder.ts"],"names":["schemaBuilderProto","SchemaBuilder","prototype","prismaObject","type","fields","findUnique","options","ref","variant","objectRef","getRefFromModel","name","fieldMap","getRelationMap","getDMMF","get","objectType","extensions","pothosPrismaInclude","include","pothosPrismaModel","pothosPrismaFieldMap","pothosPrismaSelect","select","pothosPrismaLoader","ModelLoader","forRef","Error","PrismaObjectFieldBuilder","undefined","prismaNode","interfaceRef","nodeInterfaceRef","TypeError","typeName","nodeRef","PrismaNodeRef","extendedOptions","interfaces","parent","context","id","resolve","loadWithoutCache","info","query","queryFromInfo","delegate","getDelegateFromModel","getClient","record","rejectOnNotFound","where","brandWithType","configStore","addInterfaces","onTypeConfig","nodeConfig","objectField","t","globalID","nullable","args","associateRefWithName"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/schema-builder.ts"],"names":["schemaBuilderProto","SchemaBuilder","prototype","prismaObject","type","fields","findUnique","select","include","options","ref","variant","objectRef","getRefFromModel","name","fieldMap","getRelationMap","getDMMF","get","idSelection","ModelLoader","getDefaultIDSelection","objectType","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","rejectOnNotFound","where","brandWithType","configStore","addInterfaces","onTypeConfig","nodeConfig","objectField","t","globalID","nullable","args","associateRefWithName"],"mappings":"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"}
@@ -5,10 +5,15 @@ Object.defineProperty(exports, "__esModule", {
5
5
  exports.formatCursorChunk = formatCursorChunk;
6
6
  exports.formatCursor = formatCursor;
7
7
  exports.parseRawCursor = parseRawCursor;
8
+ exports.parseID = parseID;
9
+ exports.getDefaultIDSerializer = getDefaultIDSerializer;
10
+ exports.getDefaultIDParser = getDefaultIDParser;
11
+ exports.serializeID = serializeID;
8
12
  exports.parseCompositeCursor = parseCompositeCursor;
9
13
  exports.prismaCursorConnectionQuery = prismaCursorConnectionQuery;
10
14
  exports.wrapConnectionResult = wrapConnectionResult;
11
15
  exports.resolvePrismaCursorConnection = resolvePrismaCursorConnection;
16
+ var _datamodel = require("./datamodel");
12
17
  const DEFAULT_MAX_SIZE = 100;
13
18
  const DEFAULT_SIZE = 20;
14
19
  function formatCursorChunk(value) {
@@ -55,6 +60,97 @@ function parseRawCursor(cursor) {
55
60
  throw new Error(`Invalid cursor: ${cursor}`);
56
61
  }
57
62
  }
63
+ function parseID(id, dataType) {
64
+ if (!id) {
65
+ return id;
66
+ }
67
+ switch(dataType){
68
+ case 'String':
69
+ return id;
70
+ case 'Int':
71
+ return Number.parseInt(id, 10);
72
+ case 'BigInt':
73
+ // eslint-disable-next-line node/no-unsupported-features/es-builtins
74
+ return BigInt(id);
75
+ case 'Boolean':
76
+ return id !== 'false';
77
+ case 'Float':
78
+ case 'Decimal':
79
+ return Number.parseFloat(id);
80
+ case 'DateTime':
81
+ return new Date(id);
82
+ case 'Json':
83
+ return JSON.parse(id);
84
+ case 'Byte':
85
+ return Buffer.from(id, 'base64');
86
+ default:
87
+ return id;
88
+ }
89
+ }
90
+ function getDefaultIDSerializer(modelName, fieldName, builder) {
91
+ var ref, ref1;
92
+ const model = (0, _datamodel).getModel(modelName, builder);
93
+ const field = model.fields.find((f)=>f.name === fieldName);
94
+ if (field) {
95
+ return (parent)=>serializeID(parent[fieldName], field.type);
96
+ }
97
+ var ref2;
98
+ if (((ref2 = (ref = model.primaryKey) === null || ref === void 0 ? void 0 : ref.name) !== null && ref2 !== void 0 ? ref2 : (ref1 = model.primaryKey) === null || ref1 === void 0 ? void 0 : ref1.fields.join('_')) === fieldName) {
99
+ const fields = model.primaryKey.fields.map((n)=>model.fields.find((f)=>f.name === n));
100
+ return (parent)=>JSON.stringify(fields.map((f)=>serializeID(parent[f.name], f.kind)));
101
+ }
102
+ var _name;
103
+ const index = model.uniqueIndexes.find((idx)=>((_name = idx.name) !== null && _name !== void 0 ? _name : idx.fields.join('_')) === fieldName);
104
+ if (index) {
105
+ const fields = index.fields.map((n)=>model.fields.find((f)=>f.name === n));
106
+ return (parent)=>JSON.stringify(fields.map((f)=>serializeID(parent[f.name], f.kind)));
107
+ }
108
+ throw new Error(`Unable to find ${fieldName} for model ${modelName}`);
109
+ }
110
+ function getDefaultIDParser(modelName, fieldName, builder) {
111
+ var ref, ref3;
112
+ if (!fieldName) {
113
+ throw new Error('Missing field name');
114
+ }
115
+ const model = (0, _datamodel).getModel(modelName, builder);
116
+ const field = model.fields.find((f)=>f.name === fieldName);
117
+ if (field) {
118
+ return (id)=>parseID(id, field.type);
119
+ }
120
+ var _name;
121
+ const index = model.uniqueIndexes.find((idx)=>((_name = idx.name) !== null && _name !== void 0 ? _name : idx.fields.join('_')) === fieldName);
122
+ let fields;
123
+ var ref4;
124
+ if (((ref4 = (ref = model.primaryKey) === null || ref === void 0 ? void 0 : ref.name) !== null && ref4 !== void 0 ? ref4 : (ref3 = model.primaryKey) === null || ref3 === void 0 ? void 0 : ref3.fields.join('_')) === fieldName) {
125
+ fields = model.primaryKey.fields.map((n)=>model.fields.find((f)=>f.name === n));
126
+ } else if (index) {
127
+ fields = index.fields.map((n)=>model.fields.find((f)=>f.name === n));
128
+ }
129
+ if (!fields) {
130
+ throw new Error(`Unable to find ${fieldName} for model ${modelName}`);
131
+ }
132
+ return (id)=>{
133
+ const parts = JSON.parse(id);
134
+ if (!Array.isArray(parts)) {
135
+ throw new TypeError(`Invalid id received for ${fieldName} of ${modelName}`);
136
+ }
137
+ const result = {};
138
+ for(let i = 0; i < fields.length; i += 1){
139
+ result[fields[i].name] = parseID(parts[i], fields[i].type);
140
+ }
141
+ return result;
142
+ };
143
+ }
144
+ function serializeID(id, dataType) {
145
+ switch(dataType){
146
+ case 'Json':
147
+ return JSON.stringify(id);
148
+ case 'Byte':
149
+ return id.toString('base64');
150
+ default:
151
+ return String(id);
152
+ }
153
+ }
58
154
  function parseCompositeCursor(fields) {
59
155
  return (cursor)=>{
60
156
  const parsed = parseRawCursor(cursor);
@@ -103,7 +199,7 @@ function prismaCursorConnectionQuery({ args: { before , after , first , last }
103
199
  };
104
200
  }
105
201
  function wrapConnectionResult(results, args, take, cursor, totalCount) {
106
- var ref, ref1;
202
+ var ref, ref5;
107
203
  const gotFullResults = results.length === Math.abs(take);
108
204
  const hasNextPage = args.before ? true : gotFullResults;
109
205
  const hasPreviousPage = args.after ? true : args.before ? gotFullResults : false;
@@ -117,7 +213,7 @@ function wrapConnectionResult(results, args, take, cursor, totalCount) {
117
213
  edges,
118
214
  pageInfo: {
119
215
  startCursor: (ref = edges[0]) === null || ref === void 0 ? void 0 : ref.cursor,
120
- endCursor: (ref1 = edges[edges.length - 1]) === null || ref1 === void 0 ? void 0 : ref1.cursor,
216
+ endCursor: (ref5 = edges[edges.length - 1]) === null || ref5 === void 0 ? void 0 : ref5.cursor,
121
217
  hasPreviousPage,
122
218
  hasNextPage
123
219
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/cursors.ts"],"names":["formatCursorChunk","formatCursor","parseRawCursor","parseCompositeCursor","prismaCursorConnectionQuery","wrapConnectionResult","resolvePrismaCursorConnection","DEFAULT_MAX_SIZE","DEFAULT_SIZE","value","Date","String","Number","TypeError","fields","Buffer","from","toString","JSON","stringify","map","name","cursor","decoded","type","match","parseInt","parse","Error","parsed","Array","isArray","record","forEach","field","i","args","before","after","first","last","maxSize","defaultSize","parseCursor","take","Math","min","skip","results","totalCount","edges","gotFullResults","length","abs","hasNextPage","hasPreviousPage","nodes","slice","index","node","pageInfo","startCursor","endCursor","options","resolve","query"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/util/cursors.ts"],"names":["formatCursorChunk","formatCursor","parseRawCursor","parseID","getDefaultIDSerializer","getDefaultIDParser","serializeID","parseCompositeCursor","prismaCursorConnectionQuery","wrapConnectionResult","resolvePrismaCursorConnection","DEFAULT_MAX_SIZE","DEFAULT_SIZE","value","Date","String","Number","TypeError","fields","Buffer","from","toString","JSON","stringify","map","name","cursor","decoded","type","match","parseInt","parse","Error","id","dataType","BigInt","parseFloat","modelName","fieldName","builder","model","getModel","field","find","f","parent","primaryKey","join","n","kind","idx","index","uniqueIndexes","parts","Array","isArray","result","i","length","parsed","record","forEach","args","before","after","first","last","maxSize","defaultSize","parseCursor","take","Math","min","skip","results","totalCount","edges","gotFullResults","abs","hasNextPage","hasPreviousPage","nodes","slice","node","pageInfo","startCursor","endCursor","options","resolve","query"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/get-client.ts"],"names":["getClient","getDMMF","prismaClientCache","createContextCache","builder","context","options","prisma","client","dmmf","_dmmf"],"mappings":"AACA;;;;QAmCgBA,SAAS,GAATA,SAAS;QAWTC,OAAO,GAAPA,OAAO;AA9CyB,IAAA,KAAc,WAAd,cAAc,CAAA;AA0B9D,MAAMC,iBAAiB,GAAGC,CAAAA,GAAAA,KAAkB,AAO3C,CAAA,mBAP2C,CAC1C,CAA4BC,OAA+C,GACzED,CAAAA,GAAAA,KAAkB,AAIjB,CAAA,mBAJiB,CAAC,CAACE,OAAe,GACjC,OAAOD,OAAO,CAACE,OAAO,CAACC,MAAM,CAACC,MAAM,KAAK,UAAU,GAC/CJ,OAAO,CAACE,OAAO,CAACC,MAAM,CAACC,MAAM,CAACH,OAAO,CAAC,GACtCD,OAAO,CAACE,OAAO,CAACC,MAAM,CAACC,MAAM,CAClC,CACJ,AAAC;AAEK,SAASR,SAAS,CACvBI,OAA+C,EAC/CC,OAAyB,EACX;IACd,IAAI,OAAOD,OAAO,CAACE,OAAO,CAACC,MAAM,CAACC,MAAM,KAAK,UAAU,EAAE;QACvD,OAAON,iBAAiB,CAACE,OAAO,CAAC,CAACC,OAAO,CAAC,CAAC;KAC5C;IAED,OAAOD,OAAO,CAACE,OAAO,CAACC,MAAM,CAACC,MAAM,CAAC;CACtC;AAEM,SAASP,OAAO,CACrBG,OAA+C,EACzC;IACN,OAAO,MAAM,IAAIA,OAAO,CAACE,OAAO,CAACC,MAAM,GAClCH,OAAO,CAACE,OAAO,CAACC,MAAM,CAACE,IAAI,GAC5B,AACEL,OAAO,CAACE,OAAO,CAACC,MAAM,CAACC,MAAM,CAG7BE,KAAK,CAAC;CACb"}
1
+ {"version":3,"sources":["../../src/util/get-client.ts"],"names":["getClient","getDMMF","prismaClientCache","createContextCache","builder","context","options","prisma","client","dmmf","_dmmf"],"mappings":"AACA;;;;QAoCgBA,SAAS,GAATA,SAAS;QAWTC,OAAO,GAAPA,OAAO;AA/CyB,IAAA,KAAc,WAAd,cAAc,CAAA;AA2B9D,MAAMC,iBAAiB,GAAGC,CAAAA,GAAAA,KAAkB,AAO3C,CAAA,mBAP2C,CAC1C,CAA4BC,OAA+C,GACzED,CAAAA,GAAAA,KAAkB,AAIjB,CAAA,mBAJiB,CAAC,CAACE,OAAe,GACjC,OAAOD,OAAO,CAACE,OAAO,CAACC,MAAM,CAACC,MAAM,KAAK,UAAU,GAC/CJ,OAAO,CAACE,OAAO,CAACC,MAAM,CAACC,MAAM,CAACH,OAAO,CAAC,GACtCD,OAAO,CAACE,OAAO,CAACC,MAAM,CAACC,MAAM,CAClC,CACJ,AAAC;AAEK,SAASR,SAAS,CACvBI,OAA+C,EAC/CC,OAAyB,EACX;IACd,IAAI,OAAOD,OAAO,CAACE,OAAO,CAACC,MAAM,CAACC,MAAM,KAAK,UAAU,EAAE;QACvD,OAAON,iBAAiB,CAACE,OAAO,CAAC,CAACC,OAAO,CAAC,CAAC;KAC5C;IAED,OAAOD,OAAO,CAACE,OAAO,CAACC,MAAM,CAACC,MAAM,CAAC;CACtC;AAEM,SAASP,OAAO,CACrBG,OAA+C,EACzC;IACN,OAAO,MAAM,IAAIA,OAAO,CAACE,OAAO,CAACC,MAAM,GAClCH,OAAO,CAACE,OAAO,CAACC,MAAM,CAACE,IAAI,GAC5B,AACEL,OAAO,CAACE,OAAO,CAACC,MAAM,CAACC,MAAM,CAG7BE,KAAK,CAAC;CACb"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pothos/plugin-prisma",
3
- "version": "3.9.0",
3
+ "version": "3.10.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",
@@ -49,7 +49,7 @@
49
49
  "typescript": ">=4.7.2"
50
50
  },
51
51
  "devDependencies": {
52
- "@pothos/core": "3.11.1",
52
+ "@pothos/core": "3.12.0",
53
53
  "@pothos/plugin-errors": "3.4.2",
54
54
  "@pothos/plugin-relay": "3.12.1",
55
55
  "@pothos/plugin-scope-auth": "3.9.1",
@@ -106,6 +106,7 @@ declare global {
106
106
  Interfaces extends InterfaceParam<Types>[] = [],
107
107
  Include = unknown,
108
108
  Select = unknown,
109
+ UniqueField = unknown,
109
110
  >(
110
111
  name: Name,
111
112
  options: PrismaNodeOptions<
@@ -117,7 +118,8 @@ declare global {
117
118
  ShapeFromSelection<
118
119
  PrismaModelTypes & Types['PrismaTypes'][Name],
119
120
  { select: Select; include: Include }
120
- >
121
+ >,
122
+ UniqueField
121
123
  >,
122
124
  ) => PrismaNodeRef<
123
125
  Types['PrismaTypes'][Name] & PrismaModelTypes,
@@ -1,5 +1,5 @@
1
- import { createContextCache, SchemaTypes } from '@pothos/core';
2
- import { getDelegateFromModel } from './util/datamodel';
1
+ import { createContextCache, ObjectRef, SchemaTypes } from '@pothos/core';
2
+ import { getDelegateFromModel, getModel } from './util/datamodel';
3
3
  import { getClient } from './util/get-client';
4
4
  import {
5
5
  mergeSelection,
@@ -32,15 +32,156 @@ export class ModelLoader {
32
32
  }
33
33
 
34
34
  static forRef<Types extends SchemaTypes>(
35
+ ref: ObjectRef<unknown>,
35
36
  modelName: string,
36
37
  findUnique: (args: unknown, ctx: {}) => unknown,
37
38
  builder: PothosSchemaTypes.SchemaBuilder<Types>,
38
39
  ) {
39
40
  return createContextCache(
40
- (model) => new ModelLoader(model, builder as never, modelName, findUnique),
41
+ (model) =>
42
+ new ModelLoader(
43
+ model,
44
+ builder as never,
45
+ modelName,
46
+ findUnique === null
47
+ ? () => {
48
+ throw new Error(`Missing findUnique for ${ref.name}`);
49
+ }
50
+ : findUnique ?? this.getDefaultFindUnique(ref, modelName, builder),
51
+ ),
41
52
  );
42
53
  }
43
54
 
55
+ static getFindUnique(
56
+ findBy:
57
+ | {
58
+ name: string | null;
59
+ fields: string[];
60
+ }
61
+ | string,
62
+ ): (model: Record<string, unknown>) => {} {
63
+ if (typeof findBy === 'string') {
64
+ return (parent) => ({ [findBy]: parent[findBy] });
65
+ }
66
+
67
+ const { fields, name: primaryKeyName } = findBy;
68
+
69
+ return (parent) => {
70
+ const primaryKey: Record<string, unknown> = {};
71
+
72
+ for (const key of fields) {
73
+ primaryKey[key] = parent[key];
74
+ }
75
+
76
+ return { [primaryKeyName ?? fields.join('_')]: primaryKey };
77
+ };
78
+ }
79
+
80
+ static getDefaultFindBy<Types extends SchemaTypes>(
81
+ ref: ObjectRef<unknown>,
82
+ modelName: string,
83
+ builder: PothosSchemaTypes.SchemaBuilder<Types>,
84
+ ) {
85
+ const model = getModel(modelName, builder);
86
+ const idField = model.fields.find((field) => field.isId);
87
+ const uniqueField = model.fields.find((field) => field.isRequired && field.isUnique);
88
+ const uniqueIndex = model.uniqueIndexes.find((idx) =>
89
+ idx.fields.every((field) => model.fields.find((f) => f.name === field)?.isRequired),
90
+ );
91
+
92
+ let findBy:
93
+ | {
94
+ name: string | null;
95
+ fields: string[];
96
+ }
97
+ | string
98
+ | undefined;
99
+
100
+ if (model.primaryKey) {
101
+ findBy = model.primaryKey;
102
+ } else if (idField) {
103
+ findBy = idField.name;
104
+ } else if (uniqueField) {
105
+ findBy = uniqueField.name;
106
+ } else if (uniqueIndex) {
107
+ findBy = uniqueIndex;
108
+ }
109
+
110
+ if (!findBy) {
111
+ throw new Error(`Missing findUnique for ${ref.name}`);
112
+ }
113
+
114
+ return findBy;
115
+ }
116
+
117
+ static getDefaultFindUnique<Types extends SchemaTypes>(
118
+ ref: ObjectRef<unknown>,
119
+ modelName: string,
120
+ builder: PothosSchemaTypes.SchemaBuilder<Types>,
121
+ ): (model: Record<string, unknown>) => {} {
122
+ const findBy = this.getDefaultFindBy(ref, modelName, builder);
123
+
124
+ return this.getFindUnique(findBy);
125
+ }
126
+
127
+ static getDefaultIDSelection<Types extends SchemaTypes>(
128
+ ref: ObjectRef<unknown>,
129
+ modelName: string,
130
+ builder: PothosSchemaTypes.SchemaBuilder<Types>,
131
+ ): Record<string, boolean> {
132
+ const findBy = this.getDefaultFindBy(ref, modelName, builder);
133
+
134
+ if (typeof findBy === 'string') {
135
+ return { [findBy]: true };
136
+ }
137
+
138
+ const result: Record<string, boolean> = {};
139
+
140
+ for (const field of findBy.fields) {
141
+ result[field] = true;
142
+ }
143
+
144
+ return result;
145
+ }
146
+
147
+ static getFindUniqueForField<Types extends SchemaTypes>(
148
+ ref: ObjectRef<unknown>,
149
+ modelName: string,
150
+ fieldName: string,
151
+ builder: PothosSchemaTypes.SchemaBuilder<Types>,
152
+ ): (model: Record<string, unknown>) => {} {
153
+ const model = getModel(modelName, builder);
154
+
155
+ const uniqueIndex = model.uniqueIndexes.find(
156
+ (idx) => (idx.name ?? idx.fields.join('_')) === fieldName,
157
+ );
158
+
159
+ let findBy:
160
+ | {
161
+ name: string | null;
162
+ fields: string[];
163
+ }
164
+ | string
165
+ | undefined;
166
+
167
+ if (model.fields.some((field) => field.name === fieldName)) {
168
+ findBy = fieldName;
169
+ } else if (
170
+ model.primaryKey &&
171
+ (model.primaryKey?.name ?? model.primaryKey?.fields.join('_')) === fieldName
172
+ ) {
173
+ findBy = model.primaryKey;
174
+ } else if (uniqueIndex) {
175
+ findBy = uniqueIndex;
176
+ }
177
+
178
+ if (!findBy) {
179
+ throw new Error(`Unable to find field or index for ${fieldName} of ${ref.name}`);
180
+ }
181
+
182
+ return this.getFindUnique(findBy);
183
+ }
184
+
44
185
  async loadSelection(selection: SelectionState, context: object) {
45
186
  const query = selectionToQuery(selection);
46
187
 
@@ -11,6 +11,7 @@ import { PrismaObjectFieldBuilder } from './field-builder';
11
11
  import { ModelLoader } from './model-loader';
12
12
  import PrismaNodeRef from './node-ref';
13
13
  import { PrismaModelTypes, PrismaNodeOptions } from './types';
14
+ import { getDefaultIDParser, getDefaultIDSerializer } from './util/cursors';
14
15
  import { getDelegateFromModel, getRefFromModel } from './util/datamodel';
15
16
  import { getClient, getDMMF } from './util/get-client';
16
17
  import { queryFromInfo } from './util/map-query';
@@ -18,10 +19,14 @@ import { getRelationMap } from './util/relation-map';
18
19
 
19
20
  const schemaBuilderProto = SchemaBuilder.prototype as PothosSchemaTypes.SchemaBuilder<SchemaTypes>;
20
21
 
21
- schemaBuilderProto.prismaObject = function prismaObject(type, { fields, findUnique, ...options }) {
22
+ schemaBuilderProto.prismaObject = function prismaObject(
23
+ type,
24
+ { fields, findUnique, select, include, ...options },
25
+ ) {
22
26
  const ref = options.variant ? this.objectRef(options.variant) : getRefFromModel(type, this);
23
27
  const name = options.variant ?? options.name ?? type;
24
28
  const fieldMap = getRelationMap(getDMMF(this)).get(type)!;
29
+ const idSelection = ModelLoader.getDefaultIDSelection(ref, type, this);
25
30
 
26
31
  ref.name = name;
27
32
 
@@ -29,18 +34,11 @@ schemaBuilderProto.prismaObject = function prismaObject(type, { fields, findUniq
29
34
  ...(options as {}),
30
35
  extensions: {
31
36
  ...options.extensions,
32
- pothosPrismaInclude: options.include,
37
+ pothosPrismaInclude: include,
33
38
  pothosPrismaModel: type,
34
39
  pothosPrismaFieldMap: fieldMap,
35
- pothosPrismaSelect: options.select,
36
- pothosPrismaLoader: ModelLoader.forRef(
37
- type,
38
- (findUnique as never) ||
39
- (() => {
40
- throw new Error(`Missing findUnique for ${ref.name}`);
41
- }),
42
- this,
43
- ),
40
+ pothosPrismaSelect: select && { ...idSelection, ...(select as {}) },
41
+ pothosPrismaLoader: ModelLoader.forRef(ref, type, findUnique as never, this),
44
42
  },
45
43
  name,
46
44
  fields: fields
@@ -65,26 +63,33 @@ schemaBuilderProto.prismaNode = function prismaNode(
65
63
  },
66
64
  type: keyof SchemaTypes['PrismaTypes'],
67
65
  {
68
- findUnique,
66
+ id: { field, resolve: rawResolve, ...idOptions },
67
+ findUnique: rawFindUnique,
69
68
  name,
70
69
  variant,
71
70
  ...options
72
- }: PrismaNodeOptions<SchemaTypes, PrismaModelTypes, [], never, {}, {}>,
71
+ }: PrismaNodeOptions<SchemaTypes, PrismaModelTypes, [], never, {}, {}, undefined>,
73
72
  ) {
73
+ const fieldName = field as unknown as string;
74
74
  const interfaceRef = this.nodeInterfaceRef?.();
75
+ const resolve = rawResolve ?? getDefaultIDSerializer(type, fieldName, this);
76
+ const idParser = fieldName ? getDefaultIDParser(type, fieldName, this) : undefined;
77
+ const typeName = variant ?? name ?? type;
78
+ const nodeRef = new PrismaNodeRef(typeName);
79
+ const findUnique = rawFindUnique
80
+ ? (parent: unknown, context: {}) =>
81
+ rawFindUnique(resolve(parent as never, context) as string, context)
82
+ : ModelLoader.getFindUniqueForField(nodeRef, type, fieldName, this);
75
83
 
76
84
  if (!interfaceRef) {
77
85
  throw new TypeError('builder.prismaNode requires @pothos/plugin-relay to be installed');
78
86
  }
79
87
 
80
- const typeName = variant ?? name ?? type;
81
- const nodeRef = new PrismaNodeRef(typeName);
82
88
  const extendedOptions = {
83
89
  ...options,
84
90
  variant,
85
91
  interfaces: [interfaceRef],
86
- findUnique: (parent: unknown, context: {}) =>
87
- findUnique(options.id.resolve(parent as never, context) as string, context),
92
+ findUnique,
88
93
  loadWithoutCache: async (
89
94
  id: string,
90
95
  context: SchemaTypes['Context'],
@@ -95,7 +100,7 @@ schemaBuilderProto.prismaNode = function prismaNode(
95
100
  const record = await delegate.findUnique({
96
101
  ...query,
97
102
  rejectOnNotFound: true,
98
- where: findUnique(id, context),
103
+ where: rawFindUnique ? rawFindUnique(id, context) : { [fieldName]: idParser!(id) },
99
104
  } as never);
100
105
 
101
106
  brandWithType(record, typeName as OutputType<SchemaTypes>);
@@ -117,7 +122,7 @@ schemaBuilderProto.prismaNode = function prismaNode(
117
122
  globalID: (options: Record<string, unknown>) => FieldRef<unknown>;
118
123
  }
119
124
  ).globalID({
120
- ...options.id,
125
+ ...idOptions,
121
126
  nullable: false,
122
127
  args: {},
123
128
  resolve: async (
@@ -127,7 +132,7 @@ schemaBuilderProto.prismaNode = function prismaNode(
127
132
  info: GraphQLResolveInfo,
128
133
  ) => ({
129
134
  type: nodeConfig.name,
130
- id: await options.id.resolve(parent, context),
135
+ id: await resolve(parent, context),
131
136
  }),
132
137
  }),
133
138
  );