@pothos/plugin-drizzle 0.18.1 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/CHANGELOG.md +345 -0
  2. package/README.md +784 -221
  3. package/dts/connection-helpers.d.ts +18 -8
  4. package/dts/connection-helpers.d.ts.map +1 -1
  5. package/dts/drizzle-field-builder.d.ts +4 -11
  6. package/dts/drizzle-field-builder.d.ts.map +1 -1
  7. package/dts/global-types.d.ts.map +1 -1
  8. package/dts/index.d.ts.map +1 -1
  9. package/dts/model-loader.d.ts +18 -17
  10. package/dts/model-loader.d.ts.map +1 -1
  11. package/dts/types.d.ts +80 -20
  12. package/dts/types.d.ts.map +1 -1
  13. package/dts/utils/adapter.d.ts +39 -0
  14. package/dts/utils/adapter.d.ts.map +1 -0
  15. package/dts/utils/await-selections.d.ts +12 -0
  16. package/dts/utils/await-selections.d.ts.map +1 -0
  17. package/dts/utils/config.d.ts +23 -3
  18. package/dts/utils/config.d.ts.map +1 -1
  19. package/dts/utils/cursors.d.ts +6 -6
  20. package/dts/utils/cursors.d.ts.map +1 -1
  21. package/dts/utils/map-query.d.ts +22 -21
  22. package/dts/utils/map-query.d.ts.map +1 -1
  23. package/dts/utils/path-info.d.ts +13 -0
  24. package/dts/utils/path-info.d.ts.map +1 -0
  25. package/dts/utils/relation-filter.d.ts +48 -0
  26. package/dts/utils/relation-filter.d.ts.map +1 -0
  27. package/dts/utils/selections.d.ts +2 -21
  28. package/dts/utils/selections.d.ts.map +1 -1
  29. package/esm/connection-helpers.d.ts +18 -8
  30. package/esm/connection-helpers.d.ts.map +1 -1
  31. package/esm/connection-helpers.js +52 -19
  32. package/esm/connection-helpers.js.map +1 -1
  33. package/esm/drizzle-field-builder.d.ts +4 -11
  34. package/esm/drizzle-field-builder.d.ts.map +1 -1
  35. package/esm/drizzle-field-builder.js +138 -96
  36. package/esm/drizzle-field-builder.js.map +1 -1
  37. package/esm/field-builder.js +61 -47
  38. package/esm/field-builder.js.map +1 -1
  39. package/esm/global-types.d.ts.map +1 -1
  40. package/esm/index.d.ts.map +1 -1
  41. package/esm/index.js +37 -61
  42. package/esm/index.js.map +1 -1
  43. package/esm/model-loader.d.ts +18 -17
  44. package/esm/model-loader.d.ts.map +1 -1
  45. package/esm/model-loader.js +76 -45
  46. package/esm/model-loader.js.map +1 -1
  47. package/esm/schema-builder.js +40 -149
  48. package/esm/schema-builder.js.map +1 -1
  49. package/esm/types.d.ts +80 -20
  50. package/esm/types.d.ts.map +1 -1
  51. package/esm/types.js.map +1 -1
  52. package/esm/utils/adapter.d.ts +39 -0
  53. package/esm/utils/adapter.d.ts.map +1 -0
  54. package/esm/utils/adapter.js +137 -0
  55. package/esm/utils/adapter.js.map +1 -0
  56. package/esm/utils/await-selections.d.ts +12 -0
  57. package/esm/utils/await-selections.d.ts.map +1 -0
  58. package/esm/utils/await-selections.js +19 -0
  59. package/esm/utils/await-selections.js.map +1 -0
  60. package/esm/utils/config.d.ts +23 -3
  61. package/esm/utils/config.d.ts.map +1 -1
  62. package/esm/utils/config.js +1 -4
  63. package/esm/utils/config.js.map +1 -1
  64. package/esm/utils/cursors.d.ts +6 -6
  65. package/esm/utils/cursors.d.ts.map +1 -1
  66. package/esm/utils/cursors.js +55 -90
  67. package/esm/utils/cursors.js.map +1 -1
  68. package/esm/utils/map-query.d.ts +22 -21
  69. package/esm/utils/map-query.d.ts.map +1 -1
  70. package/esm/utils/map-query.js +40 -354
  71. package/esm/utils/map-query.js.map +1 -1
  72. package/esm/utils/path-info.d.ts +13 -0
  73. package/esm/utils/path-info.d.ts.map +1 -0
  74. package/esm/utils/path-info.js +37 -0
  75. package/esm/utils/path-info.js.map +1 -0
  76. package/esm/utils/relation-filter.d.ts +48 -0
  77. package/esm/utils/relation-filter.d.ts.map +1 -0
  78. package/esm/utils/relation-filter.js +92 -0
  79. package/esm/utils/relation-filter.js.map +1 -0
  80. package/esm/utils/selections.d.ts +2 -21
  81. package/esm/utils/selections.d.ts.map +1 -1
  82. package/esm/utils/selections.js +1 -133
  83. package/esm/utils/selections.js.map +1 -1
  84. package/lib/connection-helpers.js +51 -18
  85. package/lib/connection-helpers.js.map +1 -1
  86. package/lib/drizzle-field-builder.js +136 -94
  87. package/lib/drizzle-field-builder.js.map +1 -1
  88. package/lib/field-builder.js +58 -44
  89. package/lib/field-builder.js.map +1 -1
  90. package/lib/index.js +36 -60
  91. package/lib/index.js.map +1 -1
  92. package/lib/model-loader.js +76 -45
  93. package/lib/model-loader.js.map +1 -1
  94. package/lib/schema-builder.js +40 -149
  95. package/lib/schema-builder.js.map +1 -1
  96. package/lib/types.js.map +1 -1
  97. package/lib/utils/adapter.js +147 -0
  98. package/lib/utils/adapter.js.map +1 -0
  99. package/lib/utils/await-selections.js +20 -0
  100. package/lib/utils/await-selections.js.map +1 -0
  101. package/lib/utils/config.js +1 -4
  102. package/lib/utils/config.js.map +1 -1
  103. package/lib/utils/cursors.js +47 -88
  104. package/lib/utils/cursors.js.map +1 -1
  105. package/lib/utils/map-query.js +28 -359
  106. package/lib/utils/map-query.js.map +1 -1
  107. package/lib/utils/path-info.js +39 -0
  108. package/lib/utils/path-info.js.map +1 -0
  109. package/lib/utils/relation-filter.js +91 -0
  110. package/lib/utils/relation-filter.js.map +1 -0
  111. package/lib/utils/selections.js +3 -158
  112. package/lib/utils/selections.js.map +1 -1
  113. package/package.json +8 -6
  114. package/src/connection-helpers.ts +167 -53
  115. package/src/drizzle-field-builder.ts +296 -176
  116. package/src/field-builder.ts +110 -77
  117. package/src/global-types.ts +0 -32
  118. package/src/index.ts +42 -68
  119. package/src/model-loader.ts +110 -71
  120. package/src/schema-builder.ts +76 -169
  121. package/src/types.ts +175 -44
  122. package/src/utils/adapter.ts +197 -0
  123. package/src/utils/await-selections.ts +31 -0
  124. package/src/utils/config.ts +1 -5
  125. package/src/utils/cursors.ts +53 -81
  126. package/src/utils/map-query.ts +51 -734
  127. package/src/utils/path-info.ts +40 -0
  128. package/src/utils/relation-filter.ts +185 -0
  129. package/src/utils/selections.ts +2 -207
  130. package/dts/utils/deep-equal.d.ts +0 -2
  131. package/dts/utils/deep-equal.d.ts.map +0 -1
  132. package/dts/utils/drizzle-graphql.d.ts +0 -2
  133. package/dts/utils/drizzle-graphql.d.ts.map +0 -1
  134. package/dts/utils/loader-map.d.ts +0 -11
  135. package/dts/utils/loader-map.d.ts.map +0 -1
  136. package/dts/utils/usage.d.ts +0 -5
  137. package/dts/utils/usage.d.ts.map +0 -1
  138. package/esm/utils/deep-equal.d.ts +0 -2
  139. package/esm/utils/deep-equal.d.ts.map +0 -1
  140. package/esm/utils/deep-equal.js +0 -45
  141. package/esm/utils/deep-equal.js.map +0 -1
  142. package/esm/utils/drizzle-graphql.d.ts +0 -2
  143. package/esm/utils/drizzle-graphql.d.ts.map +0 -1
  144. package/esm/utils/drizzle-graphql.js +0 -232
  145. package/esm/utils/drizzle-graphql.js.map +0 -1
  146. package/esm/utils/loader-map.d.ts +0 -11
  147. package/esm/utils/loader-map.d.ts.map +0 -1
  148. package/esm/utils/loader-map.js +0 -35
  149. package/esm/utils/loader-map.js.map +0 -1
  150. package/esm/utils/usage.d.ts +0 -5
  151. package/esm/utils/usage.d.ts.map +0 -1
  152. package/esm/utils/usage.js +0 -59
  153. package/esm/utils/usage.js.map +0 -1
  154. package/lib/utils/deep-equal.js +0 -55
  155. package/lib/utils/deep-equal.js.map +0 -1
  156. package/lib/utils/drizzle-graphql.js +0 -236
  157. package/lib/utils/drizzle-graphql.js.map +0 -1
  158. package/lib/utils/loader-map.js +0 -56
  159. package/lib/utils/loader-map.js.map +0 -1
  160. package/lib/utils/usage.js +0 -83
  161. package/lib/utils/usage.js.map +0 -1
  162. package/src/utils/deep-equal.ts +0 -57
  163. package/src/utils/drizzle-graphql.ts +0 -274
  164. package/src/utils/loader-map.ts +0 -49
  165. package/src/utils/usage.ts +0 -62
