@pothos/plugin-prisma 0.18.0 → 3.1.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 (165) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +420 -315
  3. package/esm/field-builder.d.ts.map +1 -1
  4. package/esm/field-builder.js +19 -6
  5. package/esm/field-builder.js.map +1 -1
  6. package/esm/generator.js +4 -0
  7. package/esm/generator.js.map +1 -1
  8. package/esm/global-types.d.ts +23 -5
  9. package/esm/global-types.d.ts.map +1 -1
  10. package/esm/index.d.ts +4 -1
  11. package/esm/index.d.ts.map +1 -1
  12. package/esm/index.js +46 -1
  13. package/esm/index.js.map +1 -1
  14. package/esm/model-loader.d.ts +5 -6
  15. package/esm/model-loader.d.ts.map +1 -1
  16. package/esm/model-loader.js +18 -78
  17. package/esm/model-loader.js.map +1 -1
  18. package/esm/prisma-field-builder.d.ts +25 -6
  19. package/esm/prisma-field-builder.d.ts.map +1 -1
  20. package/esm/prisma-field-builder.js +86 -118
  21. package/esm/prisma-field-builder.js.map +1 -1
  22. package/esm/schema-builder.js +14 -4
  23. package/esm/schema-builder.js.map +1 -1
  24. package/esm/types.d.ts +74 -77
  25. package/esm/types.d.ts.map +1 -1
  26. package/esm/types.js +1 -0
  27. package/esm/types.js.map +1 -1
  28. package/esm/{cursors.d.ts → util/cursors.d.ts} +5 -5
  29. package/esm/util/cursors.d.ts.map +1 -0
  30. package/esm/{cursors.js → util/cursors.js} +0 -0
  31. package/esm/util/cursors.js.map +1 -0
  32. package/{lib/refs.d.ts → esm/util/datamodel.d.ts} +4 -8
  33. package/esm/util/datamodel.d.ts.map +1 -0
  34. package/esm/{refs.js → util/datamodel.js} +2 -25
  35. package/esm/util/datamodel.js.map +1 -0
  36. package/esm/util/deep-equal.d.ts +2 -0
  37. package/esm/util/deep-equal.d.ts.map +1 -0
  38. package/esm/util/deep-equal.js +39 -0
  39. package/esm/util/deep-equal.js.map +1 -0
  40. package/esm/util/loader-map.d.ts +6 -0
  41. package/esm/util/loader-map.d.ts.map +1 -0
  42. package/esm/{loader-map.js → util/loader-map.js} +10 -12
  43. package/esm/util/loader-map.js.map +1 -0
  44. package/esm/util/map-query.d.ts +6 -0
  45. package/esm/util/map-query.d.ts.map +1 -0
  46. package/esm/util/map-query.js +169 -0
  47. package/esm/util/map-query.js.map +1 -0
  48. package/esm/util/relation-map.d.ts +9 -0
  49. package/esm/util/relation-map.d.ts.map +1 -0
  50. package/esm/util/relation-map.js +20 -0
  51. package/esm/util/relation-map.js.map +1 -0
  52. package/esm/util/selections.d.ts +20 -0
  53. package/esm/util/selections.d.ts.map +1 -0
  54. package/esm/util/selections.js +139 -0
  55. package/esm/util/selections.js.map +1 -0
  56. package/lib/field-builder.d.ts.map +1 -1
  57. package/lib/field-builder.js +30 -13
  58. package/lib/field-builder.js.map +1 -1
  59. package/lib/generator.js +9 -1
  60. package/lib/generator.js.map +1 -1
  61. package/lib/global-types.d.ts +23 -5
  62. package/lib/global-types.d.ts.map +1 -1
  63. package/lib/index.d.ts +4 -1
  64. package/lib/index.d.ts.map +1 -1
  65. package/lib/index.js +50 -1
  66. package/lib/index.js.map +1 -1
  67. package/lib/model-loader.d.ts +5 -6
  68. package/lib/model-loader.d.ts.map +1 -1
  69. package/lib/model-loader.js +19 -79
  70. package/lib/model-loader.js.map +1 -1
  71. package/lib/prisma-field-builder.d.ts +25 -6
  72. package/lib/prisma-field-builder.d.ts.map +1 -1
  73. package/lib/prisma-field-builder.js +92 -124
  74. package/lib/prisma-field-builder.js.map +1 -1
  75. package/lib/schema-builder.js +22 -8
  76. package/lib/schema-builder.js.map +1 -1
  77. package/lib/types.d.ts +74 -77
  78. package/lib/types.d.ts.map +1 -1
  79. package/lib/types.js +2 -0
  80. package/lib/types.js.map +1 -1
  81. package/lib/{cursors.d.ts → util/cursors.d.ts} +5 -5
  82. package/lib/util/cursors.d.ts.map +1 -0
  83. package/lib/{cursors.js → util/cursors.js} +0 -0
  84. package/lib/util/cursors.js.map +1 -0
  85. package/{esm/refs.d.ts → lib/util/datamodel.d.ts} +4 -8
  86. package/lib/util/datamodel.d.ts.map +1 -0
  87. package/lib/{refs.js → util/datamodel.js} +3 -29
  88. package/lib/util/datamodel.js.map +1 -0
  89. package/lib/util/deep-equal.d.ts +2 -0
  90. package/lib/util/deep-equal.d.ts.map +1 -0
  91. package/lib/util/deep-equal.js +43 -0
  92. package/lib/util/deep-equal.js.map +1 -0
  93. package/lib/util/loader-map.d.ts +6 -0
  94. package/lib/util/loader-map.d.ts.map +1 -0
  95. package/lib/{loader-map.js → util/loader-map.js} +10 -12
  96. package/lib/util/loader-map.js.map +1 -0
  97. package/lib/util/map-query.d.ts +6 -0
  98. package/lib/util/map-query.d.ts.map +1 -0
  99. package/lib/util/map-query.js +175 -0
  100. package/lib/util/map-query.js.map +1 -0
  101. package/lib/util/relation-map.d.ts +9 -0
  102. package/lib/util/relation-map.d.ts.map +1 -0
  103. package/lib/util/relation-map.js +24 -0
  104. package/lib/util/relation-map.js.map +1 -0
  105. package/lib/util/selections.d.ts +20 -0
  106. package/lib/util/selections.d.ts.map +1 -0
  107. package/lib/util/selections.js +148 -0
  108. package/lib/util/selections.js.map +1 -0
  109. package/package.json +8 -8
  110. package/src/field-builder.ts +22 -5
  111. package/src/generator.ts +18 -0
  112. package/src/global-types.ts +59 -12
  113. package/src/index.ts +75 -1
  114. package/src/model-loader.ts +27 -106
  115. package/src/prisma-field-builder.ts +195 -152
  116. package/src/schema-builder.ts +28 -7
  117. package/src/types.ts +155 -102
  118. package/src/{cursors.ts → util/cursors.ts} +3 -3
  119. package/src/{refs.ts → util/datamodel.ts} +3 -44
  120. package/src/util/deep-equal.ts +51 -0
  121. package/src/{loader-map.ts → util/loader-map.ts} +13 -13
  122. package/src/util/map-query.ts +327 -0
  123. package/src/util/relation-map.ts +36 -0
  124. package/src/util/selections.ts +192 -0
  125. package/esm/cursors.d.ts.map +0 -1
  126. package/esm/cursors.js.map +0 -1
  127. package/esm/loader-map.d.ts +0 -6
  128. package/esm/loader-map.d.ts.map +0 -1
  129. package/esm/loader-map.js.map +0 -1
  130. package/esm/refs.d.ts.map +0 -1
  131. package/esm/refs.js.map +0 -1
  132. package/esm/util/index.d.ts +0 -5
  133. package/esm/util/index.d.ts.map +0 -1
  134. package/esm/util/index.js +0 -16
  135. package/esm/util/index.js.map +0 -1
  136. package/esm/util/map-includes.d.ts +0 -6
  137. package/esm/util/map-includes.d.ts.map +0 -1
  138. package/esm/util/map-includes.js +0 -184
  139. package/esm/util/map-includes.js.map +0 -1
  140. package/esm/util/merge-includes.d.ts +0 -3
  141. package/esm/util/merge-includes.d.ts.map +0 -1
  142. package/esm/util/merge-includes.js +0 -91
  143. package/esm/util/merge-includes.js.map +0 -1
  144. package/lib/cursors.d.ts.map +0 -1
  145. package/lib/cursors.js.map +0 -1
  146. package/lib/loader-map.d.ts +0 -6
  147. package/lib/loader-map.d.ts.map +0 -1
  148. package/lib/loader-map.js.map +0 -1
  149. package/lib/refs.d.ts.map +0 -1
  150. package/lib/refs.js.map +0 -1
  151. package/lib/util/index.d.ts +0 -5
  152. package/lib/util/index.d.ts.map +0 -1
  153. package/lib/util/index.js +0 -30
  154. package/lib/util/index.js.map +0 -1
  155. package/lib/util/map-includes.d.ts +0 -6
  156. package/lib/util/map-includes.d.ts.map +0 -1
  157. package/lib/util/map-includes.js +0 -189
  158. package/lib/util/map-includes.js.map +0 -1
  159. package/lib/util/merge-includes.d.ts +0 -3
  160. package/lib/util/merge-includes.d.ts.map +0 -1
  161. package/lib/util/merge-includes.js +0 -96
  162. package/lib/util/merge-includes.js.map +0 -1
  163. package/src/util/index.ts +0 -26
  164. package/src/util/map-includes.ts +0 -328
  165. package/src/util/merge-includes.ts +0 -121
