@pothos/plugin-prisma 0.17.1 → 0.19.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.
Files changed (168) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +403 -308
  3. package/esm/field-builder.js +12 -14
  4. package/esm/field-builder.js.map +1 -1
  5. package/esm/generator.js +4 -0
  6. package/esm/generator.js.map +1 -1
  7. package/esm/global-types.d.ts +23 -5
  8. package/esm/global-types.d.ts.map +1 -1
  9. package/esm/index.d.ts +4 -1
  10. package/esm/index.d.ts.map +1 -1
  11. package/esm/index.js +46 -1
  12. package/esm/index.js.map +1 -1
  13. package/esm/model-loader.d.ts +5 -6
  14. package/esm/model-loader.d.ts.map +1 -1
  15. package/esm/model-loader.js +12 -69
  16. package/esm/model-loader.js.map +1 -1
  17. package/esm/prisma-field-builder.d.ts +25 -6
  18. package/esm/prisma-field-builder.d.ts.map +1 -1
  19. package/esm/prisma-field-builder.js +86 -117
  20. package/esm/prisma-field-builder.js.map +1 -1
  21. package/esm/schema-builder.js +15 -4
  22. package/esm/schema-builder.js.map +1 -1
  23. package/esm/types.d.ts +73 -77
  24. package/esm/types.d.ts.map +1 -1
  25. package/esm/types.js +1 -0
  26. package/esm/types.js.map +1 -1
  27. package/esm/{cursors.d.ts → util/cursors.d.ts} +10 -8
  28. package/esm/util/cursors.d.ts.map +1 -0
  29. package/esm/{cursors.js → util/cursors.js} +34 -13
  30. package/esm/util/cursors.js.map +1 -0
  31. package/{lib/refs.d.ts → esm/util/datamodel.d.ts} +9 -8
  32. package/esm/util/datamodel.d.ts.map +1 -0
  33. package/esm/{refs.js → util/datamodel.js} +27 -30
  34. package/esm/util/datamodel.js.map +1 -0
  35. package/esm/util/deep-equal.d.ts +2 -0
  36. package/esm/util/deep-equal.d.ts.map +1 -0
  37. package/esm/util/deep-equal.js +39 -0
  38. package/esm/util/deep-equal.js.map +1 -0
  39. package/esm/util/loader-map.d.ts +6 -0
  40. package/esm/util/loader-map.d.ts.map +1 -0
  41. package/esm/{loader-map.js → util/loader-map.js} +10 -12
  42. package/esm/util/loader-map.js.map +1 -0
  43. package/esm/util/map-query.d.ts +6 -0
  44. package/esm/util/map-query.d.ts.map +1 -0
  45. package/esm/util/map-query.js +169 -0
  46. package/esm/util/map-query.js.map +1 -0
  47. package/esm/util/relation-map.d.ts +9 -0
  48. package/esm/util/relation-map.d.ts.map +1 -0
  49. package/esm/util/relation-map.js +20 -0
  50. package/esm/util/relation-map.js.map +1 -0
  51. package/esm/util/selections.d.ts +20 -0
  52. package/esm/util/selections.d.ts.map +1 -0
  53. package/esm/util/selections.js +139 -0
  54. package/esm/util/selections.js.map +1 -0
  55. package/lib/field-builder.js +16 -18
  56. package/lib/field-builder.js.map +1 -1
  57. package/lib/generator.js +4 -0
  58. package/lib/generator.js.map +1 -1
  59. package/lib/global-types.d.ts +23 -5
  60. package/lib/global-types.d.ts.map +1 -1
  61. package/lib/index.d.ts +4 -1
  62. package/lib/index.d.ts.map +1 -1
  63. package/lib/index.js +45 -0
  64. package/lib/index.js.map +1 -1
  65. package/lib/model-loader.d.ts +5 -6
  66. package/lib/model-loader.d.ts.map +1 -1
  67. package/lib/model-loader.js +13 -70
  68. package/lib/model-loader.js.map +1 -1
  69. package/lib/prisma-field-builder.d.ts +25 -6
  70. package/lib/prisma-field-builder.d.ts.map +1 -1
  71. package/lib/prisma-field-builder.js +90 -121
  72. package/lib/prisma-field-builder.js.map +1 -1
  73. package/lib/schema-builder.js +18 -7
  74. package/lib/schema-builder.js.map +1 -1
  75. package/lib/types.d.ts +73 -77
  76. package/lib/types.d.ts.map +1 -1
  77. package/lib/types.js +2 -0
  78. package/lib/types.js.map +1 -1
  79. package/lib/{cursors.d.ts → util/cursors.d.ts} +10 -8
  80. package/lib/util/cursors.d.ts.map +1 -0
  81. package/lib/{cursors.js → util/cursors.js} +39 -14
  82. package/lib/util/cursors.js.map +1 -0
  83. package/{esm/refs.d.ts → lib/util/datamodel.d.ts} +9 -8
  84. package/lib/util/datamodel.d.ts.map +1 -0
  85. package/lib/{refs.js → util/datamodel.js} +32 -35
  86. package/lib/util/datamodel.js.map +1 -0
  87. package/lib/util/deep-equal.d.ts +2 -0
  88. package/lib/util/deep-equal.d.ts.map +1 -0
  89. package/lib/util/deep-equal.js +43 -0
  90. package/lib/util/deep-equal.js.map +1 -0
  91. package/lib/util/loader-map.d.ts +6 -0
  92. package/lib/util/loader-map.d.ts.map +1 -0
  93. package/lib/{loader-map.js → util/loader-map.js} +10 -12
  94. package/lib/util/loader-map.js.map +1 -0
  95. package/lib/util/map-query.d.ts +6 -0
  96. package/lib/util/map-query.d.ts.map +1 -0
  97. package/lib/util/map-query.js +175 -0
  98. package/lib/util/map-query.js.map +1 -0
  99. package/lib/util/relation-map.d.ts +9 -0
  100. package/lib/util/relation-map.d.ts.map +1 -0
  101. package/lib/util/relation-map.js +24 -0
  102. package/lib/util/relation-map.js.map +1 -0
  103. package/lib/util/selections.d.ts +20 -0
  104. package/lib/util/selections.d.ts.map +1 -0
  105. package/lib/util/selections.js +148 -0
  106. package/lib/util/selections.js.map +1 -0
  107. package/package.json +7 -7
  108. package/src/field-builder.ts +12 -12
  109. package/src/generator.ts +18 -0
  110. package/src/global-types.ts +59 -12
  111. package/src/index.ts +75 -1
  112. package/src/model-loader.ts +19 -92
  113. package/src/prisma-field-builder.ts +199 -147
  114. package/src/schema-builder.ts +29 -7
  115. package/src/types.ts +138 -102
  116. package/src/{cursors.ts → util/cursors.ts} +45 -20
  117. package/src/{refs.ts → util/datamodel.ts} +36 -40
  118. package/src/util/deep-equal.ts +51 -0
  119. package/src/{loader-map.ts → util/loader-map.ts} +13 -13
  120. package/src/util/map-query.ts +327 -0
  121. package/src/util/relation-map.ts +36 -0
  122. package/src/util/selections.ts +192 -0
  123. package/.turbo/turbo-build.log +0 -17
  124. package/.turbo/turbo-test.log +0 -18
  125. package/.turbo/turbo-type.log +0 -5
  126. package/babel.config.js +0 -3
  127. package/esm/cursors.d.ts.map +0 -1
  128. package/esm/cursors.js.map +0 -1
  129. package/esm/loader-map.d.ts +0 -6
  130. package/esm/loader-map.d.ts.map +0 -1
  131. package/esm/loader-map.js.map +0 -1
  132. package/esm/refs.d.ts.map +0 -1
  133. package/esm/refs.js.map +0 -1
  134. package/esm/util/index.d.ts +0 -5
  135. package/esm/util/index.d.ts.map +0 -1
  136. package/esm/util/index.js +0 -16
  137. package/esm/util/index.js.map +0 -1
  138. package/esm/util/map-includes.d.ts +0 -6
  139. package/esm/util/map-includes.d.ts.map +0 -1
  140. package/esm/util/map-includes.js +0 -184
  141. package/esm/util/map-includes.js.map +0 -1
  142. package/esm/util/merge-includes.d.ts +0 -3
  143. package/esm/util/merge-includes.d.ts.map +0 -1
  144. package/esm/util/merge-includes.js +0 -91
  145. package/esm/util/merge-includes.js.map +0 -1
  146. package/lib/cursors.d.ts.map +0 -1
  147. package/lib/cursors.js.map +0 -1
  148. package/lib/loader-map.d.ts +0 -6
  149. package/lib/loader-map.d.ts.map +0 -1
  150. package/lib/loader-map.js.map +0 -1
  151. package/lib/refs.d.ts.map +0 -1
  152. package/lib/refs.js.map +0 -1
  153. package/lib/util/index.d.ts +0 -5
  154. package/lib/util/index.d.ts.map +0 -1
  155. package/lib/util/index.js +0 -30
  156. package/lib/util/index.js.map +0 -1
  157. package/lib/util/map-includes.d.ts +0 -6
  158. package/lib/util/map-includes.d.ts.map +0 -1
  159. package/lib/util/map-includes.js +0 -189
  160. package/lib/util/map-includes.js.map +0 -1
  161. package/lib/util/merge-includes.d.ts +0 -3
  162. package/lib/util/merge-includes.d.ts.map +0 -1
  163. package/lib/util/merge-includes.js +0 -96
  164. package/lib/util/merge-includes.js.map +0 -1
  165. package/src/util/index.ts +0 -26
  166. package/src/util/map-includes.ts +0 -328
  167. package/src/util/merge-includes.ts +0 -121
  168. package/tsconfig.tsbuildinfo +0 -1
