@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
package/esm/utils/cursors.d.ts
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { type MaybePromise, type SchemaTypes } from '@pothos/core';
|
|
1
|
+
import { encodeCursorChunk, type MaybePromise, type SchemaTypes } from '@pothos/core';
|
|
2
2
|
import { type Column, type SQL, type Table, type TableRelationalConfig } from 'drizzle-orm';
|
|
3
|
-
import type { GraphQLResolveInfo } from 'graphql';
|
|
4
3
|
import type { ConnectionOrderBy, QueryForDrizzleConnection } from '../types.js';
|
|
4
|
+
import type { DrizzlePlan } from './adapter.js';
|
|
5
5
|
import type { PothosDrizzleSchemaConfig } from './config.js';
|
|
6
6
|
import { type SelectionMap } from './selections.js';
|
|
7
|
-
export declare
|
|
7
|
+
export declare const formatCursorChunk: typeof encodeCursorChunk;
|
|
8
8
|
export declare function formatDrizzleCursor(record: Record<string, unknown>, fields: Column[], config: PothosDrizzleSchemaConfig): string;
|
|
9
9
|
export declare function formatIDChunk(value: unknown): string;
|
|
10
10
|
export declare function getIDSerializer(fields: Column[], config: PothosDrizzleSchemaConfig): (value: Record<string, unknown>) => string;
|
|
11
11
|
export type CursorField = Column | string;
|
|
12
12
|
export declare function cursorFieldKey(field: CursorField, config: PothosDrizzleSchemaConfig): string;
|
|
13
|
-
export declare function getColumnSerializer(fields: readonly CursorField[], config: PothosDrizzleSchemaConfig): (value: Record<string, unknown>) => string
|
|
13
|
+
export declare function getColumnSerializer(fields: readonly CursorField[], config: PothosDrizzleSchemaConfig): (value: Record<string, unknown>) => string;
|
|
14
14
|
export declare function getCursorFormatter(fields: readonly CursorField[], config: PothosDrizzleSchemaConfig): (value: Record<string, unknown>) => string;
|
|
15
15
|
export declare function parseDrizzleCursor(cursor: unknown): unknown;
|
|
16
16
|
export declare function parseSerializedDrizzleColumn(value: unknown): unknown;
|
|
17
17
|
export declare function parseSerializedIDColumn(id: string, field: Column): unknown;
|
|
18
|
-
export declare function getIDParser(fields: readonly Column[]): (value: string) => Record<string, unknown>;
|
|
18
|
+
export declare function getIDParser(fields: readonly Column[], config: PothosDrizzleSchemaConfig): (value: string) => Record<string, unknown>;
|
|
19
19
|
export declare function getColumnParser(fields: readonly Column[]): (value: unknown) => Record<string, unknown>;
|
|
20
20
|
export declare function getCursorParser(keys: readonly string[]): (cursor: unknown) => Record<string, unknown>;
|
|
21
21
|
export interface DrizzleCursorConnectionQueryOptions {
|
|
@@ -54,7 +54,7 @@ export declare function wrapConnectionResult<T extends {}>(results: readonly T[]
|
|
|
54
54
|
hasNextPage: boolean;
|
|
55
55
|
};
|
|
56
56
|
};
|
|
57
|
-
export declare function resolveDrizzleCursorConnection<T extends {}>(tableName: string,
|
|
57
|
+
export declare function resolveDrizzleCursorConnection<T extends {}>(tableName: string, plan: DrizzlePlan | undefined, config: PothosDrizzleSchemaConfig, options: Omit<DrizzleCursorConnectionQueryOptions, 'orderBy' | 'config' | 'table'> & {
|
|
58
58
|
totalCount?: () => MaybePromise<number>;
|
|
59
59
|
}, resolve: (queryFn: (query: QueryForDrizzleConnection<SchemaTypes, TableRelationalConfig>) => SelectionMap) => MaybePromise<readonly T[]>, parent: unknown): Promise<{
|
|
60
60
|
parent: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursors.d.ts","sourceRoot":"","sources":["../../src/utils/cursors.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"cursors.d.ts","sourceRoot":"","sources":["../../src/utils/cursors.ts"],"names":[],"mappings":"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"}
|
package/esm/utils/cursors.js
CHANGED
|
@@ -1,27 +1,12 @@
|
|
|
1
|
-
import { decodeBase64, encodeBase64, PothosValidationError } from '@pothos/core';
|
|
1
|
+
import { decodeBase64, decodeCursorChunk, encodeBase64, encodeCursorChunk, encodeCursorTuple, getConnectionPageSize, PothosValidationError, validateConnectionArguments } from '@pothos/core';
|
|
2
2
|
import { asc, desc, eq, getColumns, gt, isNull, lt, sql } from 'drizzle-orm';
|
|
3
|
-
import {
|
|
3
|
+
import { queryFromPlan } from './map-query.js';
|
|
4
4
|
import { omitUndefinedKeys } from './selections.js';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
if (value instanceof Date) {
|
|
12
|
-
return `D:${String(Number(value))}`;
|
|
13
|
-
}
|
|
14
|
-
switch(typeof value){
|
|
15
|
-
case 'number':
|
|
16
|
-
return `N:${value}`;
|
|
17
|
-
case 'string':
|
|
18
|
-
return `S:${value}`;
|
|
19
|
-
case 'bigint':
|
|
20
|
-
return `I:${value}`;
|
|
21
|
-
default:
|
|
22
|
-
throw new PothosValidationError(`Unsupported cursor type ${typeof value}`);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
5
|
+
// The tagging is `@pothos/core`'s `encodeCursorChunk`, shared with the prisma plugins so the
|
|
6
|
+
// three can't drift apart again. A nullish ordering value is a position this plugin compares
|
|
7
|
+
// against with `is null`, and it now writes as a `Z:` chunk: it used to interpolate as the string
|
|
8
|
+
// `null`, which is not a chunk, so the cursor came back out as "Invalid cursor" on the next page.
|
|
9
|
+
export const formatCursorChunk = encodeCursorChunk;
|
|
25
10
|
export function formatDrizzleCursor(record, fields, config) {
|
|
26
11
|
return getCursorFormatter(fields, config)(record);
|
|
27
12
|
}
|
|
@@ -38,14 +23,31 @@ export function formatIDChunk(value) {
|
|
|
38
23
|
throw new PothosValidationError(`Unsupported ID type ${typeof value}`);
|
|
39
24
|
}
|
|
40
25
|
}
|
|
26
|
+
function formatCompoundIDValue(value) {
|
|
27
|
+
if (typeof value === 'bigint') {
|
|
28
|
+
return value.toString();
|
|
29
|
+
}
|
|
30
|
+
if (value instanceof Date) {
|
|
31
|
+
return Number(value);
|
|
32
|
+
}
|
|
33
|
+
return value;
|
|
34
|
+
}
|
|
35
|
+
function parseCompoundIDValue(value, field) {
|
|
36
|
+
if (field.dataType.startsWith('bigint') && (typeof value === 'string' || typeof value === 'number')) {
|
|
37
|
+
return BigInt(value);
|
|
38
|
+
}
|
|
39
|
+
if (field.dataType === 'object date' && typeof value === 'number') {
|
|
40
|
+
return new Date(value);
|
|
41
|
+
}
|
|
42
|
+
return value;
|
|
43
|
+
}
|
|
41
44
|
export function getIDSerializer(fields, config) {
|
|
42
45
|
if (fields.length === 0) {
|
|
43
46
|
throw new PothosValidationError('Column serializer must have at least one field');
|
|
44
47
|
}
|
|
45
48
|
return (value)=>{
|
|
46
49
|
if (fields.length > 1) {
|
|
47
|
-
fields.map((
|
|
48
|
-
return `${JSON.stringify(fields.map((col)=>value[config.columnToTsName(col)]))}`;
|
|
50
|
+
return `${JSON.stringify(fields.map((col)=>formatCompoundIDValue(value[config.columnToTsName(col)])))}`;
|
|
49
51
|
}
|
|
50
52
|
return `${formatIDChunk(value[config.columnToTsName(fields[0])])}`;
|
|
51
53
|
};
|
|
@@ -61,7 +63,7 @@ export function getColumnSerializer(fields, config) {
|
|
|
61
63
|
if (fields.length > 1) {
|
|
62
64
|
// each value carries its own type tag, the same ones a single value gets.
|
|
63
65
|
// Plain JSON would turn a Date into a string and refuse a bigint outright.
|
|
64
|
-
return
|
|
66
|
+
return encodeCursorTuple(fields.map((field)=>value[cursorFieldKey(field, config)]));
|
|
65
67
|
}
|
|
66
68
|
return formatCursorChunk(value[cursorFieldKey(fields[0], config)]);
|
|
67
69
|
};
|
|
@@ -94,25 +96,9 @@ export function parseSerializedDrizzleColumn(value) {
|
|
|
94
96
|
throw new PothosValidationError('value must be a string');
|
|
95
97
|
}
|
|
96
98
|
try {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
return rawValue;
|
|
101
|
-
case 'N':
|
|
102
|
-
return Number.parseInt(rawValue, 10);
|
|
103
|
-
case 'D':
|
|
104
|
-
return new Date(Number.parseInt(rawValue, 10));
|
|
105
|
-
case 'J':
|
|
106
|
-
// compound values from before each one carried a tag: whatever JSON
|
|
107
|
-
// preserved is the best that can be recovered
|
|
108
|
-
return JSON.parse(rawValue);
|
|
109
|
-
case 'T':
|
|
110
|
-
return JSON.parse(rawValue).map((chunk)=>chunk === null ? null : parseSerializedDrizzleColumn(chunk));
|
|
111
|
-
case 'I':
|
|
112
|
-
return BigInt(rawValue);
|
|
113
|
-
default:
|
|
114
|
-
throw new PothosValidationError(`Invalid cursor type ${type}`);
|
|
115
|
-
}
|
|
99
|
+
// `@pothos/core`'s `decodeCursorChunk` reads every tag, including the `J:` a compound cursor
|
|
100
|
+
// used before each part carried one -- see `getCursorParser` for what happens to that array.
|
|
101
|
+
return decodeCursorChunk(value);
|
|
116
102
|
} catch {
|
|
117
103
|
throw new PothosValidationError(`Invalid serialized data: ${value}`);
|
|
118
104
|
}
|
|
@@ -123,7 +109,7 @@ export function parseSerializedIDColumn(id, field) {
|
|
|
123
109
|
}
|
|
124
110
|
try {
|
|
125
111
|
if (field.dataType.startsWith('number')) {
|
|
126
|
-
return Number
|
|
112
|
+
return Number(id);
|
|
127
113
|
}
|
|
128
114
|
if (field.dataType.startsWith('bigint')) {
|
|
129
115
|
return BigInt(id);
|
|
@@ -132,7 +118,9 @@ export function parseSerializedIDColumn(id, field) {
|
|
|
132
118
|
return id;
|
|
133
119
|
}
|
|
134
120
|
if (field.dataType === 'object date') {
|
|
135
|
-
|
|
121
|
+
// `formatIDChunk` writes the epoch milliseconds; `new Date` of that string is an Invalid
|
|
122
|
+
// Date, since it is not a date format `Date` parses.
|
|
123
|
+
return new Date(Number(id));
|
|
136
124
|
}
|
|
137
125
|
throw new PothosValidationError(`Unsupported ID type ${field.dataType}`);
|
|
138
126
|
} catch (error) {
|
|
@@ -142,14 +130,16 @@ export function parseSerializedIDColumn(id, field) {
|
|
|
142
130
|
throw new PothosValidationError(`Invalid serialized ID: ${id}`);
|
|
143
131
|
}
|
|
144
132
|
}
|
|
145
|
-
|
|
133
|
+
// Keyed by the typescript name, as `getIDSerializer` reads by: the record is a row of the table,
|
|
134
|
+
// and every consumer (the node ref's `parseId`, the model loader) looks columns up that way.
|
|
135
|
+
export function getIDParser(fields, config) {
|
|
146
136
|
if (fields.length === 0) {
|
|
147
137
|
throw new PothosValidationError('Column parser must have at least one field');
|
|
148
138
|
}
|
|
149
139
|
return (value)=>{
|
|
150
140
|
if (fields.length === 1) {
|
|
151
141
|
return {
|
|
152
|
-
[fields[0]
|
|
142
|
+
[config.columnToTsName(fields[0])]: parseSerializedIDColumn(value, fields[0])
|
|
153
143
|
};
|
|
154
144
|
}
|
|
155
145
|
try {
|
|
@@ -162,7 +152,7 @@ export function getIDParser(fields) {
|
|
|
162
152
|
}
|
|
163
153
|
const record = {};
|
|
164
154
|
fields.forEach((field, i)=>{
|
|
165
|
-
record[field
|
|
155
|
+
record[config.columnToTsName(field)] = parseCompoundIDValue(parsed[i], field);
|
|
166
156
|
});
|
|
167
157
|
return record;
|
|
168
158
|
} catch (error) {
|
|
@@ -212,6 +202,10 @@ export function getCursorParser(keys) {
|
|
|
212
202
|
// the columns that came before it. Those still describe a position, just a
|
|
213
203
|
// less precise one, so the page is keyed off the prefix the cursor covers
|
|
214
204
|
// rather than rejected. Cursors returned by that page carry every column.
|
|
205
|
+
//
|
|
206
|
+
// The array is a `T:` chunk's values, each still its own type. A cursor issued before this
|
|
207
|
+
// release decodes from a `J:` chunk instead, whose parts arrive as whatever plain JSON
|
|
208
|
+
// preserved -- see the deprecated `J:` case in `@pothos/core`'s `decodeCursorChunk`.
|
|
215
209
|
const values = Array.isArray(parsed) ? parsed : [
|
|
216
210
|
parsed
|
|
217
211
|
];
|
|
@@ -397,22 +391,21 @@ function keysetFilter(entries, cursor, paging) {
|
|
|
397
391
|
OR: parts
|
|
398
392
|
} : parts[0];
|
|
399
393
|
}
|
|
400
|
-
export function drizzleCursorConnectionQuery({ args, ctx, maxSize
|
|
401
|
-
var _ref;
|
|
394
|
+
export function drizzleCursorConnectionQuery({ args, ctx, maxSize, defaultSize, orderBy, extras, where, config, table }) {
|
|
402
395
|
const { before, after, first, last } = args;
|
|
403
|
-
|
|
404
|
-
throw new PothosValidationError('Argument "first" must be a non-negative integer');
|
|
405
|
-
}
|
|
406
|
-
if (last != null && last < 0) {
|
|
407
|
-
throw new PothosValidationError('Argument "last" must be a non-negative integer');
|
|
408
|
-
}
|
|
396
|
+
validateConnectionArguments(args);
|
|
409
397
|
if (first != null && last != null) {
|
|
410
398
|
throw new PothosValidationError('Arguments "first" and "last" are not supported at the same time');
|
|
411
399
|
}
|
|
412
400
|
const maxSizeForConnection = typeof maxSize === 'function' ? maxSize(args, ctx) : maxSize;
|
|
413
401
|
const defaultSizeForConnection = typeof defaultSize === 'function' ? defaultSize(args, ctx) : defaultSize;
|
|
414
|
-
const limit =
|
|
415
|
-
|
|
402
|
+
const { limit } = getConnectionPageSize({
|
|
403
|
+
args,
|
|
404
|
+
defaultSize: defaultSizeForConnection,
|
|
405
|
+
maxSize: maxSizeForConnection
|
|
406
|
+
});
|
|
407
|
+
// `last: 0` asks for the last zero rows, so it pages backwards like any other `last`.
|
|
408
|
+
const inverted = first == null && last != null;
|
|
416
409
|
const parsedOrderBy = parseOrderBy(config, table, orderBy, inverted, extras);
|
|
417
410
|
const columns = {};
|
|
418
411
|
for (const column of parsedOrderBy.columns){
|
|
@@ -442,8 +435,11 @@ export function wrapConnectionResult(results, args, limit, cursor, resolveNode,
|
|
|
442
435
|
var _ref, _ref1;
|
|
443
436
|
var _edges_, _edges_1;
|
|
444
437
|
const gotFullResults = results.length === Math.abs(limit);
|
|
445
|
-
|
|
446
|
-
|
|
438
|
+
// `first`/`last` are compared against null rather than by truthiness, so `last: 0` reports the
|
|
439
|
+
// `pageInfo` of a backward page of zero rows rather than of a forward one.
|
|
440
|
+
const backward = args.first == null && args.last != null;
|
|
441
|
+
const hasNextPage = args.before ? true : args.last != null ? false : gotFullResults;
|
|
442
|
+
const hasPreviousPage = args.after ? true : backward ? gotFullResults : false;
|
|
447
443
|
const nodes = gotFullResults ? results.slice(0, -1) : results;
|
|
448
444
|
const connection = {
|
|
449
445
|
parent,
|
|
@@ -467,7 +463,7 @@ export function wrapConnectionResult(results, args, limit, cursor, resolveNode,
|
|
|
467
463
|
cursor: cursor(value),
|
|
468
464
|
node: value
|
|
469
465
|
});
|
|
470
|
-
if (
|
|
466
|
+
if (backward) {
|
|
471
467
|
edges.reverse();
|
|
472
468
|
}
|
|
473
469
|
connection.edges = edges;
|
|
@@ -475,7 +471,8 @@ export function wrapConnectionResult(results, args, limit, cursor, resolveNode,
|
|
|
475
471
|
connection.pageInfo.endCursor = (_ref1 = (_edges_1 = edges[edges.length - 1]) === null || _edges_1 === void 0 ? void 0 : _edges_1.cursor) !== null && _ref1 !== void 0 ? _ref1 : null;
|
|
476
472
|
return connection;
|
|
477
473
|
}
|
|
478
|
-
export async function resolveDrizzleCursorConnection(tableName,
|
|
474
|
+
export async function resolveDrizzleCursorConnection(tableName, // The settled plan of the connection's rows; the builder handed to `resolve` merges into it.
|
|
475
|
+
plan, config, options, resolve, parent) {
|
|
479
476
|
const table = config.relations[tableName];
|
|
480
477
|
let query;
|
|
481
478
|
let formatter;
|
|
@@ -489,35 +486,20 @@ export async function resolveDrizzleCursorConnection(tableName, info, typeName,
|
|
|
489
486
|
table
|
|
490
487
|
});
|
|
491
488
|
formatter = getCursorFormatter(cursorFields, config);
|
|
492
|
-
query =
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
...
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
AND: [
|
|
504
|
-
q.where,
|
|
505
|
-
connectionQuery.where
|
|
506
|
-
]
|
|
507
|
-
} : q.where || connectionQuery.where
|
|
508
|
-
}),
|
|
509
|
-
paths: [
|
|
510
|
-
[
|
|
511
|
-
'nodes'
|
|
512
|
-
],
|
|
513
|
-
[
|
|
514
|
-
'edges',
|
|
515
|
-
'node'
|
|
489
|
+
query = queryFromPlan(plan, omitUndefinedKeys({
|
|
490
|
+
...connectionQuery,
|
|
491
|
+
extras: q.extras,
|
|
492
|
+
columns: {
|
|
493
|
+
...q.columns,
|
|
494
|
+
...connectionQuery.columns
|
|
495
|
+
},
|
|
496
|
+
where: connectionQuery.where && q.where ? {
|
|
497
|
+
AND: [
|
|
498
|
+
q.where,
|
|
499
|
+
connectionQuery.where
|
|
516
500
|
]
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
config
|
|
520
|
-
});
|
|
501
|
+
} : q.where || connectionQuery.where
|
|
502
|
+
}));
|
|
521
503
|
return query;
|
|
522
504
|
});
|
|
523
505
|
if (!results) {
|
|
@@ -538,7 +520,8 @@ export async function resolveDrizzleCursorConnection(tableName, info, typeName,
|
|
|
538
520
|
}
|
|
539
521
|
};
|
|
540
522
|
}
|
|
541
|
-
|
|
523
|
+
const { limit } = query;
|
|
524
|
+
return wrapConnectionResult(results, options.args, limit, formatter, undefined, parent, options.totalCount);
|
|
542
525
|
}
|
|
543
526
|
|
|
544
527
|
//# sourceMappingURL=cursors.js.map
|
package/esm/utils/cursors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/cursors.ts"],"names":["decodeBase64","encodeBase64","PothosValidationError","asc","desc","eq","getColumns","gt","isNull","lt","sql","queryFromInfo","omitUndefinedKeys","DEFAULT_MAX_SIZE","DEFAULT_SIZE","formatCursorChunk","value","Date","String","Number","formatDrizzleCursor","record","fields","config","getCursorFormatter","formatIDChunk","getIDSerializer","length","map","field","keyAsName","JSON","stringify","col","columnToTsName","cursorFieldKey","getColumnSerializer","serializer","parseDrizzleCursor","cursor","decoded","startsWith","parseSerializedDrizzleColumn","slice","type","rawValue","match","parseInt","parse","chunk","BigInt","parseSerializedIDColumn","id","dataType","error","getIDParser","name","parsed","Array","isArray","forEach","i","getColumnParser","getCursorParser","keys","values","resolveExpression","expression","table","orderTarget","entry","column","key","flipDirection","direction","ordersBy","entries","some","orderIsUnique","getUniqueConstraints","columns","every","notNull","appendTieBreaker","tieBreaker","findTieBreaker","push","parseOrderBy","orderBy","invert","extras","normalized","columnEntry","tableColumns","Object","directionFor","flatMap","cursorFields","t","fromEntries","compareTo","operator","isNullish","undefined","RAW","operators","keysetFilter","paging","parsedCursor","covered","filter","parts","index","ascending","compare","AND","previous","OR","drizzleCursorConnectionQuery","args","ctx","maxSize","defaultSize","where","first","before","after","last","maxSizeForConnection","defaultSizeForConnection","limit","Math","min","inverted","parsedOrderBy","whereClauses","wrapConnectionResult","results","resolveNode","parent","totalCount","edges","gotFullResults","abs","hasNextPage","hasPreviousPage","nodes","connection","pageInfo","startCursor","endCursor","node","reverse","resolveDrizzleCursorConnection","tableName","info","typeName","options","resolve","relations","query","formatter","q","connectionQuery","getPrimaryKey","context","select","paths"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/utils/cursors.ts"],"names":["decodeBase64","decodeCursorChunk","encodeBase64","encodeCursorChunk","encodeCursorTuple","getConnectionPageSize","PothosValidationError","validateConnectionArguments","asc","desc","eq","getColumns","gt","isNull","lt","sql","queryFromPlan","omitUndefinedKeys","formatCursorChunk","formatDrizzleCursor","record","fields","config","getCursorFormatter","formatIDChunk","value","Date","String","Number","formatCompoundIDValue","toString","parseCompoundIDValue","field","dataType","startsWith","BigInt","getIDSerializer","length","JSON","stringify","map","col","columnToTsName","cursorFieldKey","getColumnSerializer","serializer","parseDrizzleCursor","cursor","decoded","parseSerializedDrizzleColumn","slice","parseSerializedIDColumn","id","error","getIDParser","parsed","parse","Array","isArray","forEach","i","getColumnParser","name","getCursorParser","keys","values","resolveExpression","expression","table","orderTarget","entry","column","key","flipDirection","direction","ordersBy","entries","some","orderIsUnique","getUniqueConstraints","columns","every","notNull","appendTieBreaker","tieBreaker","findTieBreaker","push","parseOrderBy","orderBy","invert","extras","normalized","columnEntry","tableColumns","Object","directionFor","flatMap","cursorFields","t","fromEntries","compareTo","operator","isNullish","undefined","RAW","operators","keysetFilter","paging","parsedCursor","covered","filter","parts","index","ascending","compare","AND","previous","OR","drizzleCursorConnectionQuery","args","ctx","maxSize","defaultSize","where","before","after","first","last","maxSizeForConnection","defaultSizeForConnection","limit","inverted","parsedOrderBy","whereClauses","wrapConnectionResult","results","resolveNode","parent","totalCount","edges","gotFullResults","Math","abs","backward","hasNextPage","hasPreviousPage","nodes","connection","pageInfo","startCursor","endCursor","node","reverse","resolveDrizzleCursorConnection","tableName","plan","options","resolve","relations","query","formatter","q","connectionQuery","getPrimaryKey"],"mappings":"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"}
|
package/esm/utils/map-query.d.ts
CHANGED
|
@@ -1,30 +1,31 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type PathSegment } from '@pothos/selection-mapper';
|
|
2
|
+
import type { GraphQLResolveInfo } from 'graphql';
|
|
3
|
+
import { type DrizzlePlan } from './adapter.js';
|
|
2
4
|
import type { PothosDrizzleSchemaConfig } from './config.js';
|
|
3
|
-
import {
|
|
4
|
-
export interface IndirectInclude {
|
|
5
|
-
getType: () => string;
|
|
6
|
-
path?: {
|
|
7
|
-
type?: string;
|
|
8
|
-
name: string;
|
|
9
|
-
}[];
|
|
10
|
-
paths?: {
|
|
11
|
-
type?: string;
|
|
12
|
-
name: string;
|
|
13
|
-
}[][];
|
|
14
|
-
}
|
|
5
|
+
import type { SelectionMap } from './selections.js';
|
|
15
6
|
export interface QueryFromInfoOptions<T extends SelectionMap> {
|
|
16
7
|
config: PothosDrizzleSchemaConfig;
|
|
17
8
|
context: object;
|
|
18
9
|
info: GraphQLResolveInfo;
|
|
19
10
|
typeName?: string;
|
|
20
11
|
select?: T;
|
|
21
|
-
path?:
|
|
22
|
-
paths?:
|
|
23
|
-
withUsageCheck?: boolean;
|
|
12
|
+
path?: PathSegment[];
|
|
13
|
+
paths?: PathSegment[][];
|
|
24
14
|
}
|
|
25
|
-
export declare function queryFromInfo<T extends SelectionMap>({
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
15
|
+
export declare function queryFromInfo<T extends SelectionMap>({ config, select, ...options }: QueryFromInfoOptions<T>): T;
|
|
16
|
+
/**
|
|
17
|
+
* The plan for the field `info` resolves (or `typeName`), nothing recorded: a promise while a
|
|
18
|
+
* select beneath the field is async, undefined when `paths` are given and nothing is selected
|
|
19
|
+
* under them. The model loader's, and the first step of a `drizzleField` resolve, whose
|
|
20
|
+
* merges are recorded so the resolver's `query()` selection can come first.
|
|
21
|
+
*/
|
|
22
|
+
export declare function planFromInfo({ config, ...options }: Omit<QueryFromInfoOptions<SelectionMap>, 'select'>): DrizzlePlan | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* The query for a plan `planFromInfo` returned, settled: the caller's `select` first, the walked
|
|
25
|
+
* plan after it, the mappings recorded, and the query serialized. This is how the `query()`
|
|
26
|
+
* builder handed to a `drizzleField` or `drizzleConnection` resolver stays synchronous once a
|
|
27
|
+
* selection beneath the field is async, with the precedence of `queryFromInfo`: a relation the
|
|
28
|
+
* document also plans with other arguments loads on its own.
|
|
29
|
+
*/
|
|
30
|
+
export declare function queryFromPlan<T extends SelectionMap>(plan: DrizzlePlan | undefined, select?: T): T;
|
|
30
31
|
//# sourceMappingURL=map-query.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-query.d.ts","sourceRoot":"","sources":["../../src/utils/map-query.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"map-query.d.ts","sourceRoot":"","sources":["../../src/utils/map-query.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAQ,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,cAAc,CAAC;AAChE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,YAAY;IAC1D,MAAM,EAAE,yBAAyB,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC;CACzB;AAED,wBAAgB,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,EACpD,MAAM,EACN,MAAM,EACN,GAAG,OAAO,EACX,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,CAe7B;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,GAAG,OAAO,EACX,EAAE,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,GAAG,WAAW,GAAG,SAAS,CAE9E;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,YAAY,EAClD,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,MAAM,CAAC,EAAE,CAAC,GACT,CAAC,CAQH"}
|