@@ -1,12 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ModelLoader = void 0;
4
- /* eslint-disable prefer-destructuring */
5
- /* eslint-disable no-underscore-dangle */
6
4
  const core_1 = require("@pothos/core");
7
- const refs_1 = require("./refs");
8
- const util_1 = require("./util");
9
- const loaderCache = new WeakMap();
5
+ const datamodel_1 = require("./util/datamodel");
6
+ const selections_1 = require("./util/selections");
10
7
  class ModelLoader {
11
8
  constructor(model, delegate, findUnique) {
12
9
  this.staged = new Set();
@@ -14,91 +11,34 @@ class ModelLoader {
14
11
  this.delegate = delegate;
15
12
  this.findUnique = findUnique;
16
13
  }
17
- static forModel(modelName, builder) {
18
- const delegate = (0, refs_1.getDelegateFromModel)(builder.options.prisma.client, modelName);
19
- if (!loaderCache.has(delegate)) {
20
- const ref = (0, refs_1.getRefFromModel)(modelName, builder);
21
- const findUnique = (0, refs_1.getFindUniqueForRef)(ref, builder);
22
- loaderCache.set(delegate, (0, core_1.createContextCache)((model) => new ModelLoader(model, delegate, findUnique)));
23
- }
24
- return loaderCache.get(delegate);
14
+ static forRef(modelName, findUnique, builder) {
15
+ const delegate = (0, datamodel_1.getDelegateFromModel)(builder.options.prisma.client, modelName);
16
+ return (0, core_1.createContextCache)((model) => new ModelLoader(model, delegate, findUnique));
25
17
  }
26
- async loadCount(relation, context) {
27
- let promise;
28
- const entry = [...this.staged][0];
29
- if (entry) {
30
- if (!entry.include._count) {
31
- entry.include._count = { select: {} };
32
- }
33
- entry.include._count.select[relation] = true;
34
- promise = entry.promise;
35
- }
36
- else {
37
- promise = this.initLoad(relation, null, context, true);
38
- }
39
- const result = await promise;
40
- return result._count[relation];
41
- }
42
- async loadSelf(include, context) {
18
+ async loadSelection(selection, context) {
19
+ const query = (0, selections_1.selectionToQuery)(selection);
43
20
  for (const entry of this.staged) {
44
- const merged = (0, util_1.mergeIncludes)(entry.include, include);
45
- if (merged) {
46
- entry.include = merged;
21
+ if ((0, selections_1.selectionCompatible)(entry.state, query)) {
22
+ (0, selections_1.mergeSelection)(entry.state, query);
47
23
  return entry.promise;
48
24
  }
49
25
  }
50
- return this.initLoad(null, include, context);
26
+ return this.initLoad(selection, context);
51
27
  }
52
- async loadRelation(relation, include, context) {
53
- let promise;
54
- for (const entry of this.staged) {
55
- if (entry.include[relation] === undefined) {
56
- promise = entry.promise;
57
- entry.include[relation] = include;
58
- break;
59
- }
60
- const merged = (0, util_1.mergeIncludes)(entry.include[relation], include);
61
- if (merged) {
62
- entry.include[relation] = merged;
63
- break;
64
- }
65
- }
66
- if (!promise) {
67
- promise = this.initLoad(relation, include, context);
68
- }
69
- const result = await promise;
70
- return result[relation];
71
- }
72
- async initLoad(relation, includeArg, context, count = false) {
73
- const include = (relation &&
74
- (count
75
- ? {
76
- _count: {
77
- select: {
78
- [relation]: true,
79
- },
80
- },
81
- }
82
- : {
83
- [relation]: includeArg,
84
- })) ||
85
- {};
86
- const promise = new Promise((resolve, reject) => {
87
- setTimeout(() => {
28
+ async initLoad(state, context) {
29
+ const entry = {
30
+ promise: Promise.resolve().then(() => {
88
31
  this.staged.delete(entry);
89
- resolve(this.delegate.findUnique({
32
+ return this.delegate.findUnique({
90
33
  rejectOnNotFound: true,
34
+ ...(0, selections_1.selectionToQuery)(state),
91
35
  where: { ...this.findUnique(this.model, context) },
92
- include: Object.keys(include).length > 0 ? include : undefined,
93
- }));
94
- }, 0);
95
- });
96
- const entry = {
97
- promise,
98
- include,
36
+ });
37
+ }),
38
+ state,
99
39
  };
100
40
  this.staged.add(entry);
101
- return promise;
41
+ return entry.promise;
102
42
  }
103
43
  }
104
44
  exports.ModelLoader = ModelLoader;
@@ -1 +1 @@
1
- {"version":3,"file":"model-loader.js","sourceRoot":"","sources":["../src/model-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-loader.js","sourceRoot":"","sources":["../src/model-loader.ts"],"names":[],"mappings":";;;AAAA,uCAA+D;AAE/D,gDAAwD;AACxD,kDAK2B;AAE3B,MAAa,WAAW;IAUtB,YACE,KAAa,EACb,QAAwB,EACxB,UAA+C;QARjD,WAAM,GAAG,IAAI,GAAG,EAGZ,CAAC;QAOH,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,MAAM,CACX,SAAiB,EACjB,UAA+C,EAC/C,OAA+C;QAE/C,MAAM,QAAQ,GAAG,IAAA,gCAAoB,EAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAEhF,OAAO,IAAA,yBAAkB,EAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAyB,EAAE,OAAe;QAC5D,MAAM,KAAK,GAAG,IAAA,6BAAgB,EAAC,SAAS,CAAC,CAAC;QAE1C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;YAC/B,IAAI,IAAA,gCAAmB,EAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;gBAC3C,IAAA,2BAAc,EAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAEnC,OAAO,KAAK,CAAC,OAAO,CAAC;aACtB;SACF;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAqB,EAAE,OAAW;QAC/C,MAAM,KAAK,GAAG;YACZ,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;gBACnC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAE1B,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;oBAC9B,gBAAgB,EAAE,IAAI;oBACtB,GAAG,IAAA,6BAAgB,EAAC,KAAK,CAAC;oBAC1B,KAAK,EAAE,EAAE,GAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAQ,EAAE;iBAClD,CAAqC,CAAC;YAClD,CAAC,CAAC;YACF,KAAK;SACN,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEvB,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;CACF;AA9DD,kCA8DC"}
@@ -1,17 +1,30 @@
1
- import { FieldRef, InputFieldMap, NormalizeArgs, ObjectFieldBuilder, ObjectRef, PluginName, SchemaTypes } from '@pothos/core';
1
+ import { CompatibleTypes, FieldKind, FieldRef, InputFieldMap, NormalizeArgs, ObjectRef, PluginName, SchemaTypes, TypeParam } from '@pothos/core';
2
2
  import { PrismaObjectRef } from './object-ref';
3
- import { PrismaDelegate, PrismaModelTypes, RelatedConnectionOptions, RelatedFieldOptions, RelationCountOptions, ShapeFromConnection } from './types';
4
- import { VariantFieldOptions } from '.';
5
- export declare class PrismaObjectFieldBuilder<Types extends SchemaTypes, Model extends PrismaModelTypes, NeedsResolve extends boolean, Shape extends object = Model['Shape']> extends ObjectFieldBuilder<Types, Shape> {
6
- delegate: PrismaDelegate;
3
+ import { PrismaModelTypes, RelatedConnectionOptions, RelatedFieldOptions, RelationCountOptions, ShapeFromConnection, VariantFieldOptions } from './types';
4
+ import { FieldMap } from './util/relation-map';
5
+ declare const RootBuilder: {
6
+ new <Types extends SchemaTypes, Shape, Kind extends FieldKind>(name: string, builder: PothosSchemaTypes.SchemaBuilder<Types>, kind: FieldKind, graphqlKind: PothosSchemaTypes.PothosKindToGraphQLType[FieldKind]): PothosSchemaTypes.RootFieldBuilder<Types, Shape, Kind>;
7
+ };
8
+ export declare class PrismaObjectFieldBuilder<Types extends SchemaTypes, Model extends PrismaModelTypes, NeedsResolve extends boolean, Shape extends object = Model['Shape']> extends RootBuilder<Types, Shape, 'PrismaObject'> {
7
9
  model: string;
10
+ prismaFieldMap: FieldMap;
11
+ exposeBoolean: <Nullable extends boolean, ResolveReturnShape, Name extends CompatibleTypes<Types, Model["Shape"], "Boolean", Nullable>>(...args: NormalizeArgs<[name: Name, options?: Omit<PothosSchemaTypes.ObjectFieldOptions<Types, Shape, "Boolean", Nullable, {}, ResolveReturnShape>, "type" | "resolve" | "select"> | undefined]>) => FieldRef<import("@pothos/core").FieldNullability<"Boolean"> extends Nullable ? Types["DefaultFieldNullability"] extends true ? ("Boolean" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "Boolean"] : never) | null | undefined : "Boolean" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "Boolean"] : never : Nullable extends true ? ("Boolean" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "Boolean"] : never) | null | undefined : "Boolean" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "Boolean"] : never, "PrismaObject">;
12
+ exposeFloat: <Nullable extends boolean, ResolveReturnShape, Name extends CompatibleTypes<Types, Model["Shape"], "Float", Nullable>>(...args: NormalizeArgs<[name: Name, options?: Omit<PothosSchemaTypes.ObjectFieldOptions<Types, Shape, "Float", Nullable, {}, ResolveReturnShape>, "type" | "resolve" | "select"> | undefined]>) => FieldRef<import("@pothos/core").FieldNullability<"Float"> extends Nullable ? Types["DefaultFieldNullability"] extends true ? ("Float" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "Float"] : never) | null | undefined : "Float" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "Float"] : never : Nullable extends true ? ("Float" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "Float"] : never) | null | undefined : "Float" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "Float"] : never, "PrismaObject">;
13
+ exposeInt: <Nullable extends boolean, ResolveReturnShape, Name extends CompatibleTypes<Types, Model["Shape"], "Int", Nullable>>(...args: NormalizeArgs<[name: Name, options?: Omit<PothosSchemaTypes.ObjectFieldOptions<Types, Shape, "Int", Nullable, {}, ResolveReturnShape>, "type" | "resolve" | "select"> | undefined]>) => FieldRef<import("@pothos/core").FieldNullability<"Int"> extends Nullable ? Types["DefaultFieldNullability"] extends true ? ("Int" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "Int"] : never) | null | undefined : "Int" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "Int"] : never : Nullable extends true ? ("Int" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "Int"] : never) | null | undefined : "Int" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "Int"] : never, "PrismaObject">;
14
+ exposeID: <Nullable extends boolean, ResolveReturnShape, Name extends CompatibleTypes<Types, Model["Shape"], "ID", Nullable>>(...args: NormalizeArgs<[name: Name, options?: Omit<PothosSchemaTypes.ObjectFieldOptions<Types, Shape, "ID", Nullable, {}, ResolveReturnShape>, "type" | "resolve" | "select"> | undefined]>) => FieldRef<import("@pothos/core").FieldNullability<"ID"> extends Nullable ? Types["DefaultFieldNullability"] extends true ? ("ID" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "ID"] : never) | null | undefined : "ID" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "ID"] : never : Nullable extends true ? ("ID" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "ID"] : never) | null | undefined : "ID" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "ID"] : never, "PrismaObject">;
15
+ exposeString: <Nullable extends boolean, ResolveReturnShape, Name extends CompatibleTypes<Types, Model["Shape"], "String", Nullable>>(...args: NormalizeArgs<[name: Name, options?: Omit<PothosSchemaTypes.ObjectFieldOptions<Types, Shape, "String", Nullable, {}, ResolveReturnShape>, "type" | "resolve" | "select"> | undefined]>) => FieldRef<import("@pothos/core").FieldNullability<"String"> extends Nullable ? Types["DefaultFieldNullability"] extends true ? ("String" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "String"] : never) | null | undefined : "String" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "String"] : never : Nullable extends true ? ("String" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "String"] : never) | null | undefined : "String" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "String"] : never, "PrismaObject">;
16
+ exposeBooleanList: <Nullable extends boolean, ResolveReturnShape, Name extends CompatibleTypes<Types, Model["Shape"], ["Boolean"], Nullable>>(...args: NormalizeArgs<[name: Name, options?: Omit<PothosSchemaTypes.ObjectFieldOptions<Types, Shape, ["Boolean"], Nullable, {}, ResolveReturnShape>, "type" | "resolve" | "select"> | undefined]>) => FieldRef<import("@pothos/core").ShapeFromTypeParam<Types, ["Boolean"], Nullable>, "PrismaObject">;
17
+ exposeFloatList: <Nullable extends boolean, ResolveReturnShape, Name extends CompatibleTypes<Types, Model["Shape"], ["Float"], Nullable>>(...args: NormalizeArgs<[name: Name, options?: Omit<PothosSchemaTypes.ObjectFieldOptions<Types, Shape, ["Float"], Nullable, {}, ResolveReturnShape>, "type" | "resolve" | "select"> | undefined]>) => FieldRef<import("@pothos/core").ShapeFromTypeParam<Types, ["Float"], Nullable>, "PrismaObject">;
18
+ exposeIntList: <Nullable extends boolean, ResolveReturnShape, Name extends CompatibleTypes<Types, Model["Shape"], ["Int"], Nullable>>(...args: NormalizeArgs<[name: Name, options?: Omit<PothosSchemaTypes.ObjectFieldOptions<Types, Shape, ["Int"], Nullable, {}, ResolveReturnShape>, "type" | "resolve" | "select"> | undefined]>) => FieldRef<import("@pothos/core").ShapeFromTypeParam<Types, ["Int"], Nullable>, "PrismaObject">;
19
+ exposeIDList: <Nullable extends boolean, ResolveReturnShape, Name extends CompatibleTypes<Types, Model["Shape"], ["ID"], Nullable>>(...args: NormalizeArgs<[name: Name, options?: Omit<PothosSchemaTypes.ObjectFieldOptions<Types, Shape, ["ID"], Nullable, {}, ResolveReturnShape>, "type" | "resolve" | "select"> | undefined]>) => FieldRef<import("@pothos/core").ShapeFromTypeParam<Types, ["ID"], Nullable>, "PrismaObject">;
20
+ exposeStringList: <Nullable extends boolean, ResolveReturnShape, Name extends CompatibleTypes<Types, Model["Shape"], ["String"], Nullable>>(...args: NormalizeArgs<[name: Name, options?: Omit<PothosSchemaTypes.ObjectFieldOptions<Types, Shape, ["String"], Nullable, {}, ResolveReturnShape>, "type" | "resolve" | "select"> | undefined]>) => FieldRef<import("@pothos/core").ShapeFromTypeParam<Types, ["String"], Nullable>, "PrismaObject">;
8
21
  relatedConnection: 'relay' extends PluginName ? <Field extends Model['ListRelations'], Nullable extends boolean, Args extends InputFieldMap, ResolveReturnShape>(...args: NormalizeArgs<[
9
22
  field: Field,
10
23
  options: RelatedConnectionOptions<Types, Model, Field, Nullable, Args, NeedsResolve>,
11
24
  connectionOptions?: PothosSchemaTypes.ConnectionObjectOptions<Types, ObjectRef<Shape>, false, false, ResolveReturnShape>,
12
25
  edgeOptions?: PothosSchemaTypes.ConnectionEdgeObjectOptions<Types, ObjectRef<Shape>, false, ResolveReturnShape>
13
26
  ]>) => FieldRef<ShapeFromConnection<PothosSchemaTypes.ConnectionShapeHelper<Types, Shape, Nullable>>> : '@pothos/plugin-relay is required to use this method';
