@pothos/plugin-prisma 3.1.2 → 3.2.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 (144) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/{esm → dts}/field-builder.d.ts +0 -0
  3. package/{esm → dts}/field-builder.d.ts.map +0 -0
  4. package/{esm → dts}/generator.d.ts +0 -0
  5. package/{esm → dts}/generator.d.ts.map +0 -0
  6. package/{esm → dts}/global-types.d.ts +0 -0
  7. package/{esm → dts}/global-types.d.ts.map +0 -0
  8. package/{esm → dts}/index.d.ts +0 -0
  9. package/{esm → dts}/index.d.ts.map +0 -0
  10. package/{esm → dts}/model-loader.d.ts +0 -0
  11. package/{esm → dts}/model-loader.d.ts.map +0 -0
  12. package/{esm → dts}/node-ref.d.ts +0 -0
  13. package/{esm → dts}/node-ref.d.ts.map +0 -0
  14. package/{esm → dts}/object-ref.d.ts +0 -0
  15. package/{esm → dts}/object-ref.d.ts.map +0 -0
  16. package/{esm → dts}/prisma-field-builder.d.ts +0 -0
  17. package/{esm → dts}/prisma-field-builder.d.ts.map +0 -0
  18. package/{esm → dts}/schema-builder.d.ts +0 -0
  19. package/{esm → dts}/schema-builder.d.ts.map +0 -0
  20. package/{esm → dts}/types.d.ts +0 -0
  21. package/{esm → dts}/types.d.ts.map +0 -0
  22. package/{esm → dts}/util/cursors.d.ts +0 -0
  23. package/{esm → dts}/util/cursors.d.ts.map +0 -0
  24. package/{esm → dts}/util/datamodel.d.ts +0 -0
  25. package/{esm → dts}/util/datamodel.d.ts.map +0 -0
  26. package/{esm → dts}/util/deep-equal.d.ts +0 -0
  27. package/{esm → dts}/util/deep-equal.d.ts.map +0 -0
  28. package/{esm → dts}/util/loader-map.d.ts +0 -0
  29. package/{esm → dts}/util/loader-map.d.ts.map +0 -0
  30. package/{esm → dts}/util/map-query.d.ts +0 -0
  31. package/{esm → dts}/util/map-query.d.ts.map +0 -0
  32. package/{esm → dts}/util/relation-map.d.ts +0 -0
  33. package/{esm → dts}/util/relation-map.d.ts.map +0 -0
  34. package/{esm → dts}/util/selections.d.ts +0 -0
  35. package/{esm → dts}/util/selections.d.ts.map +0 -0
  36. package/esm/field-builder.js +37 -29
  37. package/esm/field-builder.js.map +1 -1
  38. package/esm/generator.js +27 -31
  39. package/esm/generator.js.map +1 -1
  40. package/esm/global-types.js +1 -1
  41. package/esm/global-types.js.map +1 -1
  42. package/esm/index.js +12 -14
  43. package/esm/index.js.map +1 -1
  44. package/esm/model-loader.js +11 -9
  45. package/esm/model-loader.js.map +1 -1
  46. package/esm/node-ref.js +3 -5
  47. package/esm/node-ref.js.map +1 -1
  48. package/esm/object-ref.js.map +1 -1
  49. package/esm/prisma-field-builder.js +147 -113
  50. package/esm/prisma-field-builder.js.map +1 -1
  51. package/esm/schema-builder.js +24 -21
  52. package/esm/schema-builder.js.map +1 -1
  53. package/esm/types.js +0 -1
  54. package/esm/types.js.map +1 -1
  55. package/esm/util/cursors.js +22 -25
  56. package/esm/util/cursors.js.map +1 -1
  57. package/esm/util/datamodel.js +8 -7
  58. package/esm/util/datamodel.js.map +1 -1
  59. package/esm/util/deep-equal.js +1 -2
  60. package/esm/util/deep-equal.js.map +1 -1
  61. package/esm/util/loader-map.js +6 -3
  62. package/esm/util/loader-map.js.map +1 -1
  63. package/esm/util/map-query.js +53 -30
  64. package/esm/util/map-query.js.map +1 -1
  65. package/esm/util/relation-map.js +6 -4
  66. package/esm/util/relation-map.js.map +1 -1
  67. package/esm/util/selections.js +14 -19
  68. package/esm/util/selections.js.map +1 -1
  69. package/jest.config.js +6 -0
  70. package/lib/field-builder.js +92 -61
  71. package/lib/field-builder.js.map +1 -1
  72. package/lib/generator.js +94 -94
  73. package/lib/generator.js.map +1 -1
  74. package/lib/global-types.js +4 -1
  75. package/lib/global-types.js.map +1 -1
  76. package/lib/index.js +76 -53
  77. package/lib/index.js.map +1 -1
  78. package/lib/model-loader.js +26 -21
  79. package/lib/model-loader.js.map +1 -1
  80. package/lib/node-ref.js +12 -10
  81. package/lib/node-ref.js.map +1 -1
  82. package/lib/object-ref.js +9 -5
  83. package/lib/object-ref.js.map +1 -1
  84. package/lib/prisma-field-builder.js +169 -124
  85. package/lib/prisma-field-builder.js.map +1 -1
  86. package/lib/schema-builder.js +76 -71
  87. package/lib/schema-builder.js.map +1 -1
  88. package/lib/types.js +6 -3
  89. package/lib/types.js.map +1 -1
  90. package/lib/util/cursors.js +41 -41
  91. package/lib/util/cursors.js.map +1 -1
  92. package/lib/util/datamodel.js +39 -30
  93. package/lib/util/datamodel.js.map +1 -1
  94. package/lib/util/deep-equal.js +8 -7
  95. package/lib/util/deep-equal.js.map +1 -1
  96. package/lib/util/loader-map.js +21 -15
  97. package/lib/util/loader-map.js.map +1 -1
  98. package/lib/util/map-query.js +89 -67
  99. package/lib/util/map-query.js.map +1 -1
  100. package/lib/util/relation-map.js +19 -12
  101. package/lib/util/relation-map.js.map +1 -1
  102. package/lib/util/selections.js +44 -48
  103. package/lib/util/selections.js.map +1 -1
  104. package/package.json +18 -17
  105. package/src/field-builder.ts +1 -1
  106. package/src/prisma-field-builder.ts +4 -4
  107. package/src/schema-builder.ts +1 -10
  108. package/tsconfig.json +7 -14
  109. package/tsconfig.type.json +10 -0
  110. package/tsconfig.type.tsbuildinfo +1 -0
  111. package/lib/field-builder.d.ts +0 -2
  112. package/lib/field-builder.d.ts.map +0 -1
  113. package/lib/generator.d.ts +0 -2
  114. package/lib/generator.d.ts.map +0 -1
  115. package/lib/global-types.d.ts +0 -70
  116. package/lib/global-types.d.ts.map +0 -1
  117. package/lib/index.d.ts +0 -14
  118. package/lib/index.d.ts.map +0 -1
  119. package/lib/model-loader.d.ts +0 -17
  120. package/lib/model-loader.d.ts.map +0 -1
  121. package/lib/node-ref.d.ts +0 -12
  122. package/lib/node-ref.d.ts.map +0 -1
  123. package/lib/object-ref.d.ts +0 -7
  124. package/lib/object-ref.d.ts.map +0 -1
  125. package/lib/prisma-field-builder.d.ts +0 -47
  126. package/lib/prisma-field-builder.d.ts.map +0 -1
  127. package/lib/schema-builder.d.ts +0 -2
  128. package/lib/schema-builder.d.ts.map +0 -1
  129. package/lib/types.d.ts +0 -174
  130. package/lib/types.d.ts.map +0 -1
  131. package/lib/util/cursors.d.ts +0 -57
  132. package/lib/util/cursors.d.ts.map +0 -1
  133. package/lib/util/datamodel.d.ts +0 -16
  134. package/lib/util/datamodel.d.ts.map +0 -1
  135. package/lib/util/deep-equal.d.ts +0 -2
  136. package/lib/util/deep-equal.d.ts.map +0 -1
  137. package/lib/util/loader-map.d.ts +0 -6
  138. package/lib/util/loader-map.d.ts.map +0 -1
  139. package/lib/util/map-query.d.ts +0 -6
  140. package/lib/util/map-query.d.ts.map +0 -1
  141. package/lib/util/relation-map.d.ts +0 -9
  142. package/lib/util/relation-map.d.ts.map +0 -1
  143. package/lib/util/selections.d.ts +0 -20
  144. package/lib/util/selections.d.ts.map +0 -1