@@ -9,378 +9,47 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- get getIndirectType () {
13
- return getIndirectType;
14
- },
15
- get normalizeInclude () {
16
- return normalizeInclude;
12
+ get planFromInfo () {
13
+ return planFromInfo;
17
14
  },
18
15
  get queryFromInfo () {
19
16
  return queryFromInfo;
20
17
  },
21
- get selectionStateFromInfo () {
22
- return selectionStateFromInfo;
23
- },
24
- get stateFromInfo () {
25
- return stateFromInfo;
18
+ get queryFromPlan () {
19
+ return queryFromPlan;
26
20
  }
27
21
  });
28
22
  const _core = require("@pothos/core");
29
- const _graphql = require("graphql");
30
- const _loadermap = require("./loader-map.js");
31
- const _selections = require("./selections.js");
32
- const _usage = require("./usage.js");
33
- function addTypeSelectionsForField(config, type, context, info, state, selection, indirectPath, deferred, segments = []) {
34
- var _type_extensions;
35
- if (selection.name.value.startsWith('__')) {
36
- return;
37
- }
38
- const { pothosDrizzleSelect, pothosIndirectInclude } = (_type_extensions = type.extensions) !== null && _type_extensions !== void 0 ? _type_extensions : {};
39
- if (!!(pothosIndirectInclude === null || pothosIndirectInclude === void 0 ? void 0 : pothosIndirectInclude.path) && pothosIndirectInclude.path.length > 0 || !!(pothosIndirectInclude === null || pothosIndirectInclude === void 0 ? void 0 : pothosIndirectInclude.paths) && pothosIndirectInclude.paths.length === 0) {
40
- var _pothosIndirectInclude_paths;
41
- resolveIndirectIncludePaths(type, info, selection, [], (_pothosIndirectInclude_paths = pothosIndirectInclude.paths) !== null && _pothosIndirectInclude_paths !== void 0 ? _pothosIndirectInclude_paths : [
42
- pothosIndirectInclude.path
43
- ], indirectPath, (resolvedType, field, path)=>{
44
- addTypeSelectionsForField(config, resolvedType, context, info, state, field, path, deferred, segments);
45
- }, deferred);
46
- } else if (pothosIndirectInclude) {
47
- addTypeSelectionsForField(config, info.schema.getType(pothosIndirectInclude.getType()), context, info, state, selection, indirectPath, deferred, segments);
48
- return;
49
- }
50
- if (!((0, _graphql.isObjectType)(type) || (0, _graphql.isInterfaceType)(type))) {
51
- return;
52
- }
53
- if (pothosDrizzleSelect) {
54
- (0, _selections.mergeSelection)(config, state, pothosDrizzleSelect === true ? true : {
55
- ...pothosDrizzleSelect
56
- });
57
- }
58
- if (selection.selectionSet && (!deferred || !state.skipDeferredFragments)) {
59
- addNestedSelections(config, type, context, info, state, selection.selectionSet, indirectPath, segments);
60
- }
61
- }
62
- function resolveIndirectIncludePaths(type, info, selection, pathPrefix, includePaths, path, resolve, deferred) {
63
- for (const includePath of includePaths){
64
- if (pathPrefix.length > 0) {
65
- resolveIndirectInclude(type, info, selection, [
66
- ...pathPrefix,
67
- ...includePath
68
- ], path, resolve, deferred);
69
- } else {
70
- resolveIndirectInclude(type, info, selection, includePath, path, resolve, deferred);
71
- }
72
- }
73
- }
74
- function resolveIndirectInclude(type, info, selection, includePath, path, resolve, deferred = false) {
75
- if (includePath.length === 0) {
76
- resolve(type, selection, path, deferred);
77
- return;
78
- }
79
- const [include, ...rest] = includePath;
80
- if (!selection.selectionSet || !include) {
81
- return;
82
- }
83
- for (const sel of selection.selectionSet.selections){
84
- switch(sel.kind){
85
- case _graphql.Kind.FIELD:
86
- if (!fieldSkipped(info, sel) && sel.name.value === include.name && ((0, _graphql.isObjectType)(type) || (0, _graphql.isInterfaceType)(type))) {
87
- var _ref;
88
- var _sel_alias;
89
- const returnType = (0, _graphql.getNamedType)(type.getFields()[sel.name.value].type);
90
- resolveIndirectInclude(returnType, info, sel, rest, [
91
- ...path,
92
- (_ref = (_sel_alias = sel.alias) === null || _sel_alias === void 0 ? void 0 : _sel_alias.value) !== null && _ref !== void 0 ? _ref : sel.name.value
93
- ], resolve, deferred);
94
- }
95
- continue;
96
- case _graphql.Kind.FRAGMENT_SPREAD:
97
- if (!include.type || info.fragments[sel.name.value].typeCondition.name.value === include.type) {
98
- resolveIndirectInclude(include.type ? info.schema.getType(include.type) : type, info, info.fragments[sel.name.value], includePath, path, resolve, deferred || isDeferredFragment(sel, info));
99
- }
100
- continue;
101
- case _graphql.Kind.INLINE_FRAGMENT:
102
- if (!sel.typeCondition || !include.type || sel.typeCondition.name.value === include.type) {
103
- resolveIndirectInclude(sel.typeCondition ? info.schema.getType(sel.typeCondition.name.value) : type, info, sel, includePath, path, resolve, deferred || isDeferredFragment(sel, info));
104
- }
105
- continue;
106
- default:
107
- throw new _core.PothosValidationError(`Unsupported selection kind ${selection.kind}`);
108
- }
109
- }
110
- }
111
- // The type to plan a fragment's selections against, or null when the fragment
112
- // cannot apply to `type`. A fragment on an interface the object implements is
113
- // planned against the object, whose field map already carries the interface
114
- // fields and their `select` extensions.
115
- function typeForFragment(type, condition) {
116
- var _condition_extensions;
117
- if ((0, _graphql.isObjectType)(type)) {
118
- if (condition.name === type.name) {
119
- return type;
120
- }
121
- if ((0, _graphql.isInterfaceType)(condition) && type.getInterfaces().some((iface)=>iface.name === condition.name)) {
122
- return type;
123
- }
124
- return null;
125
- }
126
- if (((0, _graphql.isObjectType)(condition) || (0, _graphql.isInterfaceType)(condition)) && ((_condition_extensions = condition.extensions) === null || _condition_extensions === void 0 ? void 0 : _condition_extensions.pothosDrizzleModel) === type.extensions.pothosDrizzleModel) {
127
- return condition;
23
+ const _selectionmapper = require("@pothos/selection-mapper");
24
+ const _adapter = require("./adapter.js");
25
+ function queryFromInfo({ config, select, ...options }) {
26
+ const plan = _selectionmapper.Plan.fromInfo((0, _adapter.drizzleAdapter)(config), {
27
+ ...options,
28
+ // A `select` without `columns` merges as "no columns yet", not "every column".
29
+ initial: select ? {
30
+ columns: {},
31
+ ...select
32
+ } : undefined
33
+ });
34
+ if (!plan) {
35
+ // Nothing is planned under the paths: the caller gets its own selection back untouched.
36
+ return select !== null && select !== void 0 ? select : {};
128
37
  }
129
- return null;
38
+ return (0, _core.isThenable)(plan) ? plan.then((settled)=>settled.query()) : plan.query();
130
39
  }
131
- function addNestedSelections(config, type, context, info, state, selections, indirectPath, segments = []) {
132
- let parentType = type;
133
- for (const selection of selections.selections){
134
- switch(selection.kind){
135
- case _graphql.Kind.FIELD:
136
- addFieldSelection(config, type, context, info, state, selection, indirectPath, segments);
137
- continue;
138
- case _graphql.Kind.FRAGMENT_SPREAD:
139
- if (state.skipDeferredFragments && isDeferredFragment(selection, info)) {
140
- continue;
141
- }
142
- parentType = typeForFragment(type, info.schema.getType(info.fragments[selection.name.value].typeCondition.name.value));
143
- if (!parentType) {
144
- continue;
145
- }
146
- addNestedSelections(config, parentType, context, info, state, info.fragments[selection.name.value].selectionSet, indirectPath, segments);
147
- continue;
148
- case _graphql.Kind.INLINE_FRAGMENT:
149
- if (state.skipDeferredFragments && isDeferredFragment(selection, info)) {
150
- continue;
151
- }
152
- parentType = selection.typeCondition ? typeForFragment(type, info.schema.getType(selection.typeCondition.name.value)) : type;
153
- if (!parentType) {
154
- continue;
155
- }
156
- addNestedSelections(config, parentType, context, info, state, selection.selectionSet, indirectPath, segments);
157
- continue;
158
- default:
159
- throw new _core.PothosValidationError(`Unsupported selection kind ${selection.kind}`);
160
- }
161
- }
40
+ function planFromInfo({ config, ...options }) {
41
+ return _selectionmapper.Plan.fromInfo((0, _adapter.drizzleAdapter)(config), options);
162
42
  }
163
- function addFieldSelection(config, type, context, info, state, selection, indirectPath, segments = []) {
164
- var _ref;
165
- var _selection_alias, _field_extensions;
166
- if (selection.name.value.startsWith('__') || fieldSkipped(info, selection)) {
167
- return;
168
- }
169
- const field = type.getFields()[selection.name.value];
170
- if (!field) {
171
- throw new _core.PothosValidationError(`Unknown field ${selection.name.value} on ${type.name}`);
172
- }
173
- const allSegments = [
174
- ...segments,
175
- {
176
- field: selection.name.value,
177
- alias: (_ref = (_selection_alias = selection.alias) === null || _selection_alias === void 0 ? void 0 : _selection_alias.value) !== null && _ref !== void 0 ? _ref : selection.name.value,
178
- parentType: type.name,
179
- isList: (0, _graphql.isListType)(field.type) || (0, _graphql.isListType)((0, _graphql.getNamedType)(field.type))
180
- }
181
- ];
182
- const fieldSelect = (_field_extensions = field.extensions) === null || _field_extensions === void 0 ? void 0 : _field_extensions.pothosDrizzleSelect;
183
- let fieldSelectionMap;
184
- let mappings = {};
185
- if (typeof fieldSelect === 'function') {
186
- const pathInfo = {
187
- path: allSegments.map((s)=>`${s.parentType}.${s.field}`),
188
- segments: allSegments
189
- };
190
- const args = (0, _core.getMappedArgumentValues)(field, selection, context, info);
191
- fieldSelectionMap = fieldSelect(args, context, (rawQuery, indirectInclude, expectedType)=>{
192
- const returnType = (0, _graphql.getNamedType)(field.type);
193
- const query = typeof rawQuery === 'function' ? rawQuery(args, context) : rawQuery;
194
- const normalizedIndirectInclude = Array.isArray(indirectInclude) ? normalizeInclude(indirectInclude, getIndirectType(returnType, info), expectedType ? (0, _graphql.getNamedType)(info.schema.getType(expectedType)) : undefined) : indirectInclude;
195
- const fieldState = createStateForSelection(config, info, normalizedIndirectInclude ? info.schema.getType(normalizedIndirectInclude.getType()) : returnType, state);
196
- if (typeof query === 'object' && Object.keys(query).length > 0) {
197
- (0, _selections.mergeSelection)(config, fieldState, {
198
- columns: {},
199
- ...query
200
- });
201
- }
202
- if (!!(normalizedIndirectInclude === null || normalizedIndirectInclude === void 0 ? void 0 : normalizedIndirectInclude.path) && normalizedIndirectInclude.path.length > 0 || !!(normalizedIndirectInclude === null || normalizedIndirectInclude === void 0 ? void 0 : normalizedIndirectInclude.paths) && normalizedIndirectInclude.paths.length > 0) {
203
- var _ref, _normalizedIndirectInclude_paths;
204
- var _returnType_extensions_pothosIndirectInclude, _returnType_extensions;
205
- resolveIndirectIncludePaths(returnType, info, selection, (_ref = (_returnType_extensions = returnType.extensions) === null || _returnType_extensions === void 0 ? void 0 : (_returnType_extensions_pothosIndirectInclude = _returnType_extensions.pothosIndirectInclude) === null || _returnType_extensions_pothosIndirectInclude === void 0 ? void 0 : _returnType_extensions_pothosIndirectInclude.path) !== null && _ref !== void 0 ? _ref : [], (_normalizedIndirectInclude_paths = normalizedIndirectInclude.paths) !== null && _normalizedIndirectInclude_paths !== void 0 ? _normalizedIndirectInclude_paths : [
206
- normalizedIndirectInclude.path
207
- ], [], (resolvedType, resolvedField, path, deferred)=>{
208
- addTypeSelectionsForField(config, resolvedType, context, info, fieldState, resolvedField, path, deferred, allSegments);
209
- });
210
- }
211
- addTypeSelectionsForField(config, returnType, context, info, fieldState, selection, [], undefined, allSegments);
212
- mappings = fieldState.mappings;
213
- return (0, _selections.selectionToQuery)(config, fieldState);
214
- }, (path)=>{
215
- const returnType = (0, _graphql.getNamedType)(field.type);
216
- let node = null;
217
- resolveIndirectInclude(returnType, info, selection, path.map((name)=>({
218
- name
219
- })), [], (_, resolvedField)=>{
220
- node = resolvedField;
221
- });
222
- return node;
223
- }, pathInfo);
224
- } else {
225
- fieldSelectionMap = fieldSelect;
43
+ function queryFromPlan(plan, select) {
44
+ if (!plan) {
45
+ // Nothing is selected under the paths: the caller gets its own selection back.
46
+ return select !== null && select !== void 0 ? select : {};
226
47
  }
227
- if (fieldSelect && (0, _selections.selectionCompatible)(state, fieldSelectionMap, true)) {
228
- var _ref1;
229
- var _selection_alias1;
230
- (0, _selections.mergeSelection)(config, state, fieldSelectionMap);
231
- state.mappings = mergeMappings(state.mappings, {
232
- [(_ref1 = (_selection_alias1 = selection.alias) === null || _selection_alias1 === void 0 ? void 0 : _selection_alias1.value) !== null && _ref1 !== void 0 ? _ref1 : selection.name.value]: {
233
- field: selection.name.value,
234
- type: type.name,
235
- mappings,
236
- indirectPath
237
- }
238
- });
239
- }
240
- }
241
- function mergeMappings(existing, incoming) {
242
- const result = {
243
- ...existing
244
- };
245
- for (const [key, value] of Object.entries(incoming)){
246
- if (result[key]) {
247
- result[key] = {
248
- ...result[key],
249
- mappings: mergeMappings(result[key].mappings, value.mappings)
250
- };
251
- } else {
252
- result[key] = value;
253
- }
254
- }
255
- return result;
256
- }
257
- function queryFromInfo({ withUsageCheck, ...options }) {
258
- const state = stateFromInfo(options);
259
- (0, _loadermap.setLoaderMappings)(options.context, options.info, state.mappings);
260
- const query = (0, _selections.selectionToQuery)(options.config, state);
261
- return withUsageCheck ? (0, _usage.wrapWithUsageCheck)(query) : query;
262
- }
263
- function stateFromInfo({ config, context, info, typeName, select, path = [], paths = [] }) {
264
- const returnType = (0, _graphql.getNamedType)(info.returnType);
265
- const type = typeName ? info.schema.getTypeMap()[typeName] : returnType;
266
- const initialSelection = select ? {
48
+ // A `select` without `columns` merges as "no columns yet", not "every column".
49
+ return plan.query(select ? {
267
50
  columns: {},
268
51
  ...select
269
- } : undefined;
270
- let state;
271
- if (path.length > 0 || paths.length > 0) {
272
- var _returnType_extensions, _ref;
273
- const { pothosIndirectInclude } = (_returnType_extensions = returnType.extensions) !== null && _returnType_extensions !== void 0 ? _returnType_extensions : {};
274
- resolveIndirectInclude(returnType, info, info.fieldNodes[0], (_ref = pothosIndirectInclude === null || pothosIndirectInclude === void 0 ? void 0 : pothosIndirectInclude.path) !== null && _ref !== void 0 ? _ref : [], [], (indirectType, indirectField, subPath, deferred)=>{
275
- resolveIndirectIncludePaths(indirectType, info, indirectField, [], paths.length > 0 ? paths.map((p)=>p.map((n)=>typeof n === 'string' ? {
276
- name: n
277
- } : n)) : [
278
- path.map((n)=>typeof n === 'string' ? {
279
- name: n
280
- } : n)
281
- ], subPath, (resolvedType, resolvedField, nested, deferred)=>{
282
- state = createStateForSelection(config, info, resolvedType, undefined, initialSelection);
283
- addTypeSelectionsForField(config, typeName ? type : resolvedType, context, info, state, resolvedField, nested, deferred);
284
- }, deferred);
285
- });
286
- } else {
287
- var _ref1;
288
- var _rootFieldNode_alias;
289
- state = createStateForSelection(config, info, type, undefined, initialSelection);
290
- // Create initial segment for the root query field
291
- const rootFieldNode = info.fieldNodes[0];
292
- const rootField = info.parentType.getFields()[rootFieldNode.name.value];
293
- const initialSegments = rootField ? [
294
- {
295
- field: rootFieldNode.name.value,
296
- alias: (_ref1 = (_rootFieldNode_alias = rootFieldNode.alias) === null || _rootFieldNode_alias === void 0 ? void 0 : _rootFieldNode_alias.value) !== null && _ref1 !== void 0 ? _ref1 : rootFieldNode.name.value,
297
- parentType: info.parentType.name,
298
- isList: (0, _graphql.isListType)(rootField.type) || (0, _graphql.isListType)((0, _graphql.getNamedType)(rootField.type))
299
- }
300
- ] : [];
301
- addTypeSelectionsForField(config, type, context, info, state, info.fieldNodes[0], [], undefined, initialSegments);
302
- }
303
- if (!state) {
304
- state = createStateForSelection(config, info, type, undefined, initialSelection);
305
- }
306
- return state;
307
- }
308
- function selectionStateFromInfo(config, context, info, typeName) {
309
- const type = typeName ? info.schema.getTypeMap()[typeName] : info.parentType;
310
- const state = createStateForSelection(config, info, type);
311
- if (!((0, _graphql.isObjectType)(type) || (0, _graphql.isInterfaceType)(type))) {
312
- throw new _core.PothosValidationError('Drizzle plugin can only resolve selections for object and interface types');
313
- }
314
- addFieldSelection(config, type, context, info, state, info.fieldNodes[0], []);
315
- return state;
316
- }
317
- function createStateForSelection(config, info, type, parent, initialSelections) {
318
- var _targetType_extensions, _ref;
319
- const targetType = getIndirectType(type, info);
320
- const { pothosDrizzleTable } = (_targetType_extensions = targetType.extensions) !== null && _targetType_extensions !== void 0 ? _targetType_extensions : {};
321
- if (!pothosDrizzleTable) {
322
- throw new _core.PothosValidationError(`Expected ${targetType.name} to have a table config`);
323
- }
324
- const state = (0, _selections.createState)(pothosDrizzleTable, (_ref = parent === null || parent === void 0 ? void 0 : parent.skipDeferredFragments) !== null && _ref !== void 0 ? _ref : config.skipDeferredFragments, parent);
325
- if (initialSelections) {
326
- (0, _selections.mergeSelection)(config, state, initialSelections);
327
- }
328
- return state;
329
- }
330
- function getIndirectType(type, info) {
331
- var _targetType_extensions;
332
- let targetType = type;
333
- while((_targetType_extensions = targetType.extensions) === null || _targetType_extensions === void 0 ? void 0 : _targetType_extensions.pothosIndirectInclude){
334
- targetType = info.schema.getType(targetType.extensions.pothosIndirectInclude.getType());
335
- }
336
- return targetType;
337
- }
338
- function normalizeInclude(path, type, expectedType) {
339
- let currentType = path.length > 0 ? type : expectedType !== null && expectedType !== void 0 ? expectedType : type;
340
- const normalized = [];
341
- if (!((0, _graphql.isObjectType)(currentType) || (0, _graphql.isInterfaceType)(currentType))) {
342
- throw new _core.PothosValidationError(`Expected ${currentType} to be an Object type`);
343
- }
344
- for (const fieldName of path){
345
- const field = currentType.getFields()[fieldName];
346
- if (!field) {
347
- throw new _core.PothosValidationError(`Expected ${currentType} to have a field ${fieldName}`);
348
- }
349
- currentType = (0, _graphql.getNamedType)(field.type);
350
- if (!((0, _graphql.isObjectType)(currentType) || (0, _graphql.isInterfaceType)(currentType))) {
351
- throw new _core.PothosValidationError(`Expected ${currentType} to be an Object or Interface type`);
352
- }
353
- normalized.push({
354
- name: fieldName,
355
- type: currentType.name
356
- });
357
- }
358
- return {
359
- getType: ()=>{
360
- var _ref;
361
- return (_ref = expectedType === null || expectedType === void 0 ? void 0 : expectedType.name) !== null && _ref !== void 0 ? _ref : normalized.length > 0 ? normalized[normalized.length - 1].type : type.name;
362
- },
363
- path: normalized
364
- };
365
- }
366
- function fieldSkipped(info, selection) {
367
- const skip = (0, _graphql.getDirectiveValues)(_graphql.GraphQLSkipDirective, selection, info.variableValues);
368
- if ((skip === null || skip === void 0 ? void 0 : skip.if) === true) {
369
- return true;
370
- }
371
- const include = (0, _graphql.getDirectiveValues)(_graphql.GraphQLIncludeDirective, selection, info.variableValues);
372
- if ((include === null || include === void 0 ? void 0 : include.if) === false) {
373
- return true;
374
- }
375
- return false;
376
- }
377
- function isDeferredFragment(node, info) {
378
- const deferDirective = info.schema.getDirective('defer');
379
- if (!deferDirective) {
380
- return false;
381
- }
382
- const defer = (0, _graphql.getDirectiveValues)(deferDirective, node, info.variableValues);
383
- return !!defer && defer.if !== false;
52
+ } : undefined);
384
53
  }
385
54
 
386
55
  //# sourceMappingURL=map-query.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/map-query.ts"],"names":["getIndirectType","normalizeInclude","queryFromInfo","selectionStateFromInfo","stateFromInfo","addTypeSelectionsForField","config","type","context","info","state","selection","indirectPath","deferred","segments","name","value","startsWith","pothosDrizzleSelect","pothosIndirectInclude","extensions","path","length","paths","resolveIndirectIncludePaths","resolvedType","field","schema","getType","isObjectType","isInterfaceType","mergeSelection","selectionSet","skipDeferredFragments","addNestedSelections","pathPrefix","includePaths","resolve","includePath","resolveIndirectInclude","include","rest","sel","selections","kind","Kind","FIELD","fieldSkipped","returnType","getNamedType","getFields","alias","FRAGMENT_SPREAD","fragments","typeCondition","isDeferredFragment","INLINE_FRAGMENT","PothosValidationError","typeForFragment","condition","getInterfaces","some","iface","pothosDrizzleModel","parentType","addFieldSelection","allSegments","isList","isListType","fieldSelect","fieldSelectionMap","mappings","pathInfo","map","s","args","getMappedArgumentValues","rawQuery","indirectInclude","expectedType","query","normalizedIndirectInclude","Array","isArray","undefined","fieldState","createStateForSelection","Object","keys","columns","resolvedField","selectionToQuery","node","_","selectionCompatible","mergeMappings","existing","incoming","result","key","entries","withUsageCheck","options","setLoaderMappings","wrapWithUsageCheck","typeName","select","getTypeMap","initialSelection","fieldNodes","indirectType","indirectField","subPath","p","n","nested","rootFieldNode","rootField","initialSegments","parent","initialSelections","targetType","pothosDrizzleTable","createState","currentType","normalized","fieldName","push","skip","getDirectiveValues","GraphQLSkipDirective","variableValues","if","GraphQLIncludeDirective","deferDirective","getDirective","defer"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utils/map-query.ts"],"names":["planFromInfo","queryFromInfo","queryFromPlan","config","select","options","plan","Plan","fromInfo","drizzleAdapter","initial","columns","undefined","isThenable","then","settled","query"],"mappings":";;;;;;;;;;;QA4CgBA;eAAAA;;QA3BAC;eAAAA;;QAyCAC;eAAAA;;;sBA1DW;iCACY;yBAEU;AAc1C,SAASD,cAAsC,EACpDE,MAAM,EACNC,MAAM,EACN,GAAGC,SACqB;IACxB,MAAMC,OAAOC,qBAAI,CAACC,QAAQ,CAACC,IAAAA,uBAAc,EAACN,SAAS;QACjD,GAAGE,OAAO;QACV,+EAA+E;QAC/EK,SAASN,SAAS;YAAEO,SAAS,CAAC;YAAG,GAAGP,MAAM;QAAC,IAAIQ;IACjD;IAEA,IAAI,CAACN,MAAM;QACT,wFAAwF;QACxF,OAAQF,mBAAAA,oBAAAA,SAAU,CAAC;IACrB;IAEA,OACES,IAAAA,gBAAU,EAACP,QAAQA,KAAKQ,IAAI,CAAC,CAACC,UAAY,AAACA,QAAwBC,KAAK,MAAMV,KAAKU,KAAK;AAE5F;AAQO,SAAShB,aAAa,EAC3BG,MAAM,EACN,GAAGE,SACgD;IACnD,OAAOE,qBAAI,CAACC,QAAQ,CAACC,IAAAA,uBAAc,EAACN,SAASE;AAC/C;AASO,SAASH,cACdI,IAA6B,EAC7BF,MAAU;IAEV,IAAI,CAACE,MAAM;QACT,+EAA+E;QAC/E,OAAQF,mBAAAA,oBAAAA,SAAU,CAAC;IACrB;IAEA,+EAA+E;IAC/E,OAAOE,KAAKU,KAAK,CAACZ,SAAS;QAAEO,SAAS,CAAC;QAAG,GAAGP,MAAM;IAAC,IAAIQ;AAC1D"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "pathInfoFor", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return pathInfoFor;
9
+ }
10
+ });
11
+ const _graphql = require("graphql");
12
+ function pathInfoFor(position) {
13
+ if (!position) {
14
+ return undefined;
15
+ }
16
+ const path = [];
17
+ const segments = [];
18
+ for(let at = position; at; at = at.parent){
19
+ var _ref;
20
+ var _at_node_alias;
21
+ const field = at.node.name.value;
22
+ path.push(`${at.type.name}.${field}`);
23
+ segments.push({
24
+ field,
25
+ alias: (_ref = (_at_node_alias = at.node.alias) === null || _at_node_alias === void 0 ? void 0 : _at_node_alias.value) !== null && _ref !== void 0 ? _ref : field,
26
+ parentType: at.type.name,
27
+ isList: isListField(at.field.type)
28
+ });
29
+ }
30
+ return {
31
+ path: path.reverse(),
32
+ segments: segments.reverse()
33
+ };
34
+ }
35
+ /** A list field, whether or not the list itself is non-null (`[Post!]!`). */ function isListField(type) {
36
+ return (0, _graphql.isListType)(type) || (0, _graphql.isNonNullType)(type) && (0, _graphql.isListType)(type.ofType);
37
+ }
38
+
39
+ //# sourceMappingURL=path-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/path-info.ts"],"names":["pathInfoFor","position","undefined","path","segments","at","parent","field","node","name","value","push","type","alias","parentType","isList","isListField","reverse","isListType","isNonNullType","ofType"],"mappings":";;;;+BAagBA;;;eAAAA;;;yBAZkD;AAY3D,SAASA,YAAYC,QAA8B;IACxD,IAAI,CAACA,UAAU;QACb,OAAOC;IACT;IAEA,MAAMC,OAAiB,EAAE;IACzB,MAAMC,WAA4B,EAAE;IAEpC,IAAK,IAAIC,KAA2BJ,UAAUI,IAAIA,KAAKA,GAAGC,MAAM,CAAE;;YAMvDD;QALT,MAAME,QAAQF,GAAGG,IAAI,CAACC,IAAI,CAACC,KAAK;QAEhCP,KAAKQ,IAAI,CAAC,GAAGN,GAAGO,IAAI,CAACH,IAAI,CAAC,CAAC,EAAEF,OAAO;QACpCH,SAASO,IAAI,CAAC;YACZJ;YACAM,KAAK,WAAER,iBAAAA,GAAGG,IAAI,CAACK,KAAK,cAAbR,qCAAAA,eAAeK,KAAK,uCAAIH;YAC/BO,YAAYT,GAAGO,IAAI,CAACH,IAAI;YACxBM,QAAQC,YAAYX,GAAGE,KAAK,CAACK,IAAI;QACnC;IACF;IAEA,OAAO;QAAET,MAAMA,KAAKc,OAAO;QAAIb,UAAUA,SAASa,OAAO;IAAG;AAC9D;AAEA,2EAA2E,GAC3E,SAASD,YAAYJ,IAAuB;IAC1C,OAAOM,IAAAA,mBAAU,EAACN,SAAUO,IAAAA,sBAAa,EAACP,SAASM,IAAAA,mBAAU,EAACN,KAAKQ,MAAM;AAC3E"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "buildRelationFilter", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return buildRelationFilter;
9
+ }
10
+ });
11
+ const _drizzleorm = require("drizzle-orm");
12
+ const _sqlitecore = require("drizzle-orm/sqlite-core");
13
+ // `select 1`, for an `exists` that only has to find a row.
14
+ const one = {
15
+ one: (0, _drizzleorm.sql)`1`
16
+ };
17
+ function buildRelationFilter(client, relation, parentTable, targetKey) {
18
+ const targetTable = relation.targetTable;
19
+ const throughTable = relation.throughTable;
20
+ // `filter` correlates the parent to the target, or to the junction table when there is one, in
21
+ // which case `joinCondition` is what carries the junction the rest of the way to the target.
22
+ const { filter, joinCondition } = (0, _drizzleorm.relationToSQL)(relation, parentTable, targetTable, throughTable);
23
+ if (!throughTable || !joinCondition) {
24
+ // Without a junction table every related row is a distinct target row, so the two counts are
25
+ // the same query.
26
+ const countRows = (where)=>countOf(client.select(countStar()).from(targetTable).where((0, _drizzleorm.and)(where, filter)));
27
+ return {
28
+ filter,
29
+ countRows,
30
+ countDistinctRows: (_key, where)=>countRows(where)
31
+ };
32
+ }
33
+ const relatedRows = (aggregate, where)=>countOf(client.select(aggregate).from(targetTable).innerJoin(throughTable, joinCondition).where((0, _drizzleorm.and)(where, filter)));
34
+ return {
35
+ // SQLite needs the identity lookup to avoid target scans. PostgreSQL can plan EXISTS as
36
+ // a semijoin; projecting identities adds a target join its planner may not eliminate.
37
+ filter: (targetKey === null || targetKey === void 0 ? void 0 : targetKey.length) && (0, _drizzleorm.is)(targetTable, _sqlitecore.SQLiteTable) ? targetIdentityInRelation(client, relation, parentTable, targetTable, throughTable, targetKey) : (0, _drizzleorm.exists)(client.select(one).from(throughTable).where((0, _drizzleorm.and)(filter, joinCondition))),
38
+ countRows: (where)=>relatedRows(countStar(), where),
39
+ countDistinctRows: (key, where)=>relatedRows({
40
+ count: (0, _drizzleorm.countDistinct)(key)
41
+ }, where)
42
+ };
43
+ }
44
+ /**
45
+ * Project a non-null unique target key through the original relation join, then compare that
46
+ * key with itself. Comparing the target key directly with a junction column would change
47
+ * SQLite's collation precedence. Keeping the join also handles composite relation keys and
48
+ * excludes null junction keys without special truth-table guards.
49
+ *
50
+ * `key` must be a database-enforced unique constraint whose columns are all NOT NULL. That
51
+ * makes membership identify exactly one target row and keeps negation two-valued. SQLite can
52
+ * allow nulls even in primary keys, so callers must check notNull, not just primary.
53
+ *
54
+ * Build object restrictions and RAW callbacks against the inner target alias. Static RAW SQL
55
+ * is passed through by Drizzle: references to the outer target can still force a target scan.
56
+ * A RAW callback must use its supplied table to benefit from the identity lookup.
57
+ */ function targetIdentityInRelation(client, relation, parentTable, targetTable, throughTable, key) {
58
+ const names = new Set([
59
+ parentTable,
60
+ targetTable,
61
+ throughTable
62
+ ].map(_drizzleorm.getTableName));
63
+ let alias = '_pothos_related';
64
+ while(names.has(alias)){
65
+ alias += '_';
66
+ }
67
+ const matchedTable = (0, _drizzleorm.aliasedTable)(targetTable, alias);
68
+ const { filter, joinCondition } = (0, _drizzleorm.relationToSQL)(relation, parentTable, matchedTable, throughTable);
69
+ const fields = Object.fromEntries(key.map((column, i)=>[
70
+ String(i),
71
+ (0, _drizzleorm.sql)`${(0, _drizzleorm.aliasedTableColumn)(column, alias)}`
72
+ ]));
73
+ const columns = key.map((column)=>(0, _drizzleorm.sql)`${column}`);
74
+ const identity = columns.length === 1 ? columns[0] : (0, _drizzleorm.sql)`(${_drizzleorm.sql.join(columns, (0, _drizzleorm.sql)`, `)})`;
75
+ return (0, _drizzleorm.inArray)(identity, client.select(fields).from(throughTable).innerJoin(matchedTable, joinCondition).where(filter));
76
+ }
77
+ // A fresh `count(*)` each time: `mapWith` mutates the `SQL` it is called on, so a shared one
78
+ // would be re-decoded by every query that selected it.
79
+ function countStar() {
80
+ return {
81
+ count: (0, _drizzleorm.count)()
82
+ };
83
+ }
84
+ // The count as a value the surrounding query can select. `count()` carries drizzle's `Number`
85
+ // decoder, but a `select` built around it decodes as the row it returns, so the mapping is
86
+ // restored here and the count comes back as a number on every dialect.
87
+ function countOf(rows) {
88
+ return (0, _drizzleorm.sql)`${rows.getSQL()}`.mapWith(Number);
89
+ }
90
+
91
+ //# sourceMappingURL=relation-filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/relation-filter.ts"],"names":["buildRelationFilter","one","sql","client","relation","parentTable","targetKey","targetTable","throughTable","filter","joinCondition","relationToSQL","countRows","where","countOf","select","countStar","from","and","countDistinctRows","_key","relatedRows","aggregate","innerJoin","length","is","SQLiteTable","targetIdentityInRelation","exists","key","count","countDistinct","names","Set","map","getTableName","alias","has","matchedTable","aliasedTable","fields","Object","fromEntries","column","i","String","aliasedTableColumn","columns","identity","join","inArray","rows","getSQL","mapWith","Number"],"mappings":"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"}