14
- constructor(name: string, builder: PothosSchemaTypes.SchemaBuilder<Types>, model: string);
27
+ constructor(name: string, builder: PothosSchemaTypes.SchemaBuilder<Types>, model: string, fieldMap: FieldMap);
15
28
  relation<Field extends Model['Fields'], Nullable extends boolean, Args extends InputFieldMap, ResolveReturnShape>(...allArgs: NormalizeArgs<[
16
29
  name: Field,
17
30
  options?: RelatedFieldOptions<Types, Model, Field, Nullable, Args, ResolveReturnShape, NeedsResolve, Shape>
@@ -24,5 +37,11 @@ export declare class PrismaObjectFieldBuilder<Types extends SchemaTypes, Model e
24
37
  variant: Variant,
25
38
  options?: VariantFieldOptions<Types, Model, Variant extends PrismaObjectRef<Model> ? Variant : PrismaObjectRef<Model>>
26
39
  ]>): FieldRef<Model['Shape'], 'Object'>;
40
+ expose<Type extends TypeParam<Types>, Nullable extends boolean, ResolveReturnShape, Name extends CompatibleTypes<Types, Model['Shape'], Type, Nullable>>(...args: NormalizeArgs<[
41
+ name: Name,
42
+ options?: Omit<PothosSchemaTypes.ObjectFieldOptions<Types, Shape, Type, Nullable, {}, ResolveReturnShape>, 'resolve' | 'select'>
43
+ ]>): FieldRef<import("@pothos/core").ShapeFromTypeParam<Types, Type, Nullable>, "PrismaObject">;
44
+ private createExpose;
27
45
  }