package/esm/node-ref.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { abstractReturnShapeKey, brandWithType, typeBrandKey } from '@pothos/core';
2
2
  import { PrismaObjectRef } from './object-ref.js';
3
- export default class PrismaNodeRef extends PrismaObjectRef {
3
+ class PrismaNodeRef extends PrismaObjectRef {
4
4
  addBrand(value) {
5
5
  if (Array.isArray(value)) {
6
6
  value.forEach((val) => void brandWithType(val, this.name));
@@ -10,10 +10,8 @@ export default class PrismaNodeRef extends PrismaObjectRef {
10
10
  return value;
11
11
  }
12
12
  hasBrand(value) {
13
- return (typeof value === "object" &&
14
- value !== null &&
15
- typeBrandKey in value &&
16
- value[typeBrandKey] === this.name);
13
+ return typeof value === "object" && value !== null && typeBrandKey in value && value[typeBrandKey] === this.name;
17
14
  }
18
15
  }
16
+ export { PrismaNodeRef as default };
19
17
  //# sourceMappingURL=node-ref.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-ref.js","sourceRoot":"","sources":["../src/node-ref.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAI/C,MAAM,CAAC,OAAO,OAAO,aAAiD,SAAQ,eAG7E;IAGC,QAAQ,CACN,KAAQ;QAER,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,IAAa,CAAC,CAAC,CAAC;YAEpE,OAAO,KAAc,CAAC;SACvB;QAED,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,IAAa,CAAC,CAAC;QAEzC,OAAO,KAAc,CAAC;IACxB,CAAC;IAED,QAAQ,CAAC,KAAc;QACrB,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,KAAK,IAAI;YACd,YAAY,IAAI,KAAK;YACpB,KAAsC,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,IAAI,CACpE,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"sources":["../src/node-ref.ts"],"sourcesContent":["import { abstractReturnShapeKey, brandWithType, typeBrandKey } from '@pothos/core';\nimport { PrismaObjectRef } from './object-ref';\nimport { WithBrand } from './types';\nimport { PrismaModelTypes } from '.';\n\nexport default class PrismaNodeRef<Model extends PrismaModelTypes, T> extends PrismaObjectRef<\n Model,\n T\n> {\n [abstractReturnShapeKey]: WithBrand<T>;\n\n addBrand<V extends T | T[]>(\n value: V,\n ): V extends T[] ? { [K in keyof V]: WithBrand<V[K]> } : WithBrand<V> {\n if (Array.isArray(value)) {\n value.forEach((val) => void brandWithType(val, this.name as never));\n\n return value as never;\n }\n\n brandWithType(value, this.name as never);\n\n return value as never;\n }\n\n hasBrand(value: unknown) {\n return (\n typeof value === 'object' &&\n value !== null &&\n typeBrandKey in value &&\n (value as { [typeBrandKey]?: unknown })[typeBrandKey] === this.name\n );\n }\n}\n"],"names":["abstractReturnShapeKey","brandWithType","typeBrandKey","PrismaObjectRef","PrismaNodeRef","addBrand","value","Array","isArray","forEach","val","name","hasBrand"],"mappings":"AAAA,SAASA,sBAAsB,EAAEC,aAAa,EAAEC,YAAY,QAAQ,cAAc,CAAC;AACnF,SAASC,eAAe,QAAQ,cAAc,CAAC;AAIhC,MAAMC,aAAa,SAA4CD,eAAe;IAM3FE,QAAQ,CACNC,KAAQ,EAC4D;QACpE,IAAIC,KAAK,CAACC,OAAO,CAACF,KAAK,CAAC,EAAE;YACxBA,KAAK,CAACG,OAAO,CAAC,CAACC,GAAG,GAAK,KAAKT,aAAa,CAACS,GAAG,EAAE,IAAI,CAACC,IAAI,CAAU;YAAA,CAAC,CAAC;YAEpE,OAAOL,KAAK,CAAU;SACvB;QAEDL,aAAa,CAACK,KAAK,EAAE,IAAI,CAACK,IAAI,CAAU,CAAC;QAEzC,OAAOL,KAAK,CAAU;KACvB;IAEDM,QAAQ,CAACN,KAAc,EAAE;QACvB,OACE,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,KAAK,IAAI,IACdJ,YAAY,IAAII,KAAK,IACrB,AAACA,KAAK,AAAiC,CAACJ,YAAY,CAAC,KAAK,IAAI,CAACS,IAAI,CACnE;KACH;CACF;AA5BD,SAAqBP,aAAa,cA4BjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"object-ref.js","sourceRoot":"","sources":["../src/object-ref.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAElE,MAAM,OAAO,eAAwD,SAAQ,SAAY;CAExF"}
1
+ {"version":3,"sources":["../src/object-ref.ts"],"sourcesContent":["import { ObjectRef } from '@pothos/core';\nimport { PrismaModelTypes } from '.';\n\nexport const prismaModelKey = Symbol.for('Pothos.prismaModelKey');\n\nexport class PrismaObjectRef<Model extends PrismaModelTypes, T = {}> extends ObjectRef<T> {\n [prismaModelKey]: Model;\n}\n"],"names":["ObjectRef","prismaModelKey","Symbol","for","PrismaObjectRef"],"mappings":"AAAA,SAASA,SAAS,QAAQ,cAAc,CAAC;AAGzC,OAAO,MAAMC,cAAc,GAAGC,MAAM,CAACC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAElE,OAAO,MAAMC,eAAe,SAAiDJ,SAAS;CAErF"}
@@ -1,121 +1,35 @@
1
- import { RootFieldBuilder, } from '@pothos/core';
1
+ import { RootFieldBuilder } from '@pothos/core';
2
2
  import { prismaCursorConnectionQuery, wrapConnectionResult } from './util/cursors.js';
3
- import { getCursorFormatter, getCursorParser, getRefFromModel, getRelation, } from './util/datamodel.js';
3
+ import { getCursorFormatter, getCursorParser, getRefFromModel, getRelation } from './util/datamodel.js';
4
4
  // Workaround for FieldKind not being extended on Builder classes
5
5
  const RootBuilder = RootFieldBuilder;
6
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"]);
19
- this.relatedConnection = function relatedConnection(name, { maxSize, defaultSize, cursor, query, resolve, extensions, totalCount, ...options }, connectionOptions = {}, edgeOptions = {}) {
20
- var _a;
21
- const relationField = getRelation(this.model, this.builder, name);
22
- const ref = (_a = options.type) !== null && _a !== void 0 ? _a : getRefFromModel(relationField.type, this.builder);
23
- let typeName;
24
- const formatCursor = getCursorFormatter(relationField.type, this.builder, cursor);
25
- const parseCursor = getCursorParser(relationField.type, this.builder, cursor);
26
- const getQuery = (args, ctx) => ({
27
- ...(typeof query === "function" ? query(args, ctx) : query),
28
- ...prismaCursorConnectionQuery({
29
- parseCursor,
30
- maxSize,
31
- defaultSize,
32
- args,
33
- }),
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
- });
48
- const fieldRef = this.connection({
49
- ...options,
50
- extensions: {
51
- ...extensions,
52
- pothosPrismaSelect: relationSelect,
53
- pothosPrismaLoaded: (value) => value[name] !== undefined,
54
- pothosPrismaFallback: resolve &&
55
- ((q, parent, args, context, info) => Promise.resolve(resolve({
56
- ...q,
57
- ...(typeof query === "function" ? query(args, context) : query),
58
- }, parent, args, context, info)).then((result) => wrapConnectionResult(result, args, q.take, formatCursor))),
59
- },
60
- type: ref,
61
- resolve: (parent, args, context) => {
62
- var _a;
63
- const connectionQuery = getQuery(args, context);
64
- return wrapConnectionResult(parent[name], args, connectionQuery.take, formatCursor, (_a = parent._count) === null || _a === void 0 ? void 0 : _a[name]);
65
- },
66
- }, {
67
- ...connectionOptions,
68
- fields: totalCount
69
- ? (t) => {
70
- var _a, _b;
71
- return ({
72
- totalCount: t.int({
73
- nullable: false,
74
- extensions: {
75
- pothosPrismaParentSelect: { _count: { select: { [name]: true } } },
76
- },
77
- resolve: (parent, args, context) => parent.totalCount,
78
- }),
79
- ...(_b = (_a = connectionOptions).fields) === null || _b === void 0 ? void 0 : _b.call(_a, t),
80
- });
81
- }
82
- : connectionOptions.fields,
83
- extensions: {
84
- ...connectionOptions === null || connectionOptions === void 0 ? void 0 : connectionOptions.extensions,
85
- pothosPrismaIndirectInclude: {
86
- getType: () => {
87
- if (!typeName) {
88
- typeName = this.builder.configStore.getTypeConfig(ref).name;
89
- }
90
- return typeName;
91
- },
92
- path: [{ name: "edges" }, { name: "node" }],
93
- },
94
- },
95
- }, edgeOptions);
96
- return fieldRef;
97
- };
98
- this.model = model;
99
- this.prismaFieldMap = fieldMap;
100
- }
101
7
  relation(...allArgs) {
102
- var _a;
103
8
  const [name, options = {}] = allArgs;
104
9
  const relationField = getRelation(this.model, this.builder, name);
105
- const ref = (_a = options.type) !== null && _a !== void 0 ? _a : getRefFromModel(relationField.type, this.builder);
10
+ var _type;
11
+ const ref = (_type = options.type) !== null && _type !== void 0 ? _type : getRefFromModel(relationField.type, this.builder);
106
12
  const { query = {}, resolve, extensions, ...rest } = options;
107
- const relationSelect = (args, context, nestedQuery) => ({ select: { [name]: nestedQuery(query) } });
13
+ const relationSelect = (args, context, nestedQuery) => ({
14
+ select: {
15
+ [name]: nestedQuery(query)
16
+ }
17
+ });
108
18
  return this.field({
109
19
  ...rest,
110
- type: relationField.isList ? [ref] : ref,
20
+ type: relationField.isList ? [
21
+ ref
22
+ ] : ref,
111
23
  extensions: {
112
24
  ...extensions,
113
25
  pothosPrismaSelect: relationSelect,
114
26
  pothosPrismaLoaded: (value) => value[name] !== undefined,
115
- pothosPrismaFallback: resolve &&
116
- ((q, parent, args, context, info) => resolve({ ...q, ...(typeof query === "function" ? query(args, context) : query) }, parent, args, context, info)),
27
+ pothosPrismaFallback: resolve && ((q, parent, args, context, info) => resolve({
28
+ ...q,
29
+ ...typeof query === "function" ? query(args, context) : query
30
+ }, parent, args, context, info))
117
31
  },
118
- resolve: (parent) => parent[name],
32
+ resolve: (parent) => parent[name]
119
33
  });
120
34
  }
121
35
  relationCount(...allArgs) {
@@ -123,15 +37,20 @@ export class PrismaObjectFieldBuilder extends RootBuilder {
123
37
  const { resolve, ...rest } = options;
124
38
  const countSelect = {
125
39
  _count: {
126
- select: { [name]: true },
127
- },
40
+ select: {
41
+ [name]: true
42
+ }
43
+ }
128
44
  };
129
45
  return this.field({
130
46
  ...rest,
131
47
  type: "Int",
132
48
  nullable: false,
133
49
  select: countSelect,
134
- resolve: (parent, args, context, info) => { var _a; return (_a = parent._count) === null || _a === void 0 ? void 0 : _a[name]; },
50
+ resolve: (parent, args, context, info) => {
51
+ var ref;
52
+ return (ref = parent._count) === null || ref === void 0 ? void 0 : ref[name];
53
+ }
135
54
  });
136
55
  }
137
56
  variant(...allArgs) {
@@ -142,23 +61,23 @@ export class PrismaObjectFieldBuilder extends RootBuilder {
142
61
  ...options,
143
62
  type: ref,
144
63
  select: selfSelect,
145
- resolve: (parent, args, context, info) => parent,
64
+ resolve: (parent, args, context, info) => parent
146
65
  });
147
66
  }
148
67
  expose(...args) {
149
- var _a;
68
+ var ref;
150
69
  const [name, options = {}] = args;
151
70
  const typeConfig = this.builder.configStore.getTypeConfig(this.typename, "Object");
152
- const usingSelect = !!((_a = typeConfig.extensions) === null || _a === void 0 ? void 0 : _a.pothosPrismaSelect);
71
+ const usingSelect = !!((ref = typeConfig.extensions) === null || ref === void 0 ? void 0 : ref.pothosPrismaSelect);
153
72
  return this.exposeField(name, {
154
73
  ...options,
155
74
  extensions: {
156
75
  ...options.extensions,
157
76
  pothosPrismaVariant: name,
158
77
  pothosPrismaSelect: usingSelect && {
159
- [name]: true,
160
- },
161
- },
78
+ [name]: true
79
+ }
80
+ }
162
81
  });