@@ -1,63 +1,67 @@
1
- import { ObjectFieldBuilder, } from '@pothos/core';
2
- import { prismaCursorConnectionQuery, wrapConnectionResult } from './cursors.js';
3
- import { getLoaderMapping, setLoaderMappings } from './loader-map.js';
4
- import { ModelLoader } from './model-loader.js';
5
- import { getDelegateFromModel, getFindUniqueForRef, getRefFromModel, getRelation } from './refs.js';
6
- import { queryFromInfo, SELF_RELATION } from './util/index.js';
7
- export class PrismaObjectFieldBuilder extends ObjectFieldBuilder {
8
- constructor(name, builder, model) {
9
- super(name, builder);
1
+ import { RootFieldBuilder, } from '@pothos/core';
2
+ import { prismaCursorConnectionQuery, wrapConnectionResult } from './util/cursors.js';
3
+ import { getCursorFormatter, getCursorParser, getRefFromModel, getRelation, } from './util/datamodel.js';
4
+ // Workaround for FieldKind not being extended on Builder classes
5
+ const RootBuilder = RootFieldBuilder;
6
+ export class PrismaObjectFieldBuilder extends RootBuilder {
7
+ constructor(name, builder, model, fieldMap) {
8
+ super(name, builder, "PrismaObject", "Object");
9
+ this.exposeBoolean = this.createExpose("Boolean");
10
+ this.exposeFloat = this.createExpose("Float");
11
+ this.exposeInt = this.createExpose("Int");
12
+ this.exposeID = this.createExpose("ID");
13
+ this.exposeString = this.createExpose("String");
14
+ this.exposeBooleanList = this.createExpose(["Boolean"]);
15
+ this.exposeFloatList = this.createExpose(["Float"]);
16
+ this.exposeIntList = this.createExpose(["Int"]);
17
+ this.exposeIDList = this.createExpose(["ID"]);
18
+ this.exposeStringList = this.createExpose(["String"]);
10
19
  this.relatedConnection = function relatedConnection(name, { maxSize, defaultSize, cursor, query, resolve, extensions, totalCount, ...options }, connectionOptions = {}, edgeOptions = {}) {
11
20
  var _a, _b;
12
21
  const relationField = getRelation(this.model, this.builder, name);
13
- const parentRef = getRefFromModel(this.model, this.builder);
14
22
  const ref = (_a = options.type) !== null && _a !== void 0 ? _a : getRefFromModel(relationField.type, this.builder);
15
- const findUnique = getFindUniqueForRef(parentRef, this.builder);
16
- const loaderCache = ModelLoader.forModel(this.model, this.builder);
17
23
  let typeName;
24
+ const formatCursor = getCursorFormatter(relationField.type, this.builder, cursor);
25
+ const parseCursor = getCursorParser(relationField.type, this.builder, cursor);
18
26
  const getQuery = (args, ctx) => ({
19
27
  ...(typeof query === "function" ? query(args, ctx) : query),
20
28
  ...prismaCursorConnectionQuery({
21
- column: cursor,
29
+ parseCursor,
22
30
  maxSize,
23
31
  defaultSize,
24
32
  args,
25
33
  }),
26
34
  });
35
+ const relationSelect = (args, context, nestedQuery) => ({
36
+ select: {
37
+ [name]: nestedQuery({
38
+ ...(typeof query === "function" ? query(args, context) : query),
39
+ ...prismaCursorConnectionQuery({
40
+ parseCursor,
41
+ maxSize,
42
+ defaultSize,
43
+ args,
44
+ }),
45
+ }),
46
+ },
47
+ });
27
48
  const fieldRef = this.connection({
28
49
  ...options,
29
50
  extensions: {
30
51
  ...extensions,
31
- pothosPrismaQuery: getQuery,
32
- pothosPrismaRelation: name,
52
+ pothosPrismaLoaded: (value) => value[name] !== undefined,
53
+ pothosPrismaFallback: resolve &&
54
+ ((q, parent, args, context, info) => Promise.resolve(resolve({
55
+ ...q,
56
+ ...(typeof query === "function" ? query(args, context) : query),
57
+ }, parent, args, context, info)).then((result) => wrapConnectionResult(result, args, q.take, formatCursor))),
33
58
  },
34
59
  type: ref,
35
- resolve: async (parent, args, context, info) => {
60
+ select: relationSelect,
61
+ resolve: (parent, args, context) => {
36
62
  var _a;
37
63
  const connectionQuery = getQuery(args, context);
38
- const getResult = () => {
39
- const mapping = getLoaderMapping(context, info.path);
40
- const loadedValue = parent[name];
41
- if (
42
- // if we attempted to load the relation, and its missing it will be null
43
- // undefined means that the query was not constructed in a way that requested the relation
44
- loadedValue !== undefined &&
45
- mapping) {
46
- if (loadedValue !== null && loadedValue !== undefined) {
47
- setLoaderMappings(context, info.path, mapping);
48
- }
49
- return loadedValue;
50
- }
51
- if (!resolve && !findUnique) {
52
- throw new Error(`Missing findUnique for Prisma type ${this.model}`);
53
- }
54
- const mergedQuery = { ...queryFromInfo(context, info), ...connectionQuery };
55
- if (resolve) {
56
- return resolve(mergedQuery, parent, args, context, info);
57
- }
58
- return loaderCache(parent).loadRelation(name, mergedQuery, context);
59
- };
60
- return wrapConnectionResult(await getResult(), args, connectionQuery.take, cursor, (_a = parent._count) === null || _a === void 0 ? void 0 : _a[name]);
64
+ return wrapConnectionResult(parent[name], args, connectionQuery.take, formatCursor, (_a = parent._count) === null || _a === void 0 ? void 0 : _a[name]);
61
65
  },
62
66
  }, {
63
67
  ...connectionOptions,
@@ -67,15 +71,9 @@ export class PrismaObjectFieldBuilder extends ObjectFieldBuilder {
67
71
  return ({
68
72
  totalCount: t.int({
69
73
  extensions: {
70
- pothosPrismaRelationCountForParent: name,
71
- },
72
- resolve: (parent, args, context) => {
73
- const loadedValue = parent.totalCount;
74
- if (loadedValue !== undefined) {
75
- return loadedValue;
76
- }
77
- return loaderCache(parent).loadCount(name, context);
74
+ pothosPrismaParentSelect: { _count: { select: { [name]: true } } },
78
75
  },
76
+ resolve: (parent, args, context) => parent.totalCount,
79
77
  }),
80
78
  ...(_b = (_a = connectionOptions).fields) === null || _b === void 0 ? void 0 : _b.call(_a, t),
81
79
  });
@@ -97,108 +95,79 @@ export class PrismaObjectFieldBuilder extends ObjectFieldBuilder {
97
95
  return fieldRef;
98
96
  };
99
97
  this.model = model;
100
- this.delegate = getDelegateFromModel(builder.options.prisma.client, model);
98
+ this.prismaFieldMap = fieldMap;
101
99
  }
102
100
  relation(...allArgs) {
103
101
  var _a;
104
102
  const [name, options = {}] = allArgs;
105
103
  const relationField = getRelation(this.model, this.builder, name);
106
- const parentRef = getRefFromModel(this.model, this.builder);
107
104
  const ref = (_a = options.type) !== null && _a !== void 0 ? _a : getRefFromModel(relationField.type, this.builder);
108
- const findUnique = getFindUniqueForRef(parentRef, this.builder);
109
- const loaderCache = ModelLoader.forModel(this.model, this.builder);
110
- const { query = {}, resolve, ...rest } = options;
105
+ const { query = {}, resolve, extensions, ...rest } = options;
106
+ const relationSelect = (args, context, nestedQuery) => ({ select: { [name]: nestedQuery(query) } });
111
107
  return this.field({
112
108
  ...rest,
113
109
  type: relationField.isList ? [ref] : ref,
114
110
  extensions: {
115
- ...options.extensions,
116
- pothosPrismaQuery: query,
117
- pothosPrismaRelation: name,
118
- },
119
- resolve: (parent, args, context, info) => {
120
- const mapping = getLoaderMapping(context, info.path);
121
- const loadedValue = parent[name];
122
- if (
123
- // if we attempted to load the relation, and its missing it will be null
124
- // undefined means that the query was not constructed in a way that requested the relation
125
- loadedValue !== undefined &&
126
- mapping) {
127
- if (loadedValue !== null && loadedValue !== undefined) {
128
- setLoaderMappings(context, info.path, mapping);
129
- }
130
- return loadedValue;
131
- }
132
- const queryOptions = {
133
- ...(typeof query === "function" ? query(args, context) : query),
134
- ...queryFromInfo(context, info),
135
- };
136
- if (resolve) {
137
- return resolve(queryOptions, parent, args, context, info);
138
- }
139
- if (!findUnique) {
140
- throw new Error(`Missing findUnique for Prisma type ${this.model}`);
141
- }
142
- return loaderCache(parent).loadRelation(name, queryOptions, context);
111
+ ...extensions,
112
+ pothosPrismaLoaded: (value) => value[name] !== undefined,
113
+ pothosPrismaFallback: resolve &&
114
+ ((q, parent, args, context, info) => resolve({ ...q, ...(typeof query === "function" ? query(args, context) : query) }, parent, args, context, info)),
143
115
  },
116
+ select: relationSelect,
117
+ resolve: (parent) => parent[name],
144
118
  });
145
119
  }
146
120
  relationCount(...allArgs) {
147
121
  const [name, options = {}] = allArgs;
148
- const parentRef = getRefFromModel(this.model, this.builder);
149
- const findUnique = getFindUniqueForRef(parentRef, this.builder);
150
- const loaderCache = ModelLoader.forModel(this.model, this.builder);
151
122
  const { resolve, ...rest } = options;
123
+ const countSelect = {
124
+ _count: {
125
+ select: { [name]: true },
126
+ },
127
+ };
152
128
  return this.field({
153
129
  ...rest,
154
130
  type: "Int",
155
131
  nullable: false,
156
- extensions: {
157
- ...options.extensions,
158
- pothosPrismaRelationCount: name,
159
- },
160
- resolve: (parent, args, context, info) => {
161
- var _a;
162
- const loadedValue = (_a = parent._count) === null || _a === void 0 ? void 0 : _a[name];
163
- if (loadedValue !== undefined) {
164
- return loadedValue;
165
- }
166
- if (resolve) {
167
- return resolve(parent, args, context, info);
168
- }
169
- if (!findUnique) {
170
- throw new Error(`Missing findUnique for Prisma type ${this.model}`);
171
- }
172
- return loaderCache(parent).loadCount(name, context);
173
- },
132
+ select: countSelect,
133
+ resolve: (parent, args, context, info) => { var _a; return (_a = parent._count) === null || _a === void 0 ? void 0 : _a[name]; },
174
134
  });
175
135
  }
176
136
  variant(...allArgs) {
177
137
  const [variant, options = {}] = allArgs;
178
138
  const ref = typeof variant === "string" ? getRefFromModel(variant, this.builder) : variant;
179
- const parentRef = getRefFromModel(this.model, this.builder);
180
- const findUnique = getFindUniqueForRef(parentRef, this.builder);
181
- const loaderCache = ModelLoader.forModel(this.model, this.builder);
139
+ const selfSelect = (args, context, nestedQuery) => nestedQuery({});
182
140
  return this.field({
183
141
  ...options,
184
142
  type: ref,
143
+ select: selfSelect,
144
+ resolve: (parent, args, context, info) => parent,
145
+ });
146
+ }
147
+ expose(...args) {
148
+ var _a;
149
+ const [name, options = {}] = args;
150
+ const typeConfig = this.builder.configStore.getTypeConfig(this.typename, "Object");
151
+ const usingSelect = !!((_a = typeConfig.extensions) === null || _a === void 0 ? void 0 : _a.pothosPrismaSelect);
152
+ return this.exposeField(name, {
153
+ ...options,
185
154
  extensions: {
186
155
  ...options.extensions,
187
- pothosPrismaRelation: SELF_RELATION,
188
- },
189
- resolve: (parent, args, context, info) => {
190
- const mapping = getLoaderMapping(context, info.path);
191
- if (mapping) {
192
- setLoaderMappings(context, info.path, mapping);
193
- return parent;
194
- }
195
- const queryOptions = queryFromInfo(context, info);
196
- if (!findUnique) {
197
- throw new Error(`Missing findUnique for Prisma type ${this.model}`);
198
- }
199
- return loaderCache(parent).loadSelf(queryOptions, context);
156
+ pothosPrismaVariant: name,
157
+ pothosPrismaSelect: usingSelect && {
158
+ [name]: true,
159
+ },
200
160
  },
201
161
  });
202
162
  }
163
+ createExpose(type) {
164
+ return (...args) => {
165
+ const [name, options = {}] = args;
166
+ return this.expose(name, {
167
+ ...options,
168
+ type,
169
+ });
170
+ };
171
+ }
203
172
  }
204
173
  //# sourceMappingURL=prisma-field-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prisma-field-builder.js","sourceRoot":"","sources":["../src/prisma-field-builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,kBAAkB,GAInB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AASjG,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAGtD,MAAM,OAAO,wBAKX,SAAQ,kBAAgC;IA8KxC,YAAY,IAAY,EAAE,OAA+C,EAAE,KAAa;QACtF,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QA3KvB,sBAAiB,GA6B2C,SAAS,iBAAiB,CAEpF,IAAY,EACZ,EACE,OAAO,EACP,WAAW,EACX,MAAM,EACN,KAAK,EACL,OAAO,EACP,UAAU,EACV,UAAU,EACV,GAAG,OAAO,EAUX,EACD,iBAAiB,GAAG,EAAE,EACtB,WAAW,GAAG,EAAE;;YAEhB,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAClE,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5D,MAAM,GAAG,GAAG,MAAA,OAAO,CAAC,IAAI,mCAAI,eAAe,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9E,MAAM,UAAU,GAAG,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAChE,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACnE,IAAI,QAA4B,CAAC;YAEjC,MAAM,QAAQ,GAAG,CAAC,IAAkD,EAAE,GAAO,EAAE,EAAE,CAAC,CAAC;gBACjF,GAAI,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAQ;gBACnE,GAAG,2BAA2B,CAAC;oBAC7B,MAAM,EAAE,MAAM;oBACd,OAAO;oBACP,WAAW;oBACX,IAAI;iBACL,CAAC;aACH,CAAC,CAAC;YAEH,MAAM,QAAQ,GACZ,IAGD,CAAC,UAAU,CACV;gBACE,GAAG,OAAO;gBACV,UAAU,EAAE;oBACV,GAAG,UAAU;oBACb,iBAAiB,EAAE,QAAQ;oBAC3B,oBAAoB,EAAE,IAAI;iBAC3B;gBACD,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,KAAK,EACZ,MAAc,EACd,IAAkD,EAClD,OAAW,EACX,IAAwB,EACxB,EAAE;;oBACF,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAChD,MAAM,SAAS,GAAG,GAAG,EAAE;wBACrB,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;wBACrD,MAAM,WAAW,GAAI,MAAkC,CAAC,IAAI,CAAC,CAAC;wBAE9D;wBACE,wEAAwE;wBACxE,0FAA0F;wBAC1F,WAAW,KAAK,SAAS;4BACzB,OAAO,EACP;4BACA,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE;gCACrD,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;6BAChD;4BAED,OAAO,WAAmB,CAAC;yBAC5B;wBAED,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE;4BAC3B,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;yBACrE;wBAED,MAAM,WAAW,GAAG,EAAE,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,GAAG,eAAe,EAAE,CAAC;wBAE5E,IAAI,OAAO,EAAE;4BACX,OAAO,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;yBAC1D;wBAED,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAkB,CAAC;oBACvF,CAAC,CAAC;oBAEF,OAAO,oBAAoB,CACzB,MAAM,SAAS,EAAE,EACjB,IAAI,EACJ,eAAe,CAAC,IAAI,EACpB,MAAM,EACN,MAAC,MAA8C,CAAC,MAAM,0CAAG,IAAI,CAAC,CAC/D,CAAC;gBACJ,CAAC;aACF,EACD;gBACE,GAAG,iBAAiB;gBACpB,MAAM,EAAE,UAAU;oBAChB,CAAC,CAAC,CAAC,CAA6E,EAAE,EAAE;;wBAAC,OAAA,CAAC;4BAClF,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC;gCAChB,UAAU,EAAE;oCACV,kCAAkC,EAAE,IAAI;iCACzC;gCACD,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;oCACjC,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;oCAEtC,IAAI,WAAW,KAAK,SAAS,EAAE;wCAC7B,OAAO,WAAW,CAAC;qCACpB;oCAED,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gCACtD,CAAC;6BACF,CAAC;4BACF,GAAG,MAAA,MAAC,iBAAqD,EAAC,MAAM,mDAAG,CAAC,CAAC;yBACtE,CAAC,CAAA;qBAAA;oBACJ,CAAC,CAAE,iBAA2C,CAAC,MAAM;gBACvD,UAAU,EAAE;oBACV,GAAG,MAAC,iBAAoD,0CAAE,UAAU;oBACpE,2BAA2B,EAAE;wBAC3B,OAAO,EAAE,GAAG,EAAE;4BACZ,IAAI,CAAC,QAAQ,EAAE;gCACb,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;6BAC7D;4BACD,OAAO,QAAQ,CAAC;wBAClB,CAAC;wBACD,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qBAC5C;iBACF;aACF,EACD,WAAW,CACZ,CAAC;YAEF,OAAO,QAAQ,CAAC;QAClB,CAAU,CAAC;QAKT,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC7E,CAAC;IAED,QAAQ,CAMN,GAAG,OAcF;;QAED,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,EAAW,CAAC,GAAG,OAAO,CAAC;QAC9C,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,MAAA,OAAO,CAAC,IAAI,mCAAI,eAAe,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9E,MAAM,UAAU,GAAG,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEnE,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;QAEjD,OAAO,IAAI,CAAC,KAAK,CAAC;YAChB,GAAG,IAAI;YACP,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG;YACxC,UAAU,EAAE;gBACV,GAAG,OAAO,CAAC,UAAU;gBACrB,iBAAiB,EAAE,KAAK;gBACxB,oBAAoB,EAAE,IAAI;aAC3B;YACD,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;gBACvC,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAErD,MAAM,WAAW,GAAI,MAAkC,CAAC,IAAI,CAAC,CAAC;gBAE9D;gBACE,wEAAwE;gBACxE,0FAA0F;gBAC1F,WAAW,KAAK,SAAS;oBACzB,OAAO,EACP;oBACA,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE;wBACrD,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;qBAChD;oBAED,OAAO,WAAoB,CAAC;iBAC7B;gBAED,MAAM,YAAY,GAAG;oBACnB,GAAI,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAQ;oBACvE,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC;iBAChC,CAAC;gBAEF,IAAI,OAAO,EAAE;oBACX,OAAO,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,IAAa,EAAE,OAAO,EAAE,IAAI,CAAU,CAAC;iBAC7E;gBAED,IAAI,CAAC,UAAU,EAAE;oBACf,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;iBACrE;gBAED,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAU,CAAC;YAChF,CAAC;SACF,CAA2D,CAAC;IAC/D,CAAC;IAED,aAAa,CACX,GAAG,OAEF;QAED,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,EAAW,CAAC,GAAG,OAAO,CAAC;QAC9C,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEnE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;QAErC,OAAO,IAAI,CAAC,KAAK,CAAC;YAChB,GAAG,IAAI;YACP,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE;gBACV,GAAG,OAAO,CAAC,UAAU;gBACrB,yBAAyB,EAAE,IAAI;aAChC;YACD,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;;gBACvC,MAAM,WAAW,GAAG,MAAC,MAA8C,CAAC,MAAM,0CAAG,IAAI,CAAC,CAAC;gBAEnF,IAAI,WAAW,KAAK,SAAS,EAAE;oBAC7B,OAAO,WAAoB,CAAC;iBAC7B;gBAED,IAAI,OAAO,EAAE;oBACX,OAAO,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAU,CAAC;iBACtD;gBAED,IAAI,CAAC,UAAU,EAAE;oBACf,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;iBACrE;gBAED,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAU,CAAC;YAC/D,CAAC;SACF,CAA+B,CAAC;IACnC,CAAC;IAED,OAAO,CACL,GAAG,OASF;QAED,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,EAAW,CAAC,GAAG,OAAO,CAAC;QACjD,MAAM,GAAG,GACP,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACjF,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEnE,OAAO,IAAI,CAAC,KAAK,CAAC;YAChB,GAAG,OAAO;YACV,IAAI,EAAE,GAAG;YACT,UAAU,EAAE;gBACV,GAAG,OAAO,CAAC,UAAU;gBACrB,oBAAoB,EAAE,aAAa;aACpC;YACD,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;gBACvC,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAErD,IAAI,OAAO,EAAE;oBACX,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAE/C,OAAO,MAAe,CAAC;iBACxB;gBAED,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAElD,IAAI,CAAC,UAAU,EAAE;oBACf,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;iBACrE;gBAED,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAU,CAAC;YACtE,CAAC;SACF,CAAuC,CAAC;IAC3C,CAAC;CACF"}
1
+ {"version":3,"file":"prisma-field-builder.js","sourceRoot":"","sources":["../src/prisma-field-builder.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,35 @@
1
1
  import './global-types.js';
2
2
  import SchemaBuilder, { brandWithType, } from '@pothos/core';
3
3
  import { PrismaObjectFieldBuilder } from './field-builder.js';
4
+ import { ModelLoader } from './model-loader.js';
4
5
  import PrismaNodeRef from './node-ref.js';
5
- import { getDelegateFromModel, getRefFromModel, setFindUniqueForRef } from './refs.js';
6
- import { queryFromInfo } from './util/index.js';
6
+ import { getDelegateFromModel, getRefFromModel } from './util/datamodel.js';
7
+ import { queryFromInfo } from './util/map-query.js';
8
+ import { getRelationMap } from './util/relation-map.js';
7
9
  const schemaBuilderProto = SchemaBuilder.prototype;
8
10
  schemaBuilderProto.prismaObject = function prismaObject(type, { fields, findUnique, ...options }) {
9
11
  var _a, _b;
10
12
  const ref = options.variant ? this.objectRef(options.variant) : getRefFromModel(type, this);
11
13
  const name = (_b = (_a = options.variant) !== null && _a !== void 0 ? _a : options.name) !== null && _b !== void 0 ? _b : type;
14
+ const fieldMap = getRelationMap(this.options.prisma.client).get(type);
12
15
  ref.name = name;
13
- setFindUniqueForRef(ref, this, findUnique);
14
16
  this.objectType(ref, {
15
17
  ...options,
16
18
  extensions: {
17
19
  ...options.extensions,
18
20
  pothosPrismaInclude: options.include,
21
+ pothosPrismaModel: type,
22
+ pothosPrismaFieldMap: fieldMap,
23
+ pothosPrismaSelect: options.select,
24
+ pothosPrismaLoader: ModelLoader.forRef(type, findUnique ||
25
+ (() => {
26
+ throw new Error(`Missing findUnique for ${ref.name}`);
27
+ }), this),
19
28
  },
20
29
  name,
21
- fields: fields ? () => fields(new PrismaObjectFieldBuilder(name, this, type)) : undefined,
30
+ fields: fields
31
+ ? () => fields(new PrismaObjectFieldBuilder(name, this, type, getRelationMap(this.options.prisma.client).get(type)))
32
+ : undefined,
22
33
  });
23
34
  return ref;
24
35
  };
@@ -1 +1 @@
1
- {"version":3,"file":"schema-builder.js","sourceRoot":"","sources":["../src/schema-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-builder.js","sourceRoot":"","sources":["../src/schema-builder.ts"],"names":[],"mappings":"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"}
package/esm/types.d.ts CHANGED
@@ -1,103 +1,99 @@
1
1
  import { GraphQLResolveInfo } from 'graphql';
2
- import { FieldKind, FieldMap, FieldNullability, FieldOptionsFromKind, InputFieldMap, InputFieldsFromShape, InputShapeFromFields, InterfaceParam, ListResolveValue, MaybePromise, ObjectRef, OutputShape, OutputType, SchemaTypes, ShapeFromTypeParam, ShapeWithNullability, typeBrandKey, TypeParam } from '@pothos/core';
2
+ import { FieldKind, FieldMap, FieldNullability, FieldOptionsFromKind, InputFieldMap, InputFieldsFromShape, InputShapeFromFields, InterfaceParam, ListResolveValue, MaybePromise, Normalize, ObjectRef, OutputShape, OutputType, SchemaTypes, ShapeFromTypeParam, ShapeWithNullability, typeBrandKey, TypeParam } from '@pothos/core';
3
3
  import { PrismaObjectFieldBuilder } from './field-builder';
4
4
  import { PrismaObjectRef } from './object-ref';
5
5
  export interface PrismaDelegate {
6
6
  findUnique: (...args: any[]) => Promise<unknown>;
7
7
  }
8
- declare type RelationKeys<T> = {
9
- [K in keyof T]: T[K] extends (args: {}) => {
10
- then: (cb: (result: unknown) => unknown) => unknown;
11
- } ? K : never;
12
- }[keyof T];
13
- export declare type ModelTypes<Model extends {}> = Model extends {
14
- findUnique: (options: infer UniqueOptions & {
15
- where?: infer Where | null | undefined;
16
- select?: infer Select | null | undefined;
17
- } & ({
18
- include?: infer Include | null | undefined;
19
- } | {})) => infer Chain & {
20
- then: (cb: (result: infer Shape | null) => unknown) => unknown;
21
- };
22
- } ? PrismaModelTypes & {
23
- Shape: Shape;
24
- Include: unknown extends Include ? never : Include;
25
- Where: Where;
26
- Fields: keyof Select;
27
- ListRelation: ListRelationFields<Include> & string;
28
- Relations: {
29
- [RelationName in RelationKeys<Chain>]: Chain[RelationName] extends (args: {}) => {
30
- then: (cb: (result: infer Relation) => unknown) => unknown;
31
- } ? {
32
- Shape: Relation;
33
- Types: PrismaModelTypes;
34
- } : never;
35
- };
36
- } : never;
8
+ export declare const prismaModelName: unique symbol;
37
9
  export interface PrismaModelTypes {
38
10
  Name: string;
39
11
  Shape: {};
40
12
  Include: unknown;
13
+ Select: unknown;
41
14
  Where: {};
42
15
  Fields: string;
43
16
  ListRelations: string;
17
+ RelationName: string;
44
18
  Relations: Record<string, {
45
19
  Shape: unknown;
46
20
  Types: PrismaModelTypes;
47
21
  }>;
48
22
  }
49
- export declare type ListRelationFields<T> = {
50
- [K in keyof T]: T[K] extends infer Option ? Option extends {
51
- orderBy?: unknown;
52
- } ? K : never : never;
53
- }[keyof T];
54
- export declare type PrismaObjectFieldsShape<Types extends SchemaTypes, Model extends PrismaModelTypes, NeedsResolve extends boolean, Shape extends object> = (t: PrismaObjectFieldBuilder<Types, Model, NeedsResolve, Shape>) => FieldMap;
55
- export declare type ShapeFromInclude<Model extends PrismaModelTypes, Include> = {} extends Include ? Model['Shape'] : {
56
- [K in keyof Include & keyof Model['Relations']]: Model['Relations'][K]['Shape'] extends infer RelationShape ? RelationShape extends (infer ItemShape)[] ? (ItemShape & (Include[K] extends {
57
- include?: infer NestedInclude & object;
58
- } ? ShapeFromInclude<Model['Relations'][K]['Types'], NestedInclude> : {}))[] : RelationShape & ((Include[K] extends {
59
- include?: infer NestedInclude & object;
60
- } ? ShapeFromInclude<Model['Relations'][K]['Types'], NestedInclude> : {}) | null) : never;
23
+ declare type ExtractModel<Types extends SchemaTypes, ParentShape> = ParentShape extends {
24
+ [prismaModelName]?: infer Name;
25
+ } ? Types['PrismaTypes'][Name & keyof Types['PrismaTypes']] extends infer Model ? Model extends PrismaModelTypes ? Model : never : never : never;
26
+ export declare type PrismaObjectFieldOptions<Types extends SchemaTypes, ParentShape, Type extends TypeParam<Types>, Nullable extends FieldNullability<Type>, Args extends InputFieldMap, Select, ResolveReturnShape> = PothosSchemaTypes.ObjectFieldOptions<Types, unknown extends Select ? ParentShape : ParentShape & ShapeFromSelection<ExtractModel<Types, ParentShape>, {
27
+ select: Select;
28
+ }>, Type, Nullable, Args, ResolveReturnShape> & {
29
+ select?: ExtractModel<Types, ParentShape>['Select'] & Select;
61
30
  };
62
- export declare type ShapeWithInclude<Model extends PrismaModelTypes, Include extends Model['Include']> = Model['Shape'] & ([Include] extends [never] ? {} : ShapeFromInclude<Model, Include>);
63
- export declare type PrismaObjectTypeOptions<Types extends SchemaTypes, Model extends PrismaModelTypes, Interfaces extends InterfaceParam<Types>[], FindUnique, Include extends Model['Include'], Shape extends object> = NameOrVariant & Omit<PothosSchemaTypes.ObjectTypeOptions<Types, Shape> | PothosSchemaTypes.ObjectTypeWithInterfaceOptions<Types, Shape, Interfaces>, 'fields'> & {
64
- include?: Include;
65
- fields?: PrismaObjectFieldsShape<Types, Model, FindUnique extends null ? true : false, Shape>;
31
+ declare type PrismaObjectFieldsShape<Types extends SchemaTypes, Model extends PrismaModelTypes, NeedsResolve extends boolean, Shape extends object, Select> = Model['Select'] extends Select ? (t: PrismaObjectFieldBuilder<Types, Model, NeedsResolve, Shape>) => FieldMap : (t: PrismaSelectionFieldBuilder<Types, Model, Shape>) => FieldMap;
32
+ declare type PrismaSelectionFieldBuilder<Types extends SchemaTypes, Model extends PrismaModelTypes, Shape extends object> = PrismaObjectFieldBuilder<Types, Model, false, Shape>;
33
+ interface BaseSelection {
34
+ include?: unknown;
35
+ select?: unknown;
36
+ }
37
+ export declare type SelectedKeys<T> = {
38
+ [K in keyof T]: T[K] extends false ? never : K;
39
+ }[keyof T];
40
+ export declare type ShapeFromSelection<Model extends PrismaModelTypes, Selection> = Normalize<Selection extends BaseSelection ? unknown extends Selection['select'] ? Model['Shape'] & RelationShapeFromInclude<Model, Selection['include']> : Pick<Model['Shape'], SelectedKeys<Selection['select']>> & RelationShapeFromInclude<Model, Selection['select']> : Model['Shape']>;
41
+ declare type RelationShapeFromInclude<Model extends PrismaModelTypes, Include> = Normalize<{
42
+ [K in SelectedKeys<Include> as K extends Model['RelationName'] ? K : never]: K extends keyof Model['Relations'] ? Model['Relations'][K]['Shape'] extends unknown[] ? ShapeFromSelection<Model['Relations'][K]['Types'], Include[K]>[] : ShapeFromSelection<Model['Relations'][K]['Types'], Include[K]> : unknown;
43
+ }>;
44
+ export declare type PrismaObjectTypeOptions<Types extends SchemaTypes, Model extends PrismaModelTypes, Interfaces extends InterfaceParam<Types>[], FindUnique, Include, Select, Shape extends object> = NameOrVariant & Omit<PothosSchemaTypes.ObjectTypeOptions<Types, Shape> | PothosSchemaTypes.ObjectTypeWithInterfaceOptions<Types, Shape, Interfaces>, 'fields'> & {
45
+ fields?: PrismaObjectFieldsShape<Types, Model, FindUnique extends null ? true : false, Shape & (FindUnique extends null ? {} : {
46
+ [prismaModelName]?: Model['Name'];
47
+ }), Select>;
48
+ } & ({
49
+ include?: Include & Model['Include'];
50
+ select?: never;
66
51
  findUnique: FindUnique & (((parent: Shape, context: Types['Context']) => Model['Where']) | null);
67
- };
68
- export declare type NameOrVariant = {
52
+ } | {
53
+ select: Model['Select'] & Select;
54
+ include?: never;
55
+ findUnique: (parent: Shape, context: Types['Context']) => Model['Where'];
56
+ });
57
+ declare type NameOrVariant = {
69
58
  name?: never;
70
59
  variant?: string;
71
60
  } | {
72
61
  name?: string;
73
62
  variant?: never;
74
63
  };
75
- export declare type PrismaNodeOptions<Types extends SchemaTypes, Model extends PrismaModelTypes, Interfaces extends InterfaceParam<Types>[], Include extends Model['Include'], Shape extends object> = NameOrVariant & Omit<PothosSchemaTypes.ObjectTypeOptions<Types, Shape> | PothosSchemaTypes.ObjectTypeWithInterfaceOptions<Types, Shape, Interfaces>, 'fields' | 'isTypeOf'> & {
76
- include?: Include;
64
+ export declare type PrismaNodeOptions<Types extends SchemaTypes, Model extends PrismaModelTypes, Interfaces extends InterfaceParam<Types>[], Include, Select, Shape extends object> = NameOrVariant & Omit<PothosSchemaTypes.ObjectTypeOptions<Types, Shape> | PothosSchemaTypes.ObjectTypeWithInterfaceOptions<Types, Shape, Interfaces>, 'fields' | 'isTypeOf'> & {
77
65
  id: Omit<FieldOptionsFromKind<Types, Shape, 'ID', false, {}, 'Object', OutputShape<Types, 'ID'>, MaybePromise<OutputShape<Types, 'ID'>>>, 'args' | 'nullable' | 'resolve' | 'type'> & {
78
66
  resolve: (parent: Shape, context: Types['Context']) => MaybePromise<OutputShape<Types, 'ID'>>;
79
67
  };
80
- fields?: PrismaObjectFieldsShape<Types, Model, false, Shape>;
68
+ fields?: PrismaObjectFieldsShape<Types, Model, false, Shape & {
69
+ [prismaModelName]?: Model['Name'];
70
+ }, Select>;
81
71
  findUnique: (id: string, context: Types['Context']) => Model['Where'];
82
- };
83
- export declare type QueryForField<Types extends SchemaTypes, Args extends InputFieldMap, Include> = Include extends {
72
+ } & ({
73
+ include?: Include & Model['Include'];
74
+ select?: never;
75
+ } | {
76
+ select: Model['Select'] & Select;
77
+ include?: never;
78
+ });
79
+ declare type QueryForField<Types extends SchemaTypes, Args extends InputFieldMap, Include> = Include extends {
84
80
  where?: unknown;
85
81
  } ? Omit<Include, 'include' | 'select'> | ((args: InputShapeFromFields<Args>, ctx: Types['Context']) => Omit<Include, 'include' | 'select'>) : never;
86
- export declare type IncludeFromRelation<Model extends PrismaModelTypes, Field extends keyof Model['Include']> = Model['Include'][Field] extends infer Include ? Include extends {
87
- include?: infer T;
88
- } ? NonNullable<T> : never : never;
89
- export declare type CursorFromRelation<Model extends PrismaModelTypes, Field extends Model['ListRelations']> = Field extends keyof Model['Include'] ? Model['Include'][Field] extends infer Include ? Include extends {
82
+ declare type QueryFromRelation<Model extends PrismaModelTypes, Field extends keyof Model['Include']> = Model['Include'][Field] extends infer Include ? Include extends {
83
+ include?: infer I;
84
+ select?: infer S;
85
+ } ? {
86
+ include?: NonNullable<I>;
87
+ select?: NonNullable<S>;
88
+ } : never : never;
89
+ declare type CursorFromRelation<Model extends PrismaModelTypes, Field extends Model['ListRelations']> = Field extends keyof Model['Include'] ? Model['Include'][Field] extends infer Include ? Include extends {
90
90
  cursor?: infer T;
91
91
  } ? keyof T : never : never : never;
92
- export declare type RefForRelation<Model extends PrismaModelTypes, Field extends keyof Model['Relations']> = Model['Relations'][Field] extends unknown[] ? [ObjectRef<Model['Relations'][Field]>] : ObjectRef<Model['Relations'][Field]>;
92
+ declare type RefForRelation<Model extends PrismaModelTypes, Field extends keyof Model['Relations']> = Model['Relations'][Field] extends unknown[] ? [ObjectRef<Model['Relations'][Field]>] : ObjectRef<Model['Relations'][Field]>;
93
93
  export declare type RelatedFieldOptions<Types extends SchemaTypes, Model extends PrismaModelTypes, Field extends keyof Model['Relations'], Nullable extends boolean, Args extends InputFieldMap, ResolveReturnShape, NeedsResolve extends boolean, Shape> = Omit<PothosSchemaTypes.ObjectFieldOptions<Types, Shape, RefForRelation<Model, Field>, Nullable, Args, ResolveReturnShape>, 'resolve' | 'type'> & (NeedsResolve extends false ? {
94
- resolve?: (query: {
95
- include?: IncludeFromRelation<Model, Field & keyof Model['Include']>;
96
- }, parent: Shape, args: InputShapeFromFields<Args>, context: Types['Context'], info: GraphQLResolveInfo) => MaybePromise<ShapeWithNullability<Types, Model['Relations'][Field]['Shape'], Nullable>>;
94
+ resolve?: (query: QueryFromRelation<Model, Field & keyof Model['Include']>, parent: Shape, args: InputShapeFromFields<Args>, context: Types['Context'], info: GraphQLResolveInfo) => MaybePromise<ShapeWithNullability<Types, Model['Relations'][Field]['Shape'], Nullable>>;
97
95
  } : {
98
- resolve: (query: {
99
- include?: IncludeFromRelation<Model, Field & keyof Model['Include']>;
100
- }, parent: Shape, args: InputShapeFromFields<Args>, context: Types['Context'], info: GraphQLResolveInfo) => MaybePromise<ShapeWithNullability<Types, Model['Relations'][Field]['Shape'], Nullable>>;
96
+ resolve: (query: QueryFromRelation<Model, Field & keyof Model['Include']>, parent: Shape, args: InputShapeFromFields<Args>, context: Types['Context'], info: GraphQLResolveInfo) => MaybePromise<ShapeWithNullability<Types, Model['Relations'][Field]['Shape'], Nullable>>;
101
97
  }) & {
102
98
  type?: PrismaObjectRef<Model['Relations'][Field]['Types']>;
103
99
  query?: QueryForField<Types, Args, Model['Include'][Field & keyof Model['Include']]>;
@@ -151,24 +147,24 @@ export declare type RelatedConnectionOptions<Types extends SchemaTypes, Model ex
151
147
  export declare type WithBrand<T> = T & {
152
148
  [typeBrandKey]: string;
153
149
  };
154
- export declare type IncludeMap = Record<string, Record<string, unknown> | boolean>;
155
- export interface IncludeCounts {
156
- current: Record<string, boolean>;
157
- parent: Record<string, boolean>;
150
+ export declare type IncludeMap = Record<string, SelectionMap | boolean>;
151
+ export interface SelectionMap {
152
+ select?: Record<string, SelectionMap | boolean>;
153
+ include?: Record<string, SelectionMap | boolean>;
154
+ where?: {};
158
155
  }
156
+ export declare type FieldSelection = Record<string, SelectionMap | boolean> | ((args: object, context: object, query: (selection: SelectionMap | boolean | ((args: object, context: object) => SelectionMap)) => SelectionMap | boolean) => SelectionMap);
159
157
  export declare type LoaderMappings = Record<string, {
160
158
  field: string;
161
- alias?: string;
162
159
  mappings: LoaderMappings;
163
160
  indirectPath: string[];
164
- }[]>;
165
- export interface SubFieldInclude {
166
- type?: string;
167
- name: string;
168
- }
169
- export interface IndirectLoadMap {
170
- subFields: SubFieldInclude[];
171
- path: string[];
161
+ }>;
162
+ export interface IndirectInclude {
163
+ getType: () => string;
164
+ path: {
165
+ type?: string;
166
+ name: string;
167
+ }[];
172
168
  }
173
169
  export declare type ShapeFromConnection<T> = T extends {
174
170
  shape: unknown;