46
+ export {};
28
47
  //# sourceMappingURL=prisma-field-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prisma-field-builder.d.ts","sourceRoot":"","sources":["../src/prisma-field-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prisma-field-builder.d.ts","sourceRoot":"","sources":["../src/prisma-field-builder.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,EACf,SAAS,EACT,QAAQ,EACR,aAAa,EAEb,aAAa,EACb,SAAS,EACT,UAAU,EAEV,WAAW,EACX,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAQjB,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAG/C,QAAA,MAAM,WAAW,EAAE;IAEjB,KAAK,KAAK,SAAS,WAAW,EAAE,KAAK,EAAE,IAAI,SAAS,SAAS,EAC3D,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,EAC/C,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,iBAAiB,CAAC,uBAAuB,CAAC,SAAS,CAAC,GAChE,iBAAiB,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;CAC/B,CAAC;AAE9B,qBAAa,wBAAwB,CACnC,KAAK,SAAS,WAAW,EACzB,KAAK,SAAS,gBAAgB,EAC9B,YAAY,SAAS,OAAO,EAC5B,KAAK,SAAS,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CACrC,SAAQ,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,QAAQ,CAAC;IAEzB,aAAa,o/BAAgC;IAC7C,WAAW,89BAA8B;IACzC,SAAS,w8BAA4B;IACrC,QAAQ,67BAA2B;IACnC,YAAY,y+BAA+B;IAC3C,iBAAiB,saAAkC;IACnD,eAAe,gaAAgC;IAC/C,aAAa,0ZAA8B;IAC3C,YAAY,uZAA6B;IACzC,gBAAgB,maAAiC;IAEjD,iBAAiB,EAAE,OAAO,SAAS,UAAU,GACzC,CACE,KAAK,SAAS,KAAK,CAAC,eAAe,CAAC,EACpC,QAAQ,SAAS,OAAO,EACxB,IAAI,SAAS,aAAa,EAC1B,kBAAkB,EAElB,GAAG,IAAI,EAAE,aAAa,CACpB;QACE,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,wBAAwB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC;QACpF,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,uBAAuB,CAC3D,KAAK,EACL,SAAS,CAAC,KAAK,CAAC,EAChB,KAAK,EACL,KAAK,EACL,kBAAkB,CACnB;QACD,WAAW,CAAC,EAAE,iBAAiB,CAAC,2BAA2B,CACzD,KAAK,EACL,SAAS,CAAC,KAAK,CAAC,EAChB,KAAK,EACL,kBAAkB,CACnB;KACF,CACF,KACE,QAAQ,CACX,mBAAmB,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CACrF,GACD,qDAAqD,CA6I9C;gBAGT,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,EAC/C,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,QAAQ;IAQpB,QAAQ,CACN,KAAK,SAAS,KAAK,CAAC,QAAQ,CAAC,EAC7B,QAAQ,SAAS,OAAO,EACxB,IAAI,SAAS,aAAa,EAC1B,kBAAkB,EAElB,GAAG,OAAO,EAAE,aAAa,CACvB;QACE,IAAI,EAAE,KAAK;QACX,OAAO,CAAC,EAAE,mBAAmB,CAC3B,KAAK,EACL,KAAK,EACL,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,kBAAkB,EAClB,YAAY,EACZ,KAAK,CACN;KACF,CACF,GACA,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC;IAmCzD,aAAa,CAAC,KAAK,SAAS,KAAK,CAAC,QAAQ,CAAC,EACzC,GAAG,OAAO,EAAE,aAAa,CACvB;QAAC,IAAI,EAAE,KAAK;QAAE,OAAO,CAAC,EAAE,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC;KAAC,CAC1E,GACA,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAqB7B,OAAO,CAAC,OAAO,SAAS,KAAK,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,EAC5D,GAAG,OAAO,EAAE,aAAa,CACvB;QACE,OAAO,EAAE,OAAO;QAChB,OAAO,CAAC,EAAE,mBAAmB,CAC3B,KAAK,EACL,KAAK,EACL,OAAO,SAAS,eAAe,CAAC,KAAK,CAAC,GAAG,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAC1E;KACF,CACF,GACA,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC;IAgBrC,MAAM,CACJ,IAAI,SAAS,SAAS,CAAC,KAAK,CAAC,EAC7B,QAAQ,SAAS,OAAO,EACxB,kBAAkB,EAClB,IAAI,SAAS,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,EAEnE,GAAG,IAAI,EAAE,aAAa,CACpB;QACE,IAAI,EAAE,IAAI;QACV,OAAO,CAAC,EAAE,IAAI,CACZ,iBAAiB,CAAC,kBAAkB,CAClC,KAAK,EACL,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,EAAE,EACF,kBAAkB,CACnB,EACD,SAAS,GAAG,QAAQ,CACrB;KACF,CACF;IAmBH,OAAO,CAAC,YAAY;CA+BrB"}