163
82
  }
164
83
  createExpose(type) {
@@ -166,9 +85,124 @@ export class PrismaObjectFieldBuilder extends RootBuilder {
166
85
  const [name, options = {}] = args;
167
86
  return this.expose(name, {
168
87
  ...options,
169
- type,
88
+ type
89
+ });
90
+ };
91
+ }
92
+ constructor(name1, builder, model, fieldMap) {
93
+ super(name1, builder, "PrismaObject", "Object");
94
+ this.exposeBoolean = this.createExpose("Boolean");
95
+ this.exposeFloat = this.createExpose("Float");
96
+ this.exposeInt = this.createExpose("Int");
97
+ this.exposeID = this.createExpose("ID");
98
+ this.exposeString = this.createExpose("String");
99
+ this.exposeBooleanList = this.createExpose([
100
+ "Boolean"
101
+ ]);
102
+ this.exposeFloatList = this.createExpose([
103
+ "Float"
104
+ ]);
105
+ this.exposeIntList = this.createExpose([
106
+ "Int"
107
+ ]);
108
+ this.exposeIDList = this.createExpose([
109
+ "ID"
110
+ ]);
111
+ this.exposeStringList = this.createExpose([
112
+ "String"
113
+ ]);
114
+ this.relatedConnection = function relatedConnection(name, { maxSize, defaultSize, cursor, query, resolve, extensions, totalCount, ...options }, connectionOptions = {}, edgeOptions = {}) {
115
+ var ref2;
116
+ const relationField = getRelation(this.model, this.builder, name);
117
+ var _type;
118
+ const ref1 = (_type = options.type) !== null && _type !== void 0 ? _type : getRefFromModel(relationField.type, this.builder);
119
+ let typeName;
120
+ const formatCursor = getCursorFormatter(relationField.type, this.builder, cursor);
121
+ const parseCursor = getCursorParser(relationField.type, this.builder, cursor);
122
+ const getQuery = (args, ctx) => ({
123
+ ...typeof query === "function" ? query(args, ctx) : query,
124
+ ...prismaCursorConnectionQuery({
125
+ parseCursor,
126
+ maxSize,
127
+ defaultSize,
128
+ args
129
+ })
130
+ });
131
+ const relationSelect = (args, context, nestedQuery) => ({
132
+ select: {
133
+ [name]: nestedQuery({
134
+ ...typeof query === "function" ? query(args, context) : query,
135
+ ...prismaCursorConnectionQuery({
136
+ parseCursor,
137
+ maxSize,
138
+ defaultSize,
139
+ args
140
+ })
141
+ })
142
+ }
170
143
  });
144
+ const fieldRef = this.connection({
145
+ ...options,
146
+ extensions: {
147
+ ...extensions,
148
+ pothosPrismaSelect: relationSelect,
149
+ pothosPrismaLoaded: (value) => value[name] !== undefined,
150
+ pothosPrismaFallback: resolve && ((q, parent, args, context, info) => Promise.resolve(resolve({
151
+ ...q,
152
+ ...typeof query === "function" ? query(args, context) : query
153
+ }, parent, args, context, info)).then((result) => wrapConnectionResult(result, args, q.take, formatCursor)))
154
+ },
155
+ type: ref1,
156
+ resolve: (parent, args, context) => {
157
+ var ref;
158
+ const connectionQuery = getQuery(args, context);
159
+ return wrapConnectionResult(parent[name], args, connectionQuery.take, formatCursor, (ref = parent._count) === null || ref === void 0 ? void 0 : ref[name]);
160
+ }
161
+ }, {
162
+ ...connectionOptions,
163
+ fields: totalCount ? (t) => {
164
+ var _obj, ref;
165
+ return {
166
+ totalCount: t.int({
167
+ nullable: false,
168
+ extensions: {
169
+ pothosPrismaParentSelect: {
170
+ _count: {
171
+ select: {
172
+ [name]: true
173
+ }
174
+ }
175
+ }
176
+ },
177
+ resolve: (parent, args, context) => parent.totalCount
178
+ }),
179
+ ...(ref = (_obj = connectionOptions).fields) === null || ref === void 0 ? void 0 : ref.call(_obj, t)
180
+ };
181
+ } : connectionOptions.fields,
182
+ extensions: {
183
+ ...(ref2 = connectionOptions) === null || ref2 === void 0 ? void 0 : ref2.extensions,
184
+ pothosPrismaIndirectInclude: {
185
+ getType: () => {
186
+ if (!typeName) {
187
+ typeName = this.builder.configStore.getTypeConfig(ref1).name;
188
+ }
189
+ return typeName;
190
+ },
191
+ path: [
192
+ {
193
+ name: "edges"
194
+ },
195
+ {
196
+ name: "node"
197
+ }
198
+ ]
199
+ }
200
+ }
201
+ }, edgeOptions);
202
+ return fieldRef;
171
203
  };
204
+ this.model = model;
205
+ this.prismaFieldMap = fieldMap;
172
206
  }
