@pothos/plugin-drizzle 0.18.1 → 0.19.1
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.
- package/CHANGELOG.md +357 -0
- package/README.md +1199 -563
- package/dts/connection-helpers.d.ts +18 -8
- package/dts/connection-helpers.d.ts.map +1 -1
- package/dts/drizzle-field-builder.d.ts +4 -11
- package/dts/drizzle-field-builder.d.ts.map +1 -1
- package/dts/global-types.d.ts.map +1 -1
- package/dts/index.d.ts.map +1 -1
- package/dts/model-loader.d.ts +18 -17
- package/dts/model-loader.d.ts.map +1 -1
- package/dts/types.d.ts +82 -22
- package/dts/types.d.ts.map +1 -1
- package/dts/utils/adapter.d.ts +39 -0
- package/dts/utils/adapter.d.ts.map +1 -0
- package/dts/utils/await-selections.d.ts +12 -0
- package/dts/utils/await-selections.d.ts.map +1 -0
- package/dts/utils/config.d.ts +23 -3
- package/dts/utils/config.d.ts.map +1 -1
- package/dts/utils/cursors.d.ts +6 -6
- package/dts/utils/cursors.d.ts.map +1 -1
- package/dts/utils/map-query.d.ts +22 -21
- package/dts/utils/map-query.d.ts.map +1 -1
- package/dts/utils/path-info.d.ts +13 -0
- package/dts/utils/path-info.d.ts.map +1 -0
- package/dts/utils/relation-filter.d.ts +48 -0
- package/dts/utils/relation-filter.d.ts.map +1 -0
- package/dts/utils/selections.d.ts +2 -21
- package/dts/utils/selections.d.ts.map +1 -1
- package/esm/connection-helpers.d.ts +18 -8
- package/esm/connection-helpers.d.ts.map +1 -1
- package/esm/connection-helpers.js +52 -19
- package/esm/connection-helpers.js.map +1 -1
- package/esm/drizzle-field-builder.d.ts +4 -11
- package/esm/drizzle-field-builder.d.ts.map +1 -1
- package/esm/drizzle-field-builder.js +138 -96
- package/esm/drizzle-field-builder.js.map +1 -1
- package/esm/field-builder.js +61 -47
- package/esm/field-builder.js.map +1 -1
- package/esm/global-types.d.ts.map +1 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +37 -61
- package/esm/index.js.map +1 -1
- package/esm/model-loader.d.ts +18 -17
- package/esm/model-loader.d.ts.map +1 -1
- package/esm/model-loader.js +76 -45
- package/esm/model-loader.js.map +1 -1
- package/esm/schema-builder.js +40 -149
- package/esm/schema-builder.js.map +1 -1
- package/esm/types.d.ts +82 -22
- package/esm/types.d.ts.map +1 -1
- package/esm/types.js.map +1 -1
- package/esm/utils/adapter.d.ts +39 -0
- package/esm/utils/adapter.d.ts.map +1 -0
- package/esm/utils/adapter.js +137 -0
- package/esm/utils/adapter.js.map +1 -0
- package/esm/utils/await-selections.d.ts +12 -0
- package/esm/utils/await-selections.d.ts.map +1 -0
- package/esm/utils/await-selections.js +19 -0
- package/esm/utils/await-selections.js.map +1 -0
- package/esm/utils/config.d.ts +23 -3
- package/esm/utils/config.d.ts.map +1 -1
- package/esm/utils/config.js +1 -4
- package/esm/utils/config.js.map +1 -1
- package/esm/utils/cursors.d.ts +6 -6
- package/esm/utils/cursors.d.ts.map +1 -1
- package/esm/utils/cursors.js +75 -92
- package/esm/utils/cursors.js.map +1 -1
- package/esm/utils/map-query.d.ts +22 -21
- package/esm/utils/map-query.d.ts.map +1 -1
- package/esm/utils/map-query.js +40 -354
- package/esm/utils/map-query.js.map +1 -1
- package/esm/utils/path-info.d.ts +13 -0
- package/esm/utils/path-info.d.ts.map +1 -0
- package/esm/utils/path-info.js +37 -0
- package/esm/utils/path-info.js.map +1 -0
- package/esm/utils/relation-filter.d.ts +48 -0
- package/esm/utils/relation-filter.d.ts.map +1 -0
- package/esm/utils/relation-filter.js +92 -0
- package/esm/utils/relation-filter.js.map +1 -0
- package/esm/utils/selections.d.ts +2 -21
- package/esm/utils/selections.d.ts.map +1 -1
- package/esm/utils/selections.js +1 -133
- package/esm/utils/selections.js.map +1 -1
- package/lib/connection-helpers.js +51 -18
- package/lib/connection-helpers.js.map +1 -1
- package/lib/drizzle-field-builder.js +136 -94
- package/lib/drizzle-field-builder.js.map +1 -1
- package/lib/field-builder.js +58 -44
- package/lib/field-builder.js.map +1 -1
- package/lib/index.js +36 -60
- package/lib/index.js.map +1 -1
- package/lib/model-loader.js +76 -45
- package/lib/model-loader.js.map +1 -1
- package/lib/schema-builder.js +40 -149
- package/lib/schema-builder.js.map +1 -1
- package/lib/types.js.map +1 -1
- package/lib/utils/adapter.js +147 -0
- package/lib/utils/adapter.js.map +1 -0
- package/lib/utils/await-selections.js +20 -0
- package/lib/utils/await-selections.js.map +1 -0
- package/lib/utils/config.js +1 -4
- package/lib/utils/config.js.map +1 -1
- package/lib/utils/cursors.js +67 -90
- package/lib/utils/cursors.js.map +1 -1
- package/lib/utils/map-query.js +28 -359
- package/lib/utils/map-query.js.map +1 -1
- package/lib/utils/path-info.js +39 -0
- package/lib/utils/path-info.js.map +1 -0
- package/lib/utils/relation-filter.js +91 -0
- package/lib/utils/relation-filter.js.map +1 -0
- package/lib/utils/selections.js +3 -158
- package/lib/utils/selections.js.map +1 -1
- package/package.json +10 -8
- package/src/connection-helpers.ts +168 -54
- package/src/drizzle-field-builder.ts +296 -176
- package/src/field-builder.ts +110 -77
- package/src/global-types.ts +0 -32
- package/src/index.ts +42 -68
- package/src/model-loader.ts +110 -71
- package/src/schema-builder.ts +76 -169
- package/src/types.ts +178 -46
- package/src/utils/adapter.ts +197 -0
- package/src/utils/await-selections.ts +31 -0
- package/src/utils/config.ts +1 -5
- package/src/utils/cursors.ts +84 -83
- package/src/utils/map-query.ts +51 -734
- package/src/utils/path-info.ts +40 -0
- package/src/utils/relation-filter.ts +185 -0
- package/src/utils/selections.ts +2 -207
- package/dts/utils/deep-equal.d.ts +0 -2
- package/dts/utils/deep-equal.d.ts.map +0 -1
- package/dts/utils/drizzle-graphql.d.ts +0 -2
- package/dts/utils/drizzle-graphql.d.ts.map +0 -1
- package/dts/utils/loader-map.d.ts +0 -11
- package/dts/utils/loader-map.d.ts.map +0 -1
- package/dts/utils/usage.d.ts +0 -5
- package/dts/utils/usage.d.ts.map +0 -1
- package/esm/utils/deep-equal.d.ts +0 -2
- package/esm/utils/deep-equal.d.ts.map +0 -1
- package/esm/utils/deep-equal.js +0 -45
- package/esm/utils/deep-equal.js.map +0 -1
- package/esm/utils/drizzle-graphql.d.ts +0 -2
- package/esm/utils/drizzle-graphql.d.ts.map +0 -1
- package/esm/utils/drizzle-graphql.js +0 -232
- package/esm/utils/drizzle-graphql.js.map +0 -1
- package/esm/utils/loader-map.d.ts +0 -11
- package/esm/utils/loader-map.d.ts.map +0 -1
- package/esm/utils/loader-map.js +0 -35
- package/esm/utils/loader-map.js.map +0 -1
- package/esm/utils/usage.d.ts +0 -5
- package/esm/utils/usage.d.ts.map +0 -1
- package/esm/utils/usage.js +0 -59
- package/esm/utils/usage.js.map +0 -1
- package/lib/utils/deep-equal.js +0 -55
- package/lib/utils/deep-equal.js.map +0 -1
- package/lib/utils/drizzle-graphql.js +0 -236
- package/lib/utils/drizzle-graphql.js.map +0 -1
- package/lib/utils/loader-map.js +0 -56
- package/lib/utils/loader-map.js.map +0 -1
- package/lib/utils/usage.js +0 -83
- package/lib/utils/usage.js.map +0 -1
- package/src/utils/deep-equal.ts +0 -57
- package/src/utils/drizzle-graphql.ts +0 -274
- package/src/utils/loader-map.ts +0 -49
- package/src/utils/usage.ts +0 -62
|
@@ -9,12 +9,13 @@ Object.defineProperty(exports, "DrizzleObjectFieldBuilder", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
const _core = require("@pothos/core");
|
|
12
|
+
const _selectionmapper = require("@pothos/selection-mapper");
|
|
12
13
|
const _drizzleorm = require("drizzle-orm");
|
|
13
|
-
const _graphql = require("graphql");
|
|
14
14
|
const _config = require("./utils/config.js");
|
|
15
15
|
const _cursors = require("./utils/cursors.js");
|
|
16
|
+
const _pathinfo = require("./utils/path-info.js");
|
|
16
17
|
const _refs = require("./utils/refs.js");
|
|
17
|
-
const
|
|
18
|
+
const _relationfilter = require("./utils/relation-filter.js");
|
|
18
19
|
function _define_property(obj, key, value) {
|
|
19
20
|
if (key in obj) {
|
|
20
21
|
Object.defineProperty(obj, key, {
|
|
@@ -70,18 +71,16 @@ class DrizzleObjectFieldBuilder extends RootBuilder {
|
|
|
70
71
|
}
|
|
71
72
|
const ref = (_options_type = options.type) !== null && _options_type !== void 0 ? _options_type : (0, _refs.getRefFromModel)(relatedTable.name, this.builder);
|
|
72
73
|
const { query = {}, extensions, ...rest } = options;
|
|
73
|
-
|
|
74
|
-
|
|
74
|
+
// Built once per field: the select allocates nothing when the nested selection is sync. The
|
|
75
|
+
// nested selection already carries the field's `query` (it is merged into the child first),
|
|
76
|
+
// so nothing is spread over it.
|
|
77
|
+
const selectRelation = (nested)=>({
|
|
75
78
|
columns: {},
|
|
76
79
|
with: {
|
|
77
|
-
[name]:
|
|
78
|
-
...nestedQuery(query),
|
|
79
|
-
...typeof query === 'function' ? query(args, context, pathInfo) : query
|
|
80
|
-
})
|
|
80
|
+
[name]: nested
|
|
81
81
|
}
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
};
|
|
82
|
+
});
|
|
83
|
+
const relationSelect = (args, context, nestedQuery, _resolveSelection, pathInfo)=>(0, _core.completeValue)(nestedQuery(typeof query === 'function' ? query(args, context, pathInfo) : query), selectRelation);
|
|
85
84
|
return this.field({
|
|
86
85
|
...rest,
|
|
87
86
|
type: relationField instanceof _drizzleorm.Many ? [
|
|
@@ -89,7 +88,8 @@ class DrizzleObjectFieldBuilder extends RootBuilder {
|
|
|
89
88
|
] : ref,
|
|
90
89
|
extensions: {
|
|
91
90
|
...extensions,
|
|
92
|
-
pothosDrizzleSelect: relationSelect
|
|
91
|
+
pothosDrizzleSelect: relationSelect,
|
|
92
|
+
pothosDrizzleLoaded: (value)=>value[name] !== undefined
|
|
93
93
|
},
|
|
94
94
|
resolve: (parent)=>parent[name]
|
|
95
95
|
});
|
|
@@ -101,25 +101,18 @@ class DrizzleObjectFieldBuilder extends RootBuilder {
|
|
|
101
101
|
if (!relationField) {
|
|
102
102
|
throw new _core.PothosSchemaError(`Could not find relation ${relationName} on table ${this.table}`);
|
|
103
103
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
};
|
|
104
|
+
// Explicit NOT NULL is required even for primary keys: SQLite permits nullable text and
|
|
105
|
+
// composite primary keys. Without a total identity the relation filter keeps EXISTS.
|
|
106
|
+
const targetKey = relationField.throughTable ? schemaConfig.getUniqueConstraints(relationField.targetTableName).find((columns)=>columns.every((column)=>column.notNull)) : undefined;
|
|
108
107
|
const relationSelect = (args, context, nestedQuery)=>{
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
return {
|
|
112
|
-
columns: (_selection_columns = selection.columns) !== null && _selection_columns !== void 0 ? _selection_columns : {},
|
|
113
|
-
extras: selection.extras,
|
|
114
|
-
with: selection.with
|
|
115
|
-
};
|
|
108
|
+
const buildFilter = (parentTable)=>(0, _relationfilter.buildRelationFilter)((0, _config.getClient)(this.builder, context), relationField, parentTable, targetKey).filter;
|
|
109
|
+
return (0, _core.completeValue)(options.select(buildFilter, args, context, nestedQuery), pickSelection);
|
|
116
110
|
};
|
|
111
|
+
const { select: _select, extensions, ...fieldOptions } = options;
|
|
117
112
|
return this.field({
|
|
118
|
-
|
|
119
|
-
nullable: options.nullable,
|
|
120
|
-
args: options.args,
|
|
121
|
-
description: options.description,
|
|
113
|
+
...fieldOptions,
|
|
122
114
|
extensions: {
|
|
115
|
+
...extensions,
|
|
123
116
|
pothosDrizzleSelect: relationSelect
|
|
124
117
|
},
|
|
125
118
|
resolve: options.resolve
|
|
@@ -132,17 +125,34 @@ class DrizzleObjectFieldBuilder extends RootBuilder {
|
|
|
132
125
|
const schemaConfig = (0, _config.getSchemaConfig)(this.builder);
|
|
133
126
|
const relationField = (_schemaConfig_relations = schemaConfig.relations) === null || _schemaConfig_relations === void 0 ? void 0 : _schemaConfig_relations[this.table].relations[relationName];
|
|
134
127
|
const relatedTable = schemaConfig.relations[relationField.targetTableName];
|
|
128
|
+
// A related row counts once however many junction rows lead to it, which the count needs a
|
|
129
|
+
// column identifying a target row to say. Without one it falls back to counting the target
|
|
130
|
+
// table filtered by the relation, which says the same thing more slowly.
|
|
131
|
+
const targetKey = schemaConfig.findPrimaryKey(relationField.targetTableName);
|
|
132
|
+
const distinctBy = (targetKey === null || targetKey === void 0 ? void 0 : targetKey.length) === 1 && targetKey[0].notNull ? targetKey[0] : undefined;
|
|
133
|
+
// Built once per field; the `extras` function it returns is what the plan carried before.
|
|
134
|
+
const countExtras = (whereClause, ctx, buildFilter)=>({
|
|
135
|
+
extras: {
|
|
136
|
+
[countKey]: (parent)=>{
|
|
137
|
+
const client = (0, _config.getClient)(this.builder, ctx);
|
|
138
|
+
if (!distinctBy) {
|
|
139
|
+
return client.$count(relatedTable.table, whereClause ? (0, _drizzleorm.and)(buildFilter(parent), whereClause) : buildFilter(parent));
|
|
140
|
+
}
|
|
141
|
+
return (0, _relationfilter.buildRelationFilter)(client, relationField, parent).countDistinctRows(distinctBy, whereClause);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
});
|
|
135
145
|
return this.relatedField(relationName, {
|
|
136
146
|
...options,
|
|
137
147
|
type: 'Int',
|
|
138
148
|
nullable: false,
|
|
149
|
+
extensions: {
|
|
150
|
+
...options.extensions,
|
|
151
|
+
pothosDrizzleLoaded: (value)=>value[countKey] !== undefined
|
|
152
|
+
},
|
|
139
153
|
select: (buildFilter, args, ctx)=>{
|
|
140
154
|
const whereClause = typeof where === 'function' ? where(args, ctx) : where;
|
|
141
|
-
return
|
|
142
|
-
extras: {
|
|
143
|
-
[countKey]: (parent)=>(0, _config.getClient)(this.builder, ctx).$count(relatedTable.table, whereClause ? (0, _drizzleorm.and)(buildFilter(parent), whereClause) : buildFilter(parent))
|
|
144
|
-
}
|
|
145
|
-
};
|
|
155
|
+
return (0, _core.isThenable)(whereClause) ? whereClause.then((resolved)=>countExtras(resolved, ctx, buildFilter)) : countExtras(whereClause, ctx, buildFilter);
|
|
146
156
|
},
|
|
147
157
|
resolve: (parent)=>parent[countKey]
|
|
148
158
|
});
|
|
@@ -186,9 +196,9 @@ class DrizzleObjectFieldBuilder extends RootBuilder {
|
|
|
186
196
|
'ID'
|
|
187
197
|
])), _define_property(this, "exposeStringList", this.createExpose([
|
|
188
198
|
'String'
|
|
189
|
-
])), _define_property(this, "table", void 0), _define_property(this, "typename", void 0), _define_property(this, "relatedConnection", function relatedConnection(name, { maxSize = (_this_builder_options_drizzle = this.builder.options.drizzle) === null || _this_builder_options_drizzle === void 0 ? void 0 : _this_builder_options_drizzle.maxConnectionSize, defaultSize = (_this_builder_options_drizzle1 = this.builder.options.drizzle) === null || _this_builder_options_drizzle1 === void 0 ? void 0 : _this_builder_options_drizzle1.defaultConnectionSize, query,
|
|
199
|
+
])), _define_property(this, "table", void 0), _define_property(this, "typename", void 0), _define_property(this, "relatedConnection", function relatedConnection(name, { maxSize = (_this_builder_options_drizzle = this.builder.options.drizzle) === null || _this_builder_options_drizzle === void 0 ? void 0 : _this_builder_options_drizzle.maxConnectionSize, defaultSize = (_this_builder_options_drizzle1 = this.builder.options.drizzle) === null || _this_builder_options_drizzle1 === void 0 ? void 0 : _this_builder_options_drizzle1.defaultConnectionSize, query, extensions, description, totalCount, ...options } = {}, connectionOptions = {}, edgeOptions = {}) {
|
|
190
200
|
var _options_type;
|
|
191
|
-
var _schemaConfig_relations;
|
|
201
|
+
var _schemaConfig_relations, _this_builder_options_drizzle2;
|
|
192
202
|
const schemaConfig = (0, _config.getSchemaConfig)(this.builder);
|
|
193
203
|
const relationField = (_schemaConfig_relations = schemaConfig.relations) === null || _schemaConfig_relations === void 0 ? void 0 : _schemaConfig_relations[this.table].relations[name];
|
|
194
204
|
const relatedTable = schemaConfig.relations[relationField.targetTableName];
|
|
@@ -197,19 +207,31 @@ class DrizzleObjectFieldBuilder extends RootBuilder {
|
|
|
197
207
|
}
|
|
198
208
|
const ref = (_options_type = options.type) !== null && _options_type !== void 0 ? _options_type : (0, _refs.getRefFromModel)(relationField.targetTableName, this.builder);
|
|
199
209
|
let typeName;
|
|
200
|
-
const
|
|
201
|
-
|
|
202
|
-
|
|
210
|
+
const filterTotalCount = ((_this_builder_options_drizzle2 = this.builder.options.drizzle) === null || _this_builder_options_drizzle2 === void 0 ? void 0 : _this_builder_options_drizzle2.filterConnectionTotalCount) !== false;
|
|
211
|
+
// The count for `totalCount` matches the connection's own filter: what the relation selects
|
|
212
|
+
// (including a `through` join and the relation's own `where`) plus the `where` from the
|
|
213
|
+
// field's `query`, so the count agrees with the rows being paginated. The `where` goes
|
|
214
|
+
// through the same `relationsFilterToSQL` the relational query builder puts it through, and
|
|
215
|
+
// `countRows` combines the two in the same order, so the count's predicate is the page
|
|
216
|
+
// query's predicate less the limit and the keyset clauses.
|
|
217
|
+
const buildCount = (client, parentTable, where)=>{
|
|
218
|
+
const { countRows } = (0, _relationfilter.buildRelationFilter)(client, relationField, parentTable);
|
|
219
|
+
if (!where || !filterTotalCount) {
|
|
220
|
+
return countRows();
|
|
221
|
+
}
|
|
222
|
+
return countRows((0, _drizzleorm.relationsFilterToSQL)(relatedTable.table, where, relatedTable.relations, schemaConfig.relations));
|
|
203
223
|
};
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
224
|
+
// The field's `query` may be async, so the result is a promise when it is. The `PathInfo` is
|
|
225
|
+
// provided by the adapter, and only read for a callback that takes one.
|
|
226
|
+
const resolveFieldQuery = (args, ctx, pathInfo)=>(0, _core.completeValue)(typeof query === 'function' ? query(args, ctx, pathInfo) : query, orEmpty);
|
|
227
|
+
const getQuery = (args, ctx, { limit, orderBy, where, ...fieldQuery })=>{
|
|
228
|
+
var _ref;
|
|
207
229
|
const { cursorFields, columns, ...connectionQuery } = (0, _cursors.drizzleCursorConnectionQuery)({
|
|
208
230
|
ctx,
|
|
209
231
|
maxSize,
|
|
210
232
|
defaultSize,
|
|
211
233
|
args,
|
|
212
|
-
orderBy: (
|
|
234
|
+
orderBy: (_ref = typeof orderBy === 'function' ? orderBy(relatedTable.table) : orderBy) !== null && _ref !== void 0 ? _ref : (0, _config.getSchemaConfig)(this.builder).getPrimaryKey(relationField.targetTableName),
|
|
213
235
|
extras: fieldQuery.extras,
|
|
214
236
|
where,
|
|
215
237
|
config: schemaConfig,
|
|
@@ -228,23 +250,30 @@ class DrizzleObjectFieldBuilder extends RootBuilder {
|
|
|
228
250
|
cursorFields
|
|
229
251
|
};
|
|
230
252
|
};
|
|
231
|
-
const
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
const
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
253
|
+
const countKey = `_${name}_count`;
|
|
254
|
+
// What the document asks of this connection, read the way the planner reads it (through
|
|
255
|
+
// fragments, directives, and a wrapping type), so the resolve side agrees with the plan. The
|
|
256
|
+
// selection is read once per request and shared by every parent row.
|
|
257
|
+
const connectionSelectionFromNames = (selected)=>{
|
|
258
|
+
const hasTotalCount = !!totalCount && selected.has('totalCount');
|
|
259
|
+
for (const field of selected){
|
|
260
|
+
if (field !== 'totalCount' && field !== '__typename') {
|
|
261
|
+
return {
|
|
262
|
+
hasTotalCount,
|
|
263
|
+
totalCountOnly: false
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
return {
|
|
268
|
+
hasTotalCount,
|
|
269
|
+
totalCountOnly: hasTotalCount
|
|
270
|
+
};
|
|
271
|
+
};
|
|
272
|
+
const connectionSelection = (context, info)=>connectionSelectionFromNames((0, _selectionmapper.selectedFieldNames)(context, info));
|
|
273
|
+
// Built once per field, so a synchronous plan allocates nothing beyond the map itself.
|
|
274
|
+
const selectConnection = (fieldQuery, nested, context, hasTotalCount, totalCountOnly)=>{
|
|
246
275
|
const countSelection = {
|
|
247
|
-
[
|
|
276
|
+
[countKey]: (parent)=>buildCount((0, _config.getClient)(this.builder, context), parent, fieldQuery.where)
|
|
248
277
|
};
|
|
249
278
|
if (totalCountOnly) {
|
|
250
279
|
return {
|
|
@@ -253,7 +282,21 @@ class DrizzleObjectFieldBuilder extends RootBuilder {
|
|
|
253
282
|
extras: countSelection
|
|
254
283
|
};
|
|
255
284
|
}
|
|
256
|
-
|
|
285
|
+
return {
|
|
286
|
+
columns: {},
|
|
287
|
+
with: {
|
|
288
|
+
[name]: nested
|
|
289
|
+
},
|
|
290
|
+
extras: hasTotalCount ? countSelection : {}
|
|
291
|
+
};
|
|
292
|
+
};
|
|
293
|
+
const relationSelect = (args, context, nestedQuery, getSelection, pathInfo)=>{
|
|
294
|
+
typeName !== null && typeName !== void 0 ? typeName : typeName = this.builder.configStore.getTypeConfig(ref).name;
|
|
295
|
+
const { hasTotalCount, totalCountOnly } = connectionSelectionFromNames(getSelection());
|
|
296
|
+
const fieldQuery = resolveFieldQuery(args, context, pathInfo);
|
|
297
|
+
// The nested plan starts now, with a query that waits for the field's `query` when that is
|
|
298
|
+
// async, so every callback beneath the connection runs in the same tick.
|
|
299
|
+
const nested = totalCountOnly ? undefined : nestedQuery((0, _core.isThenable)(fieldQuery) ? fieldQuery.then((resolved)=>getQuery(args, context, resolved).select) : getQuery(args, context, fieldQuery).select, {
|
|
257
300
|
getType: ()=>typeName,
|
|
258
301
|
paths: [
|
|
259
302
|
[
|
|
@@ -271,27 +314,34 @@ class DrizzleObjectFieldBuilder extends RootBuilder {
|
|
|
271
314
|
]
|
|
272
315
|
]
|
|
273
316
|
});
|
|
274
|
-
return
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
317
|
+
return (0, _core.isThenable)(fieldQuery) || (0, _core.isThenable)(nested) ? Promise.all([
|
|
318
|
+
fieldQuery,
|
|
319
|
+
nested
|
|
320
|
+
]).then(([resolvedQuery, resolvedNested])=>selectConnection(resolvedQuery, resolvedNested, context, hasTotalCount, totalCountOnly)) : selectConnection(fieldQuery, nested, context, hasTotalCount, totalCountOnly);
|
|
321
|
+
};
|
|
322
|
+
// The loaded path, per parent row: the rows are on the parent, only the page is needed.
|
|
323
|
+
const resolveLoaded = (fieldQuery, parent, args, context, countValue)=>{
|
|
324
|
+
const { select, cursorFields } = getQuery(args, context, fieldQuery);
|
|
325
|
+
return (0, _cursors.wrapConnectionResult)(parent[name], args, select.limit, (0, _cursors.getCursorFormatter)(cursorFields, schemaConfig), undefined, parent, countValue);
|
|
281
326
|
};
|
|
282
327
|
const fieldRef = this.connection({
|
|
283
328
|
...options,
|
|
284
329
|
extensions: {
|
|
285
330
|
...extensions,
|
|
286
|
-
pothosDrizzleSelect: relationSelect
|
|
331
|
+
pothosDrizzleSelect: relationSelect,
|
|
332
|
+
pothosDrizzleLoaded: (value, info, context)=>{
|
|
333
|
+
const { hasTotalCount, totalCountOnly } = connectionSelection(context, info);
|
|
334
|
+
return (!hasTotalCount || value[countKey] !== undefined) && (totalCountOnly || value[name] !== undefined);
|
|
335
|
+
}
|
|
287
336
|
},
|
|
288
337
|
description,
|
|
289
338
|
type: ref,
|
|
290
339
|
resolve: (parent, args, context, info)=>{
|
|
291
|
-
|
|
340
|
+
var _getLoaderMapping;
|
|
292
341
|
const parentRecord = parent;
|
|
293
342
|
const countValue = totalCount ? parentRecord[countKey] : undefined;
|
|
294
|
-
|
|
343
|
+
// Only totalCount was requested: the relation was never selected, so skip the cursors.
|
|
344
|
+
if (connectionSelection(context, info).totalCountOnly) {
|
|
295
345
|
return {
|
|
296
346
|
parent,
|
|
297
347
|
args,
|
|
@@ -305,32 +355,13 @@ class DrizzleObjectFieldBuilder extends RootBuilder {
|
|
|
305
355
|
}
|
|
306
356
|
};
|
|
307
357
|
}
|
|
308
|
-
//
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
return s.kind === _graphql.Kind.FIELD && (((_fields_s_name_value = fields[s.name.value]) === null || _fields_s_name_value === void 0 ? void 0 : (_fields_s_name_value_extensions = _fields_s_name_value.extensions) === null || _fields_s_name_value_extensions === void 0 ? void 0 : _fields_s_name_value_extensions.pothosDrizzleTotalCount) || s.name.value === '__typename');
|
|
316
|
-
});
|
|
317
|
-
});
|
|
318
|
-
if (totalCountOnly) {
|
|
319
|
-
return {
|
|
320
|
-
parent,
|
|
321
|
-
args,
|
|
322
|
-
totalCount: countValue,
|
|
323
|
-
edges: [],
|
|
324
|
-
pageInfo: {
|
|
325
|
-
startCursor: null,
|
|
326
|
-
endCursor: null,
|
|
327
|
-
hasPreviousPage: false,
|
|
328
|
-
hasNextPage: false
|
|
329
|
-
}
|
|
330
|
-
};
|
|
331
|
-
}
|
|
332
|
-
const { select, cursorFields } = getQuery(args, context);
|
|
333
|
-
return (0, _cursors.wrapConnectionResult)(parentRecord[name], args, select.limit, (0, _cursors.getCursorFormatter)(cursorFields, schemaConfig), undefined, parent, countValue);
|
|
358
|
+
// The same position the select path planned this field at, recorded alongside its
|
|
359
|
+
// loader mapping, so a `query` that branches on its path pages the rows it selected.
|
|
360
|
+
// Asked of `parent`, because that is whose rows are being paged: a sibling row of the
|
|
361
|
+
// same list may have been loaded by a different plan, at a different position.
|
|
362
|
+
const position = (_getLoaderMapping = (0, _selectionmapper.getLoaderMapping)(context, info.path, info.parentType.name, parent)) === null || _getLoaderMapping === void 0 ? void 0 : _getLoaderMapping.position;
|
|
363
|
+
const fieldQuery = resolveFieldQuery(args, context, (0, _pathinfo.pathInfoFor)(position));
|
|
364
|
+
return (0, _core.isThenable)(fieldQuery) ? fieldQuery.then((resolved)=>resolveLoaded(resolved, parent, args, context, countValue)) : resolveLoaded(fieldQuery, parent, args, context, countValue);
|
|
334
365
|
}
|
|
335
366
|
}, connectionOptions instanceof _core.ObjectRef ? connectionOptions : {
|
|
336
367
|
...connectionOptions,
|
|
@@ -354,5 +385,16 @@ class DrizzleObjectFieldBuilder extends RootBuilder {
|
|
|
354
385
|
this.typename = typename;
|
|
355
386
|
}
|
|
356
387
|
}
|
|
388
|
+
/** A relation `query` callback may return nothing; the connection then adds no filter. */ function orEmpty(query) {
|
|
389
|
+
return query !== null && query !== void 0 ? query : {};
|
|
390
|
+
}
|
|
391
|
+
/** A `relatedField` select's map, with the columns it may have left out defaulted. */ function pickSelection(selection) {
|
|
392
|
+
var _ref;
|
|
393
|
+
return {
|
|
394
|
+
columns: (_ref = selection === null || selection === void 0 ? void 0 : selection.columns) !== null && _ref !== void 0 ? _ref : {},
|
|
395
|
+
extras: selection === null || selection === void 0 ? void 0 : selection.extras,
|
|
396
|
+
with: selection === null || selection === void 0 ? void 0 : selection.with
|
|
397
|
+
};
|
|
398
|
+
}
|
|
357
399
|
|
|
358
400
|
//# sourceMappingURL=drizzle-field-builder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/drizzle-field-builder.ts"],"names":["DrizzleObjectFieldBuilder","RootBuilder","RootFieldBuilder","variant","allArgs","isNull","nullable","options","ref","getRefFromModel","builder","selfSelect","_args","_context","nestedQuery","select","field","type","extensions","pothosDrizzleSelect","resolve","parent","args","context","info","parentIsNull","isThenable","then","resolved","relation","name","schemaConfig","getSchemaConfig","relationField","relations","table","relatedTable","targetTableName","PothosSchemaError","query","rest","relationSelect","_resolveSelection","pathInfo","relQuery","columns","with","omitUndefinedKeys","Many","relatedField","relationName","buildFilter","parentTable","sourceColumns","targetColumns","and","map","sourceCol","i","eq","selection","extras","description","relatedCount","where","countKey","ctx","whereClause","getClient","$count","expose","typeConfig","configStore","getTypeConfig","typename","graphqlKind","usingSelect","exposeField","pothosDrizzleVariant","createExpose","exposeBoolean","exposeFloat","exposeInt","exposeID","exposeString","exposeBooleanList","exposeFloatList","exposeIntList","exposeIDList","exposeStringList","relatedConnection","maxSize","drizzle","maxConnectionSize","defaultSize","defaultConnectionSize","_","totalCount","connectionOptions","edgeOptions","typeName","buildCountFilter","getQuery","limit","orderBy","fieldQuery","cursorFields","connectionQuery","drizzleCursorConnectionQuery","getPrimaryKey","config","Math","abs","getSelection","hasTotalCount","hasEdges","hasNodes","hasPageInfo","totalCountOnly","countSelection","nested","getType","paths","fieldRef","connection","parentRecord","countValue","undefined","edges","pageInfo","startCursor","endCursor","hasPreviousPage","hasNextPage","returnType","getNamedType","fields","isObjectType","isInterfaceType","getFields","fieldNodes","every","selectionSet","selections","s","kind","GraphQLKind","FIELD","value","pothosDrizzleTotalCount","wrapConnectionResult","getCursorFormatter","ObjectRef","t","int"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../src/drizzle-field-builder.ts"],"names":["DrizzleObjectFieldBuilder","RootBuilder","RootFieldBuilder","variant","allArgs","isNull","nullable","options","ref","getRefFromModel","builder","selfSelect","_args","_context","nestedQuery","select","field","type","extensions","pothosDrizzleSelect","resolve","parent","args","context","info","parentIsNull","isThenable","then","resolved","relation","name","schemaConfig","getSchemaConfig","relationField","relations","table","relatedTable","targetTableName","PothosSchemaError","query","rest","selectRelation","nested","columns","with","relationSelect","_resolveSelection","pathInfo","completeValue","Many","pothosDrizzleLoaded","value","undefined","relatedField","relationName","targetKey","throughTable","getUniqueConstraints","find","every","column","notNull","buildFilter","parentTable","buildRelationFilter","getClient","filter","pickSelection","_select","fieldOptions","relatedCount","where","countKey","findPrimaryKey","distinctBy","length","countExtras","whereClause","ctx","extras","client","$count","and","countDistinctRows","expose","typeConfig","configStore","getTypeConfig","typename","graphqlKind","usingSelect","exposeField","pothosDrizzleVariant","createExpose","exposeBoolean","exposeFloat","exposeInt","exposeID","exposeString","exposeBooleanList","exposeFloatList","exposeIntList","exposeIDList","exposeStringList","relatedConnection","maxSize","drizzle","maxConnectionSize","defaultSize","defaultConnectionSize","description","totalCount","connectionOptions","edgeOptions","typeName","filterTotalCount","filterConnectionTotalCount","buildCount","countRows","relationsFilterToSQL","resolveFieldQuery","orEmpty","getQuery","limit","orderBy","fieldQuery","cursorFields","connectionQuery","drizzleCursorConnectionQuery","getPrimaryKey","config","Math","abs","connectionSelectionFromNames","selected","hasTotalCount","has","totalCountOnly","connectionSelection","selectedFieldNames","selectConnection","countSelection","getSelection","getType","paths","Promise","all","resolvedQuery","resolvedNested","resolveLoaded","countValue","wrapConnectionResult","getCursorFormatter","fieldRef","connection","getLoaderMapping","parentRecord","edges","pageInfo","startCursor","endCursor","hasPreviousPage","hasNextPage","position","path","parentType","pathInfoFor","ObjectRef","fields","t","int","pothosDrizzleTotalCount","selection"],"mappings":"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"}
|
package/lib/field-builder.js
CHANGED
|
@@ -10,53 +10,66 @@ const _mapquery = require("./utils/map-query.js");
|
|
|
10
10
|
const _refs = require("./utils/refs.js");
|
|
11
11
|
var _this_builder_options_drizzle, _this_builder_options_drizzle1;
|
|
12
12
|
const fieldBuilderProto = _core.RootFieldBuilder.prototype;
|
|
13
|
-
|
|
13
|
+
/** The `type` of a `drizzleField`, with a table name resolved to its ref, list-ness kept. */ function refForType(builder, type) {
|
|
14
14
|
const modelOrRef = Array.isArray(type) ? type[0] : type;
|
|
15
|
-
const typeRef = typeof modelOrRef === 'string' ? (0, _refs.getRefFromModel)(modelOrRef,
|
|
16
|
-
|
|
15
|
+
const typeRef = typeof modelOrRef === 'string' ? (0, _refs.getRefFromModel)(modelOrRef, builder) : modelOrRef;
|
|
16
|
+
return Array.isArray(type) ? [
|
|
17
17
|
typeRef
|
|
18
18
|
] : typeRef;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The resolver of a `drizzleField`: the plan for the field, then the user's resolver with a query
|
|
22
|
+
* builder over it. A promise while a selection beneath the field is async, so the resolver runs
|
|
23
|
+
* once the plan has settled and the builder it is handed never returns one. Built once per field,
|
|
24
|
+
* so a synchronous plan allocates nothing but the builder itself.
|
|
25
|
+
*/ function planResolver(builder, resolve) {
|
|
26
|
+
const run = (plan, parent, args, context, info)=>resolve((select)=>(0, _mapquery.queryFromPlan)(plan, select), parent, args, context, info);
|
|
27
|
+
return (parent, args, context, info)=>{
|
|
28
|
+
const plan = (0, _mapquery.planFromInfo)({
|
|
29
|
+
config: (0, _config.getSchemaConfig)(builder),
|
|
30
|
+
context,
|
|
31
|
+
info
|
|
32
|
+
});
|
|
33
|
+
return (0, _core.isThenable)(plan) ? plan.then((settled)=>run(settled, parent, args, context, info)) : run(plan, parent, args, context, info);
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
fieldBuilderProto.drizzleField = function drizzleField({ type, resolve, ...options }) {
|
|
19
37
|
return this.field({
|
|
20
38
|
...options,
|
|
21
|
-
type:
|
|
22
|
-
resolve: (
|
|
23
|
-
return resolve((select)=>(0, _mapquery.queryFromInfo)({
|
|
24
|
-
config: (0, _config.getSchemaConfig)(this.builder),
|
|
25
|
-
context,
|
|
26
|
-
select,
|
|
27
|
-
info
|
|
28
|
-
}), parent, args, context, info);
|
|
29
|
-
}
|
|
39
|
+
type: refForType(this.builder, type),
|
|
40
|
+
resolve: planResolver(this.builder, resolve)
|
|
30
41
|
});
|
|
31
42
|
};
|
|
32
43
|
fieldBuilderProto.drizzleFieldWithInput = function drizzleFieldWithInput({ type, resolve, ...options }) {
|
|
33
|
-
const modelOrRef = Array.isArray(type) ? type[0] : type;
|
|
34
|
-
const typeRef = typeof modelOrRef === 'string' ? (0, _refs.getRefFromModel)(modelOrRef, this.builder) : modelOrRef;
|
|
35
|
-
const typeParam = Array.isArray(type) ? [
|
|
36
|
-
typeRef
|
|
37
|
-
] : typeRef;
|
|
38
44
|
return this.fieldWithInput({
|
|
39
45
|
...options,
|
|
40
|
-
type:
|
|
41
|
-
resolve: (
|
|
42
|
-
return resolve((select)=>(0, _mapquery.queryFromInfo)({
|
|
43
|
-
config: (0, _config.getSchemaConfig)(this.builder),
|
|
44
|
-
context,
|
|
45
|
-
select,
|
|
46
|
-
info
|
|
47
|
-
}), parent, args, context, info);
|
|
48
|
-
}
|
|
46
|
+
type: refForType(this.builder, type),
|
|
47
|
+
resolve: planResolver(this.builder, resolve)
|
|
49
48
|
});
|
|
50
49
|
};
|
|
51
50
|
fieldBuilderProto.drizzleConnection = function drizzleConnection({ type, maxSize = (_this_builder_options_drizzle = this.builder.options.drizzle) === null || _this_builder_options_drizzle === void 0 ? void 0 : _this_builder_options_drizzle.maxConnectionSize, defaultSize = (_this_builder_options_drizzle1 = this.builder.options.drizzle) === null || _this_builder_options_drizzle1 === void 0 ? void 0 : _this_builder_options_drizzle1.defaultConnectionSize, resolve, totalCount, ...options }, connectionOptions = {}, edgeOptions = {}) {
|
|
52
51
|
const ref = typeof type === 'string' ? (0, _refs.getRefFromModel)(type, this.builder) : type;
|
|
53
52
|
const typeName = this.builder.configStore.getTypeConfig(ref).name;
|
|
54
53
|
const tableName = typeof type === 'string' ? type : ref.tableName;
|
|
54
|
+
// Built once per field: resolving with a synchronous plan allocates nothing beyond the
|
|
55
|
+
// callback `resolveDrizzleCursorConnection` was already handed.
|
|
56
|
+
const resolveConnection = (plan, parent, args, context, info, totalCountOnly)=>(0, _cursors.resolveDrizzleCursorConnection)(tableName, plan, (0, _config.getSchemaConfig)(this.builder), {
|
|
57
|
+
ctx: context,
|
|
58
|
+
maxSize,
|
|
59
|
+
defaultSize,
|
|
60
|
+
args,
|
|
61
|
+
totalCount: totalCount && (()=>totalCount(parent, args, context, info))
|
|
62
|
+
}, (q)=>{
|
|
63
|
+
if (totalCountOnly) {
|
|
64
|
+
return [];
|
|
65
|
+
}
|
|
66
|
+
return resolve(q, parent, args, context, info);
|
|
67
|
+
}, parent);
|
|
55
68
|
const fieldRef = this.connection({
|
|
56
69
|
...options,
|
|
57
70
|
type: ref,
|
|
58
71
|
resolve: (parent, args, context, info)=>{
|
|
59
|
-
const returnType = info.returnType;
|
|
72
|
+
const returnType = (0, _graphql.getNamedType)(info.returnType);
|
|
60
73
|
const fields = (0, _graphql.isObjectType)(returnType) || (0, _graphql.isInterfaceType)(returnType) ? returnType.getFields() : {};
|
|
61
74
|
const selections = info.fieldNodes;
|
|
62
75
|
const totalCountOnly = selections.every((selection)=>{
|
|
@@ -66,23 +79,24 @@ fieldBuilderProto.drizzleConnection = function drizzleConnection({ type, maxSize
|
|
|
66
79
|
return s.kind === _graphql.Kind.FIELD && (((_fields_s_name_value = fields[s.name.value]) === null || _fields_s_name_value === void 0 ? void 0 : (_fields_s_name_value_extensions = _fields_s_name_value.extensions) === null || _fields_s_name_value_extensions === void 0 ? void 0 : _fields_s_name_value_extensions.pothosDrizzleTotalCount) || s.name.value === '__typename');
|
|
67
80
|
});
|
|
68
81
|
});
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
82
|
+
// Planned before the resolver runs, so the builder it is handed is synchronous even when
|
|
83
|
+
// a selection beneath the connection is async.
|
|
84
|
+
const plan = (0, _mapquery.planFromInfo)({
|
|
85
|
+
config: (0, _config.getSchemaConfig)(this.builder),
|
|
86
|
+
context,
|
|
87
|
+
info,
|
|
88
|
+
paths: [
|
|
89
|
+
[
|
|
90
|
+
'nodes'
|
|
91
|
+
],
|
|
92
|
+
[
|
|
93
|
+
'edges',
|
|
94
|
+
'node'
|
|
95
|
+
]
|
|
96
|
+
],
|
|
97
|
+
typeName
|
|
98
|
+
});
|
|
99
|
+
return (0, _core.isThenable)(plan) ? plan.then((settled)=>resolveConnection(settled, parent, args, context, info, totalCountOnly)) : resolveConnection(plan, parent, args, context, info, totalCountOnly);
|
|
86
100
|
}
|
|
87
101
|
}, connectionOptions instanceof _core.ObjectRef ? connectionOptions : {
|
|
88
102
|
...connectionOptions,
|
package/lib/field-builder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/field-builder.ts"],"names":["fieldBuilderProto","RootFieldBuilder","prototype","
|
|
1
|
+
{"version":3,"sources":["../src/field-builder.ts"],"names":["fieldBuilderProto","RootFieldBuilder","prototype","refForType","builder","type","modelOrRef","Array","isArray","typeRef","getRefFromModel","planResolver","resolve","run","plan","parent","args","context","info","select","queryFromPlan","planFromInfo","config","getSchemaConfig","isThenable","then","settled","drizzleField","options","field","drizzleFieldWithInput","fieldWithInput","drizzleConnection","maxSize","drizzle","maxConnectionSize","defaultSize","defaultConnectionSize","totalCount","connectionOptions","edgeOptions","ref","typeName","configStore","getTypeConfig","name","tableName","resolveConnection","totalCountOnly","resolveDrizzleCursorConnection","ctx","q","fieldRef","connection","returnType","getNamedType","fields","isObjectType","isInterfaceType","getFields","selections","fieldNodes","every","selection","selectionSet","s","kind","Kind","FIELD","value","extensions","pothosDrizzleTotalCount","paths","ObjectRef","t","int","nullable"],"mappings":"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"}
|