@@ -2,24 +2,30 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PrismaObjectFieldBuilder = void 0;
4
4
  const core_1 = require("@pothos/core");
5
- const cursors_1 = require("./cursors");
6
- const loader_map_1 = require("./loader-map");
7
- const model_loader_1 = require("./model-loader");
8
- const refs_1 = require("./refs");
9
- const util_1 = require("./util");
10
- class PrismaObjectFieldBuilder extends core_1.ObjectFieldBuilder {
11
- constructor(name, builder, model) {
12
- super(name, builder);
5
+ const cursors_1 = require("./util/cursors");
6
+ const datamodel_1 = require("./util/datamodel");
7
+ // Workaround for FieldKind not being extended on Builder classes
8
+ const RootBuilder = core_1.RootFieldBuilder;
9
+ class PrismaObjectFieldBuilder extends RootBuilder {
10
+ constructor(name, builder, model, fieldMap) {
11
+ super(name, builder, 'PrismaObject', 'Object');
12
+ this.exposeBoolean = this.createExpose('Boolean');
13
+ this.exposeFloat = this.createExpose('Float');
14
+ this.exposeInt = this.createExpose('Int');
15
+ this.exposeID = this.createExpose('ID');
16
+ this.exposeString = this.createExpose('String');
17
+ this.exposeBooleanList = this.createExpose(['Boolean']);
18
+ this.exposeFloatList = this.createExpose(['Float']);
19
+ this.exposeIntList = this.createExpose(['Int']);
20
+ this.exposeIDList = this.createExpose(['ID']);
21
+ this.exposeStringList = this.createExpose(['String']);
13
22
  this.relatedConnection = function relatedConnection(name, { maxSize, defaultSize, cursor, query, resolve, extensions, totalCount, ...options }, connectionOptions = {}, edgeOptions = {}) {
14
- var _a, _b;
15
- const relationField = (0, refs_1.getRelation)(this.model, this.builder, name);
16
- const parentRef = (0, refs_1.getRefFromModel)(this.model, this.builder);
17
- const ref = (_a = options.type) !== null && _a !== void 0 ? _a : (0, refs_1.getRefFromModel)(relationField.type, this.builder);
18
- const findUnique = (0, refs_1.getFindUniqueForRef)(parentRef, this.builder);
19
- const loaderCache = model_loader_1.ModelLoader.forModel(this.model, this.builder);
23
+ var _a;
24
+ const relationField = (0, datamodel_1.getRelation)(this.model, this.builder, name);
25
+ const ref = (_a = options.type) !== null && _a !== void 0 ? _a : (0, datamodel_1.getRefFromModel)(relationField.type, this.builder);
20
26
  let typeName;
21
- const formatCursor = (0, refs_1.getCursorFormatter)(relationField.type, this.builder, cursor);
22
- const parseCursor = (0, refs_1.getCursorParser)(relationField.type, this.builder, cursor);
27
+ const formatCursor = (0, datamodel_1.getCursorFormatter)(relationField.type, this.builder, cursor);
28
+ const parseCursor = (0, datamodel_1.getCursorParser)(relationField.type, this.builder, cursor);
23
29
  const getQuery = (args, ctx) => ({
24
30
  ...(typeof query === 'function' ? query(args, ctx) : query),
25
31
  ...(0, cursors_1.prismaCursorConnectionQuery)({
@@ -29,40 +35,36 @@ class PrismaObjectFieldBuilder extends core_1.ObjectFieldBuilder {
29
35
  args,
30
36
  }),
31
37
  });
38
+ const relationSelect = (args, context, nestedQuery) => ({
39
+ select: {
40
+ [name]: nestedQuery({
41
+ ...(typeof query === 'function' ? query(args, context) : query),
42
+ ...(0, cursors_1.prismaCursorConnectionQuery)({
43
+ parseCursor,
44
+ maxSize,
45
+ defaultSize,
46
+ args,
47
+ }),
48
+ }),
49
+ },
50
+ });
32
51
  const fieldRef = this.connection({
33
52
  ...options,
34
53
  extensions: {
35
54
  ...extensions,
36
- pothosPrismaQuery: getQuery,
37
- pothosPrismaRelation: name,
55
+ pothosPrismaSelect: relationSelect,
56
+ pothosPrismaLoaded: (value) => value[name] !== undefined,
57
+ pothosPrismaFallback: resolve &&
58
+ ((q, parent, args, context, info) => Promise.resolve(resolve({
59
+ ...q,
60
+ ...(typeof query === 'function' ? query(args, context) : query),
61
+ }, parent, args, context, info)).then((result) => (0, cursors_1.wrapConnectionResult)(result, args, q.take, formatCursor))),
38
62
  },
39
63
  type: ref,
40
- resolve: async (parent, args, context, info) => {
64
+ resolve: (parent, args, context) => {
41
65
  var _a;
42
66
  const connectionQuery = getQuery(args, context);
43
- const getResult = () => {
44
- const mapping = (0, loader_map_1.getLoaderMapping)(context, info.path);
45
- const loadedValue = parent[name];
46
- if (
47
- // if we attempted to load the relation, and its missing it will be null
48
- // undefined means that the query was not constructed in a way that requested the relation
49
- loadedValue !== undefined &&
50
- mapping) {
51
- if (loadedValue !== null && loadedValue !== undefined) {
52
- (0, loader_map_1.setLoaderMappings)(context, info.path, mapping);
53
- }
54
- return loadedValue;
55
- }
56
- if (!resolve && !findUnique) {
57
- throw new Error(`Missing findUnique for Prisma type ${this.model}`);
58
- }
59
- const mergedQuery = { ...(0, util_1.queryFromInfo)(context, info), ...connectionQuery };
60
- if (resolve) {
61
- return resolve(mergedQuery, parent, args, context, info);
62
- }
63
- return loaderCache(parent).loadRelation(name, mergedQuery, context);
64
- };
65
- return (0, cursors_1.wrapConnectionResult)(await getResult(), args, connectionQuery.take, formatCursor, (_a = parent._count) === null || _a === void 0 ? void 0 : _a[name]);
67
+ return (0, cursors_1.wrapConnectionResult)(parent[name], args, connectionQuery.take, formatCursor, (_a = parent._count) === null || _a === void 0 ? void 0 : _a[name]);
66
68
  },
67
69
  }, {
68
70
  ...connectionOptions,
@@ -71,23 +73,18 @@ class PrismaObjectFieldBuilder extends core_1.ObjectFieldBuilder {
71
73
  var _a, _b;
72
74
  return ({
73
75
  totalCount: t.int({
76
+ nullable: false,
74
77
  extensions: {
75
- pothosPrismaRelationCountForParent: name,
76
- },
77
- resolve: (parent, args, context) => {
78
- const loadedValue = parent.totalCount;
79
- if (loadedValue !== undefined) {
80
- return loadedValue;
81
- }
82
- return loaderCache(parent).loadCount(name, context);
78
+ pothosPrismaParentSelect: { _count: { select: { [name]: true } } },
83
79
  },
80
+ resolve: (parent, args, context) => parent.totalCount,
84
81
  }),
85
82
  ...(_b = (_a = connectionOptions).fields) === null || _b === void 0 ? void 0 : _b.call(_a, t),
86
83
  });
87
84
  }
88
85
  : connectionOptions.fields,
89
86
  extensions: {
90
- ...(_b = connectionOptions) === null || _b === void 0 ? void 0 : _b.extensions,
87
+ ...connectionOptions === null || connectionOptions === void 0 ? void 0 : connectionOptions.extensions,
91
88
  pothosPrismaIndirectInclude: {
92
89
  getType: () => {
93
90
  if (!typeName) {
@@ -102,109 +99,80 @@ class PrismaObjectFieldBuilder extends core_1.ObjectFieldBuilder {
102
99
  return fieldRef;
103
100
  };
104
101
  this.model = model;
105
- this.delegate = (0, refs_1.getDelegateFromModel)(builder.options.prisma.client, model);
102
+ this.prismaFieldMap = fieldMap;
106
103
  }
107
104
  relation(...allArgs) {
108
105
  var _a;
109
106
  const [name, options = {}] = allArgs;
110
- const relationField = (0, refs_1.getRelation)(this.model, this.builder, name);
111
- const parentRef = (0, refs_1.getRefFromModel)(this.model, this.builder);
112
- const ref = (_a = options.type) !== null && _a !== void 0 ? _a : (0, refs_1.getRefFromModel)(relationField.type, this.builder);
113
- const findUnique = (0, refs_1.getFindUniqueForRef)(parentRef, this.builder);
114
- const loaderCache = model_loader_1.ModelLoader.forModel(this.model, this.builder);
115
- const { query = {}, resolve, ...rest } = options;
107
+ const relationField = (0, datamodel_1.getRelation)(this.model, this.builder, name);
108
+ const ref = (_a = options.type) !== null && _a !== void 0 ? _a : (0, datamodel_1.getRefFromModel)(relationField.type, this.builder);
109
+ const { query = {}, resolve, extensions, ...rest } = options;
110
+ const relationSelect = (args, context, nestedQuery) => ({ select: { [name]: nestedQuery(query) } });
116
111
  return this.field({
117
112
  ...rest,
118
113
  type: relationField.isList ? [ref] : ref,
119
114
  extensions: {
120
- ...options.extensions,
121
- pothosPrismaQuery: query,
122
- pothosPrismaRelation: name,
123
- },
124
- resolve: (parent, args, context, info) => {
125
- const mapping = (0, loader_map_1.getLoaderMapping)(context, info.path);
126
- const loadedValue = parent[name];
127
- if (
128
- // if we attempted to load the relation, and its missing it will be null
129
- // undefined means that the query was not constructed in a way that requested the relation
130
- loadedValue !== undefined &&
131
- mapping) {
132
- if (loadedValue !== null && loadedValue !== undefined) {
133
- (0, loader_map_1.setLoaderMappings)(context, info.path, mapping);
134
- }
135
- return loadedValue;
136
- }
137
- const queryOptions = {
138
- ...(typeof query === 'function' ? query(args, context) : query),
139
- ...(0, util_1.queryFromInfo)(context, info),
140
- };
141
- if (resolve) {
142
- return resolve(queryOptions, parent, args, context, info);
143
- }
144
- if (!findUnique) {
145
- throw new Error(`Missing findUnique for Prisma type ${this.model}`);
146
- }
147
- return loaderCache(parent).loadRelation(name, queryOptions, context);
115
+ ...extensions,
116
+ pothosPrismaSelect: relationSelect,
117
+ pothosPrismaLoaded: (value) => value[name] !== undefined,
118
+ pothosPrismaFallback: resolve &&
119
+ ((q, parent, args, context, info) => resolve({ ...q, ...(typeof query === 'function' ? query(args, context) : query) }, parent, args, context, info)),
148
120
  },
121
+ resolve: (parent) => parent[name],
149
122
  });
150
123
  }
151
124
  relationCount(...allArgs) {
152
125
  const [name, options = {}] = allArgs;
153
- const parentRef = (0, refs_1.getRefFromModel)(this.model, this.builder);
154
- const findUnique = (0, refs_1.getFindUniqueForRef)(parentRef, this.builder);
155
- const loaderCache = model_loader_1.ModelLoader.forModel(this.model, this.builder);
156
126
  const { resolve, ...rest } = options;
127
+ const countSelect = {
128
+ _count: {
129
+ select: { [name]: true },
130
+ },
131
+ };
157
132
  return this.field({
158
133
  ...rest,
159
134
  type: 'Int',
160
135
  nullable: false,
161
- extensions: {
162
- ...options.extensions,
163
- pothosPrismaRelationCount: name,
164
- },
165
- resolve: (parent, args, context, info) => {
166
- var _a;
167
- const loadedValue = (_a = parent._count) === null || _a === void 0 ? void 0 : _a[name];
168
- if (loadedValue !== undefined) {
169
- return loadedValue;
170
- }
171
- if (resolve) {
172
- return resolve(parent, args, context, info);
173
- }
174
- if (!findUnique) {
175
- throw new Error(`Missing findUnique for Prisma type ${this.model}`);
176
- }
177
- return loaderCache(parent).loadCount(name, context);
178
- },
136
+ select: countSelect,
137
+ resolve: (parent, args, context, info) => { var _a; return (_a = parent._count) === null || _a === void 0 ? void 0 : _a[name]; },
179
138
  });
180
139
  }
181
140
  variant(...allArgs) {
182
141
  const [variant, options = {}] = allArgs;
183
- const ref = typeof variant === 'string' ? (0, refs_1.getRefFromModel)(variant, this.builder) : variant;
184
- const parentRef = (0, refs_1.getRefFromModel)(this.model, this.builder);
185
- const findUnique = (0, refs_1.getFindUniqueForRef)(parentRef, this.builder);
186
- const loaderCache = model_loader_1.ModelLoader.forModel(this.model, this.builder);
142
+ const ref = typeof variant === 'string' ? (0, datamodel_1.getRefFromModel)(variant, this.builder) : variant;
143
+ const selfSelect = (args, context, nestedQuery) => nestedQuery({});
187
144
  return this.field({
188
145
  ...options,
189
146
  type: ref,
147
+ select: selfSelect,
148
+ resolve: (parent, args, context, info) => parent,
149
+ });
150
+ }
151
+ expose(...args) {
152
+ var _a;
153
+ const [name, options = {}] = args;
154
+ const typeConfig = this.builder.configStore.getTypeConfig(this.typename, 'Object');
155
+ const usingSelect = !!((_a = typeConfig.extensions) === null || _a === void 0 ? void 0 : _a.pothosPrismaSelect);
156
+ return this.exposeField(name, {
157
+ ...options,
190
158
  extensions: {
191
159
  ...options.extensions,
192
- pothosPrismaRelation: util_1.SELF_RELATION,
193
- },
194
- resolve: (parent, args, context, info) => {
195
- const mapping = (0, loader_map_1.getLoaderMapping)(context, info.path);
196
- if (mapping) {
197
- (0, loader_map_1.setLoaderMappings)(context, info.path, mapping);
198
- return parent;
199
- }
200
- const queryOptions = (0, util_1.queryFromInfo)(context, info);
201
- if (!findUnique) {
202
- throw new Error(`Missing findUnique for Prisma type ${this.model}`);
203
- }
204
- return loaderCache(parent).loadSelf(queryOptions, context);
160
+ pothosPrismaVariant: name,
161
+ pothosPrismaSelect: usingSelect && {
162
+ [name]: true,
163
+ },
205
164
  },
206
165
  });
207
166
  }
167
+ createExpose(type) {
168
+ return (...args) => {
169
+ const [name, options = {}] = args;
170
+ return this.expose(name, {
171
+ ...options,
172
+ type,
173
+ });
174
+ };
175
+ }
208
176
  }
209
177
  exports.PrismaObjectFieldBuilder = PrismaObjectFieldBuilder;
210
178
  //# 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,"file":"prisma-field-builder.js","sourceRoot":"","sources":["../src/prisma-field-builder.ts"],"names":[],"mappings":"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"}