173
207
  }
174
208
  //# 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":"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"}
1
+ {"version":3,"sources":["../src/prisma-field-builder.ts"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\nimport { GraphQLResolveInfo } from 'graphql';\nimport {\n CompatibleTypes,\n FieldKind,\n FieldRef,\n InputFieldMap,\n MaybePromise,\n NormalizeArgs,\n ObjectRef,\n PluginName,\n RootFieldBuilder,\n SchemaTypes,\n TypeParam,\n} from '@pothos/core';\nimport { PrismaObjectRef } from './object-ref';\nimport {\n PrismaModelTypes,\n RelatedConnectionOptions,\n RelatedFieldOptions,\n RelationCountOptions,\n ShapeFromConnection,\n VariantFieldOptions,\n} from './types';\nimport { prismaCursorConnectionQuery, wrapConnectionResult } from './util/cursors';\nimport {\n getCursorFormatter,\n getCursorParser,\n getRefFromModel,\n getRelation,\n} from './util/datamodel';\nimport { FieldMap } from './util/relation-map';\n\n// Workaround for FieldKind not being extended on Builder classes\nconst RootBuilder: {\n // eslint-disable-next-line @typescript-eslint/prefer-function-type\n new <Types extends SchemaTypes, Shape, Kind extends FieldKind>(\n name: string,\n builder: PothosSchemaTypes.SchemaBuilder<Types>,\n kind: FieldKind,\n graphqlKind: PothosSchemaTypes.PothosKindToGraphQLType[FieldKind],\n ): PothosSchemaTypes.RootFieldBuilder<Types, Shape, Kind>;\n} = RootFieldBuilder as never;\n\nexport class PrismaObjectFieldBuilder<\n Types extends SchemaTypes,\n Model extends PrismaModelTypes,\n NeedsResolve extends boolean,\n Shape extends object = Model['Shape'],\n> extends RootBuilder<Types, Shape, 'PrismaObject'> {\n model: string;\n prismaFieldMap: FieldMap;\n\n exposeBoolean = this.createExpose('Boolean');\n exposeFloat = this.createExpose('Float');\n exposeInt = this.createExpose('Int');\n exposeID = this.createExpose('ID');\n exposeString = this.createExpose('String');\n exposeBooleanList = this.createExpose(['Boolean']);\n exposeFloatList = this.createExpose(['Float']);\n exposeIntList = this.createExpose(['Int']);\n exposeIDList = this.createExpose(['ID']);\n exposeStringList = this.createExpose(['String']);\n\n relatedConnection: 'relay' extends PluginName\n ? <\n Field extends Model['ListRelations'],\n Nullable extends boolean,\n Args extends InputFieldMap,\n ResolveReturnShape,\n >(\n ...args: NormalizeArgs<\n [\n field: Field,\n options: RelatedConnectionOptions<Types, Model, Field, Nullable, Args, NeedsResolve>,\n connectionOptions?: PothosSchemaTypes.ConnectionObjectOptions<\n Types,\n ObjectRef<Shape>,\n false,\n false,\n ResolveReturnShape\n >,\n edgeOptions?: PothosSchemaTypes.ConnectionEdgeObjectOptions<\n Types,\n ObjectRef<Shape>,\n false,\n ResolveReturnShape\n >,\n ]\n >\n ) => FieldRef<\n ShapeFromConnection<PothosSchemaTypes.ConnectionShapeHelper<Types, Shape, Nullable>>\n >\n : '@pothos/plugin-relay is required to use this method' = function relatedConnection(\n this: PrismaObjectFieldBuilder<SchemaTypes, Model, boolean>,\n name: string,\n {\n maxSize,\n defaultSize,\n cursor,\n query,\n resolve,\n extensions,\n totalCount,\n ...options\n }: {\n type?: ObjectRef<unknown, unknown>;\n totalCount?: boolean;\n maxSize?: number;\n defaultSize?: number;\n cursor: string;\n extensions: {};\n query: ((args: {}, ctx: {}) => {}) | {};\n resolve: (query: {}, parent: unknown, args: {}, ctx: {}, info: {}) => MaybePromise<{}[]>;\n },\n connectionOptions = {},\n edgeOptions = {},\n ) {\n const relationField = getRelation(this.model, this.builder, name);\n const ref = options.type ?? getRefFromModel(relationField.type, this.builder);\n let typeName: string | undefined;\n\n const formatCursor = getCursorFormatter(relationField.type, this.builder, cursor);\n const parseCursor = getCursorParser(relationField.type, this.builder, cursor);\n\n const getQuery = (args: PothosSchemaTypes.DefaultConnectionArguments, ctx: {}) => ({\n ...((typeof query === 'function' ? query(args, ctx) : query) as {}),\n ...prismaCursorConnectionQuery({\n parseCursor,\n maxSize,\n defaultSize,\n args,\n }),\n });\n\n const relationSelect = (\n args: object,\n context: object,\n nestedQuery: (query: unknown) => unknown,\n ) => ({\n select: {\n [name]: nestedQuery({\n ...((typeof query === 'function' ? query(args, context) : query) as {}),\n ...prismaCursorConnectionQuery({\n parseCursor,\n maxSize,\n defaultSize,\n args,\n }),\n }),\n },\n });\n\n const fieldRef = (\n this as unknown as {\n connection: (...args: unknown[]) => FieldRef<unknown>;\n }\n ).connection(\n {\n ...options,\n extensions: {\n ...extensions,\n pothosPrismaSelect: relationSelect,\n pothosPrismaLoaded: (value: Record<string, unknown>) => value[name] !== undefined,\n pothosPrismaFallback:\n resolve &&\n ((\n q: { take: number },\n parent: unknown,\n args: PothosSchemaTypes.DefaultConnectionArguments,\n context: {},\n info: GraphQLResolveInfo,\n ) =>\n Promise.resolve(\n resolve(\n {\n ...q,\n ...(typeof query === 'function' ? query(args, context) : query),\n } as never,\n parent,\n args,\n context,\n info,\n ),\n ).then((result) => wrapConnectionResult(result, args, q.take, formatCursor))),\n },\n type: ref,\n resolve: (\n parent: unknown,\n args: PothosSchemaTypes.DefaultConnectionArguments,\n context: {},\n ) => {\n const connectionQuery = getQuery(args, context);\n\n return wrapConnectionResult(\n (parent as Record<string, never>)[name],\n args,\n connectionQuery.take,\n formatCursor,\n (parent as { _count?: Record<string, number> })._count?.[name],\n );\n },\n },\n {\n ...connectionOptions,\n fields: totalCount\n ? (t: PothosSchemaTypes.ObjectFieldBuilder<SchemaTypes, { totalCount?: number }>) => ({\n totalCount: t.int({\n nullable: false,\n extensions: {\n pothosPrismaParentSelect: { _count: { select: { [name]: true } } },\n },\n resolve: (parent, args, context) => parent.totalCount,\n }),\n ...(connectionOptions as { fields?: (t: unknown) => {} }).fields?.(t),\n })\n : (connectionOptions as { fields: undefined }).fields,\n extensions: {\n ...(connectionOptions as Record<string, {}> | undefined)?.extensions,\n pothosPrismaIndirectInclude: {\n getType: () => {\n if (!typeName) {\n typeName = this.builder.configStore.getTypeConfig(ref).name;\n }\n return typeName;\n },\n path: [{ name: 'edges' }, { name: 'node' }],\n },\n },\n },\n edgeOptions,\n );\n\n return fieldRef;\n } as never;\n\n constructor(\n name: string,\n builder: PothosSchemaTypes.SchemaBuilder<Types>,\n model: string,\n fieldMap: FieldMap,\n ) {\n super(name, builder, 'PrismaObject', 'Object');\n\n this.model = model;\n this.prismaFieldMap = fieldMap;\n }\n\n relation<\n Field extends Model['Fields'],\n Nullable extends boolean,\n Args extends InputFieldMap,\n ResolveReturnShape,\n >(\n ...allArgs: NormalizeArgs<\n [\n name: Field,\n options?: RelatedFieldOptions<\n Types,\n Model,\n Field,\n Nullable,\n Args,\n ResolveReturnShape,\n NeedsResolve,\n Shape\n >,\n ]\n >\n ): FieldRef<Model['Relations'][Field]['Shape'], 'Object'> {\n const [name, options = {} as never] = allArgs;\n const relationField = getRelation(this.model, this.builder, name);\n const ref = options.type ?? getRefFromModel(relationField.type, this.builder);\n\n const { query = {}, resolve, extensions, ...rest } = options;\n\n const relationSelect = (\n args: object,\n context: object,\n nestedQuery: (query: unknown) => unknown,\n ) => ({ select: { [name]: nestedQuery(query) } });\n\n return this.field({\n ...(rest as {}),\n type: relationField.isList ? [ref] : ref,\n extensions: {\n ...extensions,\n pothosPrismaSelect: relationSelect as never,\n pothosPrismaLoaded: (value: Record<string, unknown>) => value[name] !== undefined,\n pothosPrismaFallback:\n resolve &&\n ((q: {}, parent: Shape, args: {}, context: {}, info: GraphQLResolveInfo) =>\n resolve(\n { ...q, ...(typeof query === 'function' ? query(args, context) : query) } as never,\n parent,\n args as never,\n context,\n info,\n )),\n },\n resolve: (parent) => (parent as Record<string, never>)[name],\n }) as FieldRef<Model['Relations'][Field]['Shape'], 'Object'>;\n }\n\n relationCount<Field extends Model['Fields']>(\n ...allArgs: NormalizeArgs<\n [name: Field, options?: RelationCountOptions<Types, Shape, NeedsResolve>]\n >\n ): FieldRef<number, 'Object'> {\n const [name, options = {} as never] = allArgs;\n\n const { resolve, ...rest } = options;\n\n const countSelect = {\n _count: {\n select: { [name]: true },\n },\n };\n\n return this.field({\n ...(rest as {}),\n type: 'Int',\n nullable: false,\n select: countSelect as never,\n resolve: (parent, args, context, info) =>\n (parent as unknown as { _count: Record<string, never> })._count?.[name],\n }) as FieldRef<number, 'Object'>;\n }\n\n variant<Variant extends Model['Name'] | PrismaObjectRef<Model>>(\n ...allArgs: NormalizeArgs<\n [\n variant: Variant,\n options?: VariantFieldOptions<\n Types,\n Model,\n Variant extends PrismaObjectRef<Model> ? Variant : PrismaObjectRef<Model>\n >,\n ]\n >\n ): FieldRef<Model['Shape'], 'Object'> {\n const [variant, options = {} as never] = allArgs;\n const ref: PrismaObjectRef<PrismaModelTypes> =\n typeof variant === 'string' ? getRefFromModel(variant, this.builder) : variant;\n\n const selfSelect = (args: object, context: object, nestedQuery: (query: unknown) => unknown) =>\n nestedQuery({});\n\n return this.field({\n ...(options as {}),\n type: ref,\n select: selfSelect as never,\n resolve: (parent, args, context, info) => parent as never,\n }) as FieldRef<Model['Shape'], 'Object'>;\n }\n\n expose<\n Type extends TypeParam<Types>,\n Nullable extends boolean,\n ResolveReturnShape,\n Name extends CompatibleTypes<Types, Model['Shape'], Type, Nullable>,\n >(\n ...args: NormalizeArgs<\n [\n name: Name,\n options?: Omit<\n PothosSchemaTypes.ObjectFieldOptions<\n Types,\n Shape,\n Type,\n Nullable,\n {},\n ResolveReturnShape\n >,\n 'resolve' | 'select'\n >,\n ]\n >\n ) {\n const [name, options = {} as never] = args;\n\n const typeConfig = this.builder.configStore.getTypeConfig(this.typename, 'Object');\n const usingSelect = !!typeConfig.extensions?.pothosPrismaSelect;\n\n return this.exposeField(name as never, {\n ...options,\n extensions: {\n ...options.extensions,\n pothosPrismaVariant: name,\n pothosPrismaSelect: usingSelect && {\n [name]: true,\n },\n },\n });\n }\n\n private createExpose<Type extends TypeParam<Types>>(type: Type) {\n return <\n Nullable extends boolean,\n ResolveReturnShape,\n Name extends CompatibleTypes<Types, Model['Shape'], Type, Nullable>,\n >(\n ...args: NormalizeArgs<\n [\n name: Name,\n options?: Omit<\n PothosSchemaTypes.ObjectFieldOptions<\n Types,\n Shape,\n Type,\n Nullable,\n {},\n ResolveReturnShape\n >,\n 'resolve' | 'type' | 'select'\n >,\n ]\n >\n ) => {\n const [name, options = {} as never] = args;\n\n return this.expose(name as never, {\n ...options,\n type,\n });\n };\n }\n}\n"],"names":["RootFieldBuilder","prismaCursorConnectionQuery","wrapConnectionResult","getCursorFormatter","getCursorParser","getRefFromModel","getRelation","RootBuilder","PrismaObjectFieldBuilder","relation","allArgs","name","options","relationField","model","builder","ref","type","query","resolve","extensions","rest","relationSelect","args","context","nestedQuery","select","field","isList","pothosPrismaSelect","pothosPrismaLoaded","value","undefined","pothosPrismaFallback","q","parent","info","relationCount","countSelect","_count","nullable","variant","selfSelect","expose","typeConfig","configStore","getTypeConfig","typename","usingSelect","exposeField","pothosPrismaVariant","createExpose","constructor","fieldMap","exposeBoolean","exposeFloat","exposeInt","exposeID","exposeString","exposeBooleanList","exposeFloatList","exposeIntList","exposeIDList","exposeStringList","relatedConnection","maxSize","defaultSize","cursor","totalCount","connectionOptions","edgeOptions","typeName","formatCursor","parseCursor","getQuery","ctx","fieldRef","connection","Promise","then","result","take","connectionQuery","fields","t","int","pothosPrismaParentSelect","pothosPrismaIndirectInclude","getType","path","prismaFieldMap"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import './global-types.js';
2
- import SchemaBuilder, { brandWithType, } from '@pothos/core';
2
+ import SchemaBuilder, { brandWithType } from '@pothos/core';
3
3
  import { PrismaObjectFieldBuilder } from './field-builder.js';
4
4
  import { ModelLoader } from './model-loader.js';
5
5
  import PrismaNodeRef from './node-ref.js';
@@ -8,9 +8,9 @@ import { queryFromInfo } from './util/map-query.js';
8
8
  import { getRelationMap } from './util/relation-map.js';
9
9
  const schemaBuilderProto = SchemaBuilder.prototype;
10
10
  schemaBuilderProto.prismaObject = function prismaObject(type, { fields, findUnique, ...options }) {
11
- var _a, _b;
12
11
  const ref = options.variant ? this.objectRef(options.variant) : getRefFromModel(type, this);
13
- const name = (_b = (_a = options.variant) !== null && _a !== void 0 ? _a : options.name) !== null && _b !== void 0 ? _b : type;
12
+ var _variant, ref1;
13
+ const name = (ref1 = (_variant = options.variant) !== null && _variant !== void 0 ? _variant : options.name) !== null && ref1 !== void 0 ? ref1 : type;
14
14
  const fieldMap = getRelationMap(this.options.prisma.client).get(type);
15
15
  ref.name = name;
16
16
  this.objectType(ref, {
@@ -21,53 +21,56 @@ schemaBuilderProto.prismaObject = function prismaObject(type, { fields, findUniq
21
21
  pothosPrismaModel: type,
22
22
  pothosPrismaFieldMap: fieldMap,
23
23
  pothosPrismaSelect: options.select,
24
- pothosPrismaLoader: ModelLoader.forRef(type, findUnique ||
25
- (() => {
26
- throw new Error(`Missing findUnique for ${ref.name}`);
27
- }), this),
24
+ pothosPrismaLoader: ModelLoader.forRef(type, findUnique || (() => {
25
+ throw new Error(`Missing findUnique for ${ref.name}`);
26
+ }), this)
28
27
  },
29
28
  name,
30
- fields: fields
31
- ? () => fields(new PrismaObjectFieldBuilder(name, this, type, getRelationMap(this.options.prisma.client).get(type)))
32
- : undefined,
29
+ fields: fields ? () => fields(new PrismaObjectFieldBuilder(name, this, type, getRelationMap(this.options.prisma.client).get(type)))
30
+ : undefined
33
31
  });
34
32
  return ref;
35
33
  };
36
34
  schemaBuilderProto.prismaNode = function prismaNode(type, { findUnique, name, variant, ...options }) {
37
- var _a, _b, _c;
38
- const interfaceRef = (_a = this.nodeInterfaceRef) === null || _a === void 0 ? void 0 : _a.call(this);
35
+ var _obj, ref;
36
+ const interfaceRef = (ref = (_obj = this).nodeInterfaceRef) === null || ref === void 0 ? void 0 : ref.call(_obj);
39
37
  if (!interfaceRef) {
40
38
  throw new TypeError("builder.prismaNode requires @pothos/plugin-relay to be installed");
41
39
  }
42
- const typeName = (_b = variant !== null && variant !== void 0 ? variant : name) !== null && _b !== void 0 ? _b : type;
40
+ var ref2;
41
+ const typeName = (ref2 = variant !== null && variant !== void 0 ? variant : name) !== null && ref2 !== void 0 ? ref2 : type;
43
42
  const delegate = getDelegateFromModel(this.options.prisma.client, type);
44
43
  const nodeRef = new PrismaNodeRef(typeName);
44
+ var _interfaces;
45
45
  const extendedOptions = {
46
46
  ...options,
47
47
  variant,
48
- interfaces: [interfaceRef, ...((_c = options.interfaces) !== null && _c !== void 0 ? _c : [])],
48
+ interfaces: [
49
+ interfaceRef,
50
+ ...(_interfaces = options.interfaces) !== null && _interfaces !== void 0 ? _interfaces : []
51
+ ],
49
52
  findUnique: (parent, context) => findUnique(options.id.resolve(parent, context), context),
50
53
  loadWithoutCache: async (id, context, info) => {
51
54
  const query = queryFromInfo(context, info, typeName);
52
55
  const record = await delegate.findUnique({
53
56
  ...query,
54
57
  rejectOnNotFound: true,
55
- where: findUnique(id, context),
58
+ where: findUnique(id, context)
56
59
  });
57
60
  brandWithType(record, typeName);
58
61
  return record;
59
- },
62
+ }
60
63
  };
61
- const ref = this.prismaObject(type, extendedOptions);
62
- this.configStore.onTypeConfig(ref, (nodeConfig) => {
63
- this.objectField(ref, "id", (t) => t.globalID({
64
+ const ref3 = this.prismaObject(type, extendedOptions);
65
+ this.configStore.onTypeConfig(ref3, (nodeConfig) => {
66
+ this.objectField(ref3, "id", (t) => t.globalID({
64
67
  ...options.id,
65
68
  nullable: false,
66
69
  args: {},
67
70
  resolve: async (parent, args, context, info) => ({
68
71
  type: nodeConfig.name,
69
- id: await options.id.resolve(parent, context),
70
- }),
72
+ id: await options.id.resolve(parent, context)
73
+ })
71
74
  }));
72
75
  });
73
76
  this.configStore.associateRefWithName(nodeRef, typeName);
@@ -1 +1 @@
1
- {"version":3,"file":"schema-builder.js","sourceRoot":"","sources":["../src/schema-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../src/schema-builder.ts"],"sourcesContent":["import './global-types';\nimport { GraphQLResolveInfo } from 'graphql';\nimport SchemaBuilder, {\n brandWithType,\n FieldRef,\n InterfaceRef,\n OutputType,\n SchemaTypes,\n} from '@pothos/core';\nimport { PrismaObjectFieldBuilder } from './field-builder';\nimport { ModelLoader } from './model-loader';\nimport PrismaNodeRef from './node-ref';\nimport { PrismaModelTypes, PrismaNodeOptions } from './types';\nimport { getDelegateFromModel, getRefFromModel } from './util/datamodel';\nimport { queryFromInfo } from './util/map-query';\nimport { getRelationMap } from './util/relation-map';\n\nconst schemaBuilderProto = SchemaBuilder.prototype as PothosSchemaTypes.SchemaBuilder<SchemaTypes>;\n\nschemaBuilderProto.prismaObject = function prismaObject(type, { fields, findUnique, ...options }) {\n const ref = options.variant ? this.objectRef(options.variant) : getRefFromModel(type, this);\n const name = options.variant ?? options.name ?? type;\n const fieldMap = getRelationMap(this.options.prisma.client).get(type)!;\n\n ref.name = name;\n\n this.objectType(ref, {\n ...(options as {}),\n extensions: {\n ...options.extensions,\n pothosPrismaInclude: options.include,\n pothosPrismaModel: type,\n pothosPrismaFieldMap: fieldMap,\n pothosPrismaSelect: options.select,\n pothosPrismaLoader: ModelLoader.forRef(\n type,\n (findUnique as never) ||\n (() => {\n throw new Error(`Missing findUnique for ${ref.name}`);\n }),\n this,\n ),\n },\n name,\n fields: fields\n ? () =>\n fields(\n new PrismaObjectFieldBuilder(\n name,\n this,\n type,\n getRelationMap(this.options.prisma.client).get(type)!,\n ),\n )\n : undefined,\n });\n\n return ref as never;\n};\n\nschemaBuilderProto.prismaNode = function prismaNode(\n this: PothosSchemaTypes.SchemaBuilder<SchemaTypes> & {\n nodeInterfaceRef?: () => InterfaceRef<unknown>;\n },\n type: keyof SchemaTypes['PrismaTypes'],\n {\n findUnique,\n name,\n variant,\n ...options\n }: PrismaNodeOptions<SchemaTypes, PrismaModelTypes, [], never, {}, {}>,\n) {\n const interfaceRef = this.nodeInterfaceRef?.();\n\n if (!interfaceRef) {\n throw new TypeError('builder.prismaNode requires @pothos/plugin-relay to be installed');\n }\n\n const typeName = variant ?? name ?? type;\n const delegate = getDelegateFromModel(this.options.prisma.client, type);\n const nodeRef = new PrismaNodeRef(typeName);\n const extendedOptions = {\n ...options,\n variant,\n interfaces: [interfaceRef, ...(options.interfaces ?? [])],\n findUnique: (parent: unknown, context: {}) =>\n findUnique(options.id.resolve(parent as never, context) as string, context),\n loadWithoutCache: async (\n id: string,\n context: SchemaTypes['Context'],\n info: GraphQLResolveInfo,\n ) => {\n const query = queryFromInfo(context, info, typeName);\n const record = await delegate.findUnique({\n ...query,\n rejectOnNotFound: true,\n where: findUnique(id, context),\n } as never);\n\n brandWithType(record, typeName as OutputType<SchemaTypes>);\n\n return record;\n },\n };\n\n const ref = this.prismaObject(type, extendedOptions as never);\n\n this.configStore.onTypeConfig(ref, (nodeConfig) => {\n this.objectField(ref, 'id', (t) =>\n (\n t as unknown as {\n globalID: (options: Record<string, unknown>) => FieldRef<unknown>;\n }\n ).globalID({\n ...options.id,\n nullable: false,\n args: {},\n resolve: async (\n parent: never,\n args: object,\n context: object,\n info: GraphQLResolveInfo,\n ) => ({\n type: nodeConfig.name,\n id: await options.id.resolve(parent, context),\n }),\n }),\n );\n });\n\n this.configStore.associateRefWithName(nodeRef, typeName);\n\n return nodeRef;\n} as never;\n"],"names":["SchemaBuilder","brandWithType","PrismaObjectFieldBuilder","ModelLoader","PrismaNodeRef","getDelegateFromModel","getRefFromModel","queryFromInfo","getRelationMap","schemaBuilderProto","prototype","prismaObject","type","fields","findUnique","options","ref","variant","objectRef","name","fieldMap","prisma","client","get","objectType","extensions","pothosPrismaInclude","include","pothosPrismaModel","pothosPrismaFieldMap","pothosPrismaSelect","select","pothosPrismaLoader","forRef","Error","undefined","prismaNode","interfaceRef","nodeInterfaceRef","TypeError","typeName","delegate","nodeRef","extendedOptions","interfaces","parent","context","id","resolve","loadWithoutCache","info","query","record","rejectOnNotFound","where","configStore","onTypeConfig","nodeConfig","objectField","t","globalID","nullable","args","associateRefWithName"],"mappings":"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"}
package/esm/types.js CHANGED
@@ -1,3 +1,2 @@
1
- import { typeBrandKey, } from '@pothos/core';
2
1
  export const prismaModelName = Symbol.for("Pothos.prismaModelName");
3
2
  //# sourceMappingURL=types.js.map
package/esm/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,OAAO,EAkBL,YAAY,GAEb,MAAM,cAAc,CAAC;AAQtB,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC"}
1
+ {"version":3,"sources":["../src/types.ts"],"sourcesContent":["import { GraphQLResolveInfo } from 'graphql';\nimport {\n FieldKind,\n FieldMap,\n FieldNullability,\n FieldOptionsFromKind,\n InputFieldMap,\n InputFieldsFromShape,\n InputShapeFromFields,\n InterfaceParam,\n ListResolveValue,\n MaybePromise,\n Normalize,\n ObjectRef,\n OutputShape,\n OutputType,\n SchemaTypes,\n ShapeFromTypeParam,\n ShapeWithNullability,\n typeBrandKey,\n TypeParam,\n} from '@pothos/core';\nimport { PrismaObjectFieldBuilder } from './field-builder';\nimport { PrismaObjectRef } from './object-ref';\n\nexport interface PrismaDelegate {\n findUnique: (...args: any[]) => Promise<unknown>;\n}\n\nexport const prismaModelName = Symbol.for('Pothos.prismaModelName');\n\nexport interface PrismaModelTypes {\n Name: string;\n Shape: {};\n Include: unknown;\n Select: unknown;\n Where: {};\n Fields: string;\n ListRelations: string;\n RelationName: string;\n Relations: Record<\n string,\n {\n Shape: unknown;\n Types: PrismaModelTypes;\n }\n >;\n}\n\ntype ExtractModel<Types extends SchemaTypes, ParentShape> = ParentShape extends {\n [prismaModelName]?: infer Name;\n}\n ? Types['PrismaTypes'][Name & keyof Types['PrismaTypes']] extends infer Model\n ? Model extends PrismaModelTypes\n ? Model\n : never\n : never\n : never;\n\nexport type PrismaObjectFieldOptions<\n Types extends SchemaTypes,\n ParentShape,\n Type extends TypeParam<Types>,\n Nullable extends FieldNullability<Type>,\n Args extends InputFieldMap,\n Select,\n ResolveReturnShape,\n> = PothosSchemaTypes.ObjectFieldOptions<\n Types,\n unknown extends Select\n ? ParentShape\n : ParentShape &\n ShapeFromSelection<\n ExtractModel<Types, ParentShape>,\n { select: Select extends (...args: any[]) => infer S ? S : Select }\n >,\n Type,\n Nullable,\n Args,\n ResolveReturnShape\n> & {\n select?: Select &\n (\n | ExtractModel<Types, ParentShape>['Select']\n | ((\n args: InputShapeFromFields<Args>,\n ctx: Types['Context'],\n ) => ExtractModel<Types, ParentShape>['Select'])\n );\n};\n\ntype PrismaObjectFieldsShape<\n Types extends SchemaTypes,\n Model extends PrismaModelTypes,\n NeedsResolve extends boolean,\n Shape extends object,\n Select,\n> = Model['Select'] extends Select\n ? (t: PrismaObjectFieldBuilder<Types, Model, NeedsResolve, Shape>) => FieldMap\n : (t: PrismaSelectionFieldBuilder<Types, Model, Shape>) => FieldMap;\n\ntype PrismaSelectionFieldBuilder<\n Types extends SchemaTypes,\n Model extends PrismaModelTypes,\n Shape extends object,\n> = PrismaObjectFieldBuilder<Types, Model, false, Shape>;\n\ninterface BaseSelection {\n include?: unknown;\n select?: unknown;\n}\n\nexport type SelectedKeys<T> = { [K in keyof T]: T[K] extends false ? never : K }[keyof T];\n\nexport type ShapeFromSelection<Model extends PrismaModelTypes, Selection> = Normalize<\n Selection extends BaseSelection\n ? unknown extends Selection['select']\n ? Model['Shape'] & RelationShapeFromInclude<Model, Selection['include']>\n : Pick<Model['Shape'], SelectedKeys<Selection['select']>> &\n RelationShapeFromInclude<Model, Selection['select']>\n : Model['Shape']\n>;\n\ntype RelationShapeFromInclude<Model extends PrismaModelTypes, Include> = Normalize<{\n [K in SelectedKeys<Include> as K extends Model['RelationName']\n ? K\n : never]: K extends keyof Model['Relations']\n ? Model['Relations'][K]['Shape'] extends unknown[]\n ? ShapeFromSelection<Model['Relations'][K]['Types'], Include[K]>[]\n : ShapeFromSelection<Model['Relations'][K]['Types'], Include[K]>\n : unknown;\n}>;\n\nexport type PrismaObjectTypeOptions<\n Types extends SchemaTypes,\n Model extends PrismaModelTypes,\n Interfaces extends InterfaceParam<Types>[],\n FindUnique,\n Include,\n Select,\n Shape extends object,\n> = NameOrVariant &\n Omit<\n | PothosSchemaTypes.ObjectTypeOptions<Types, Shape>\n | PothosSchemaTypes.ObjectTypeWithInterfaceOptions<Types, Shape, Interfaces>,\n 'fields'\n > & {\n fields?: PrismaObjectFieldsShape<\n Types,\n Model,\n FindUnique extends null ? true : false,\n Shape & (FindUnique extends null ? {} : { [prismaModelName]?: Model['Name'] }),\n Select\n >;\n } & (\n | {\n include?: Include & Model['Include'];\n select?: never;\n findUnique: FindUnique &\n (((parent: Shape, context: Types['Context']) => Model['Where']) | null);\n }\n | {\n select: Model['Select'] & Select;\n include?: never;\n findUnique: (parent: Shape, context: Types['Context']) => Model['Where'];\n }\n );\n\ntype NameOrVariant =\n | {\n name?: never;\n variant?: string;\n }\n | {\n name?: string;\n variant?: never;\n };\n\nexport type PrismaNodeOptions<\n Types extends SchemaTypes,\n Model extends PrismaModelTypes,\n Interfaces extends InterfaceParam<Types>[],\n Include,\n Select,\n Shape extends object,\n> = NameOrVariant &\n Omit<\n | PothosSchemaTypes.ObjectTypeOptions<Types, Shape>\n | PothosSchemaTypes.ObjectTypeWithInterfaceOptions<Types, Shape, Interfaces>,\n 'fields' | 'isTypeOf'\n > & {\n id: Omit<\n FieldOptionsFromKind<\n Types,\n Shape,\n 'ID',\n false,\n {},\n 'Object',\n OutputShape<Types, 'ID'>,\n MaybePromise<OutputShape<Types, 'ID'>>\n >,\n 'args' | 'nullable' | 'resolve' | 'type'\n > & {\n resolve: (parent: Shape, context: Types['Context']) => MaybePromise<OutputShape<Types, 'ID'>>;\n };\n fields?: PrismaObjectFieldsShape<\n Types,\n Model,\n false,\n Shape & { [prismaModelName]?: Model['Name'] },\n Select\n >;\n findUnique: (id: string, context: Types['Context']) => Model['Where'];\n } & (\n | {\n include?: Include & Model['Include'];\n select?: never;\n }\n | {\n select: Model['Select'] & Select;\n include?: never;\n }\n );\n\ntype QueryForField<\n Types extends SchemaTypes,\n Args extends InputFieldMap,\n Include,\n> = Include extends { where?: unknown }\n ?\n | Omit<Include, 'include' | 'select'>\n | ((\n args: InputShapeFromFields<Args>,\n ctx: Types['Context'],\n ) => Omit<Include, 'include' | 'select'>)\n : never;\n\ntype QueryFromRelation<\n Model extends PrismaModelTypes,\n Field extends keyof Model['Include'],\n> = Model['Include'][Field] extends infer Include\n ? Include extends {\n include?: infer I;\n select?: infer S;\n }\n ? { include?: NonNullable<I>; select?: NonNullable<S> }\n : never\n : never;\n\ntype CursorFromRelation<\n Model extends PrismaModelTypes,\n Field extends Model['ListRelations'],\n> = Field extends keyof Model['Include']\n ? Model['Include'][Field] extends infer Include\n ? Include extends { cursor?: infer T }\n ? keyof T\n : never\n : never\n : never;\n\ntype RefForRelation<\n Model extends PrismaModelTypes,\n Field extends keyof Model['Relations'],\n> = Model['Relations'][Field] extends unknown[]\n ? [ObjectRef<Model['Relations'][Field]>]\n : ObjectRef<Model['Relations'][Field]>;\n\nexport type RelatedFieldOptions<\n Types extends SchemaTypes,\n Model extends PrismaModelTypes,\n Field extends keyof Model['Relations'],\n Nullable extends boolean,\n Args extends InputFieldMap,\n ResolveReturnShape,\n NeedsResolve extends boolean,\n Shape,\n> = Omit<\n PothosSchemaTypes.ObjectFieldOptions<\n Types,\n Shape,\n RefForRelation<Model, Field>,\n Nullable,\n Args,\n ResolveReturnShape\n >,\n 'resolve' | 'type'\n> &\n (NeedsResolve extends false\n ? {\n resolve?: (\n query: QueryFromRelation<Model, Field & keyof Model['Include']>,\n parent: Shape,\n args: InputShapeFromFields<Args>,\n context: Types['Context'],\n info: GraphQLResolveInfo,\n ) => MaybePromise<\n ShapeWithNullability<Types, Model['Relations'][Field]['Shape'], Nullable>\n >;\n }\n : {\n resolve: (\n query: QueryFromRelation<Model, Field & keyof Model['Include']>,\n parent: Shape,\n args: InputShapeFromFields<Args>,\n context: Types['Context'],\n info: GraphQLResolveInfo,\n ) => MaybePromise<\n ShapeWithNullability<Types, Model['Relations'][Field]['Shape'], Nullable>\n >;\n }) & {\n type?: PrismaObjectRef<Model['Relations'][Field]['Types']>;\n query?: QueryForField<Types, Args, Model['Include'][Field & keyof Model['Include']]>;\n };\n\nexport type VariantFieldOptions<\n Types extends SchemaTypes,\n Model extends PrismaModelTypes,\n Variant extends PrismaObjectRef<Model>,\n> = Omit<\n PothosSchemaTypes.ObjectFieldOptions<Types, Model['Shape'], Variant, false, {}, Model['Shape']>,\n 'resolve' | 'type'\n>;\n\nexport type RelationCountOptions<\n Types extends SchemaTypes,\n Shape,\n NeedsResolve extends boolean,\n> = Omit<\n PothosSchemaTypes.ObjectFieldOptions<Types, Shape, 'Int', false, {}, number>,\n 'resolve' | 'type'\n> &\n (NeedsResolve extends false\n ? {\n resolve?: (\n parent: Shape,\n args: {},\n context: Types['Context'],\n info: GraphQLResolveInfo,\n ) => MaybePromise<number>;\n }\n : {\n resolve: (\n parent: Shape,\n args: {},\n context: Types['Context'],\n info: GraphQLResolveInfo,\n ) => MaybePromise<number>;\n });\n\nexport type PrismaFieldOptions<\n Types extends SchemaTypes,\n ParentShape,\n Type extends\n | PrismaObjectRef<PrismaModelTypes>\n | keyof Types['PrismaTypes']\n | [keyof Types['PrismaTypes']]\n | [PrismaObjectRef<PrismaModelTypes>],\n Model extends PrismaModelTypes,\n Param extends TypeParam<Types>,\n Args extends InputFieldMap,\n Nullable extends FieldNullability<Param>,\n ResolveReturnShape,\n Kind extends FieldKind = FieldKind,\n> = Omit<\n FieldOptionsFromKind<\n Types,\n ParentShape,\n Param,\n Nullable,\n Args,\n Kind,\n ParentShape,\n ResolveReturnShape\n >,\n 'resolve' | 'type'\n> & {\n type: Type;\n resolve: (\n query: {\n include?: Model['Include'];\n },\n parent: ParentShape,\n args: InputShapeFromFields<Args>,\n context: Types['Context'],\n info: GraphQLResolveInfo,\n ) => ShapeFromTypeParam<Types, Param, Nullable> extends infer Shape\n ? [Shape] extends [[readonly (infer Item)[] | null | undefined]]\n ? ListResolveValue<Shape, Item, ResolveReturnShape>\n : MaybePromise<Shape>\n : never;\n};\n\nexport type PrismaConnectionFieldOptions<\n Types extends SchemaTypes,\n ParentShape,\n Type extends PrismaObjectRef<PrismaModelTypes> | keyof Types['PrismaTypes'],\n Model extends PrismaModelTypes,\n Param extends OutputType<Types>,\n Nullable extends boolean,\n Args extends InputFieldMap,\n ResolveReturnShape,\n Kind extends FieldKind,\n> = Omit<\n PothosSchemaTypes.ConnectionFieldOptions<\n Types,\n ParentShape,\n Param,\n Nullable,\n false,\n false,\n Args,\n ResolveReturnShape\n >,\n 'resolve' | 'type'\n> &\n Omit<\n FieldOptionsFromKind<\n Types,\n ParentShape,\n Param,\n Nullable,\n Args & InputFieldsFromShape<PothosSchemaTypes.DefaultConnectionArguments>,\n Kind,\n ParentShape,\n ResolveReturnShape\n >,\n 'args' | 'resolve' | 'type'\n > & {\n type: Type;\n cursor: string & keyof Model['Where'];\n defaultSize?: number;\n maxSize?: number;\n resolve: (\n query: {\n include?: Model['Include'];\n cursor?: {};\n take: number;\n skip: number;\n },\n parent: ParentShape,\n args: InputShapeFromFields<Args> & PothosSchemaTypes.DefaultConnectionArguments,\n context: Types['Context'],\n info: GraphQLResolveInfo,\n ) => MaybePromise<Model['Shape'][]>;\n totalCount?: (\n parent: ParentShape,\n args: InputShapeFromFields<Args> & PothosSchemaTypes.DefaultConnectionArguments,\n context: Types['Context'],\n info: GraphQLResolveInfo,\n ) => MaybePromise<number>;\n };\n\nexport type RelatedConnectionOptions<\n Types extends SchemaTypes,\n Model extends PrismaModelTypes,\n Field extends Model['ListRelations'],\n Nullable extends boolean,\n Args extends InputFieldMap,\n NeedsResolve extends boolean,\n> = Omit<\n PothosSchemaTypes.ObjectFieldOptions<\n Types,\n Model['Shape'],\n ObjectRef<unknown>,\n Nullable,\n Args,\n unknown\n >,\n 'resolve' | 'type'\n> &\n Omit<\n PothosSchemaTypes.ConnectionFieldOptions<\n Types,\n Model['Shape'],\n ObjectRef<unknown>,\n false,\n false,\n Nullable,\n Args,\n unknown\n >,\n 'resolve' | 'type'\n > & {\n query?: QueryForField<Types, Args, Model['Include'][Field & keyof Model['Include']]>;\n type?: PrismaObjectRef<Model['Relations'][Field]['Types']>;\n cursor: CursorFromRelation<Model, Field>;\n defaultSize?: number;\n maxSize?: number;\n totalCount?: NeedsResolve extends false ? boolean : false;\n } & (NeedsResolve extends false\n ? {\n resolve?: (\n query: {\n include?: Model['Include'];\n cursor?: {};\n take: number;\n skip: number;\n },\n parent: Model['Shape'],\n args: InputShapeFromFields<Args>,\n context: Types['Context'],\n info: GraphQLResolveInfo,\n ) => MaybePromise<Model['Relations'][Field & keyof Model['Relations']]>;\n }\n : {\n resolve: (\n query: {\n include?: Model['Include'];\n cursor?: {};\n take: number;\n skip: number;\n },\n parent: Model['Shape'],\n args: InputShapeFromFields<Args>,\n context: Types['Context'],\n info: GraphQLResolveInfo,\n ) => MaybePromise<Model['Relations'][Field & keyof Model['Relations']]>;\n });\n\nexport type WithBrand<T> = T & { [typeBrandKey]: string };\n\nexport type IncludeMap = Record<string, SelectionMap | boolean>;\n\nexport interface SelectionMap {\n select?: Record<string, SelectionMap | boolean>;\n include?: Record<string, SelectionMap | boolean>;\n where?: {};\n}\n\nexport type FieldSelection =\n | Record<string, SelectionMap | boolean>\n | ((\n args: object,\n context: object,\n query: (\n selection: SelectionMap | boolean | ((args: object, context: object) => SelectionMap),\n ) => SelectionMap | boolean,\n ) => SelectionMap);\n\nexport type LoaderMappings = Record<\n string,\n {\n field: string;\n mappings: LoaderMappings;\n indirectPath: string[];\n }\n>;\n\nexport interface IndirectInclude {\n getType: () => string;\n path: { type?: string; name: string }[];\n}\n\nexport type ShapeFromConnection<T> = T extends { shape: unknown } ? T['shape'] : never;\n"],"names":["prismaModelName","Symbol","for"],"mappings":"AA6BA,OAAO,MAAMA,eAAe,GAAGC,MAAM,CAACC,GAAG,CAAC,wBAAwB,CAAC,CAAC"}