@pothos/plugin-prisma 3.22.0 → 3.23.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.
- package/CHANGELOG.md +8 -0
- package/dts/prisma-field-builder.d.ts.map +1 -1
- package/dts/types.d.ts +12 -12
- package/dts/types.d.ts.map +1 -1
- package/dts/util/cursors.d.ts +4 -3
- package/dts/util/cursors.d.ts.map +1 -1
- package/esm/field-builder.js +1 -0
- package/esm/field-builder.js.map +1 -1
- package/esm/prisma-field-builder.js +1 -0
- package/esm/prisma-field-builder.js.map +1 -1
- package/esm/util/cursors.js +10 -9
- package/esm/util/cursors.js.map +1 -1
- package/lib/field-builder.js +1 -0
- package/lib/field-builder.js.map +1 -1
- package/lib/prisma-field-builder.js +1 -0
- package/lib/prisma-field-builder.js.map +1 -1
- package/lib/util/cursors.js +9 -8
- package/lib/util/cursors.js.map +1 -1
- package/package.json +4 -4
- package/src/field-builder.ts +1 -0
- package/src/prisma-field-builder.ts +3 -2
- package/src/types.ts +68 -60
- package/src/util/cursors.ts +15 -14
- package/tsconfig.type.tsbuildinfo +1 -1
package/lib/util/cursors.js
CHANGED
|
@@ -23,6 +23,7 @@ _export(exports, {
|
|
|
23
23
|
getCursorFormatter: ()=>getCursorFormatter,
|
|
24
24
|
getCursorParser: ()=>getCursorParser
|
|
25
25
|
});
|
|
26
|
+
const _core = require("@pothos/core");
|
|
26
27
|
const _datamodel = require("./datamodel");
|
|
27
28
|
const DEFAULT_MAX_SIZE = 100;
|
|
28
29
|
const DEFAULT_SIZE = 20;
|
|
@@ -44,9 +45,9 @@ function formatCursorChunk(value) {
|
|
|
44
45
|
function formatCursor(fields) {
|
|
45
46
|
return (value)=>{
|
|
46
47
|
if (typeof fields === 'string') {
|
|
47
|
-
return
|
|
48
|
+
return (0, _core.encodeBase64)(`GPC:${formatCursorChunk(value[fields])}`);
|
|
48
49
|
}
|
|
49
|
-
return
|
|
50
|
+
return (0, _core.encodeBase64)(`GPC:J:${JSON.stringify(fields.map((name)=>value[name]))}`);
|
|
50
51
|
};
|
|
51
52
|
}
|
|
52
53
|
function parseRawCursor(cursor) {
|
|
@@ -54,7 +55,7 @@ function parseRawCursor(cursor) {
|
|
|
54
55
|
throw new TypeError('Cursor must be a string');
|
|
55
56
|
}
|
|
56
57
|
try {
|
|
57
|
-
const decoded =
|
|
58
|
+
const decoded = (0, _core.decodeBase64)(cursor);
|
|
58
59
|
const [, type, value] = decoded.match(/^GPC:(\w):(.*)/);
|
|
59
60
|
switch(type){
|
|
60
61
|
case 'S':
|
|
@@ -179,7 +180,8 @@ function parseCompositeCursor(fields) {
|
|
|
179
180
|
return record;
|
|
180
181
|
};
|
|
181
182
|
}
|
|
182
|
-
function prismaCursorConnectionQuery({ args
|
|
183
|
+
function prismaCursorConnectionQuery({ args , ctx , maxSize =DEFAULT_MAX_SIZE , defaultSize =DEFAULT_SIZE , parseCursor }) {
|
|
184
|
+
const { before , after , first , last } = args;
|
|
183
185
|
if (first != null && first < 0) {
|
|
184
186
|
throw new TypeError('Argument "first" must be a non-negative integer');
|
|
185
187
|
}
|
|
@@ -189,9 +191,6 @@ function prismaCursorConnectionQuery({ args: { before , after , first , last }
|
|
|
189
191
|
if (before && after) {
|
|
190
192
|
throw new Error('Arguments "before" and "after" are not supported at the same time');
|
|
191
193
|
}
|
|
192
|
-
if (before != null && last == null) {
|
|
193
|
-
throw new Error('Argument "last" must be provided when using "before"');
|
|
194
|
-
}
|
|
195
194
|
if (before != null && first != null) {
|
|
196
195
|
throw new Error('Arguments "before" and "first" are not supported at the same time');
|
|
197
196
|
}
|
|
@@ -199,8 +198,10 @@ function prismaCursorConnectionQuery({ args: { before , after , first , last }
|
|
|
199
198
|
throw new Error('Arguments "after" and "last" are not supported at the same time');
|
|
200
199
|
}
|
|
201
200
|
const cursor = before !== null && before !== void 0 ? before : after;
|
|
201
|
+
const maxSizeForConnection = typeof maxSize === 'function' ? maxSize(args, ctx) : maxSize;
|
|
202
|
+
const defaultSizeForConnection = typeof defaultSize === 'function' ? defaultSize(args, ctx) : defaultSize;
|
|
202
203
|
var ref;
|
|
203
|
-
let take = Math.min((ref = first !== null && first !== void 0 ? first : last) !== null && ref !== void 0 ? ref :
|
|
204
|
+
let take = Math.min((ref = first !== null && first !== void 0 ? first : last) !== null && ref !== void 0 ? ref : defaultSizeForConnection, maxSizeForConnection) + 1;
|
|
204
205
|
if (before) {
|
|
205
206
|
take = -take;
|
|
206
207
|
}
|
package/lib/util/cursors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/cursors.ts"],"names":["formatCursorChunk","formatCursor","parseRawCursor","parseID","getDefaultIDSerializer","getDefaultIDParser","serializeID","parseCompositeCursor","prismaCursorConnectionQuery","wrapConnectionResult","resolvePrismaCursorConnection","getCursorFormatter","getCursorParser","DEFAULT_MAX_SIZE","DEFAULT_SIZE","value","Date","String","Number","TypeError","fields","Buffer","from","toString","JSON","stringify","map","name","cursor","decoded","type","match","parseInt","parse","BigInt","Error","id","dataType","parseFloat","modelName","fieldName","builder","model","getModel","field","find","f","parent","primaryKey","join","n","kind","idx","index","uniqueIndexes","parts","Array","isArray","result","i","length","parsed","record","forEach","args","before","after","first","last","maxSize","defaultSize","parseCursor","take","Math","min","skip","results","totalCount","edges","gotFullResults","abs","hasNextPage","hasPreviousPage","nodes","slice","node","pageInfo","startCursor","endCursor","options","resolve","query","modelData","uniqueIndex","parser","rawCursor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/util/cursors.ts"],"names":["formatCursorChunk","formatCursor","parseRawCursor","parseID","getDefaultIDSerializer","getDefaultIDParser","serializeID","parseCompositeCursor","prismaCursorConnectionQuery","wrapConnectionResult","resolvePrismaCursorConnection","getCursorFormatter","getCursorParser","DEFAULT_MAX_SIZE","DEFAULT_SIZE","value","Date","String","Number","TypeError","fields","encodeBase64","JSON","stringify","map","name","cursor","decoded","decodeBase64","type","match","parseInt","parse","BigInt","Error","id","dataType","parseFloat","Buffer","from","modelName","fieldName","builder","model","getModel","field","find","f","parent","primaryKey","join","n","kind","idx","index","uniqueIndexes","parts","Array","isArray","result","i","length","toString","parsed","record","forEach","args","ctx","maxSize","defaultSize","parseCursor","before","after","first","last","maxSizeForConnection","defaultSizeForConnection","take","Math","min","skip","results","totalCount","edges","gotFullResults","abs","hasNextPage","hasPreviousPage","nodes","slice","node","pageInfo","startCursor","endCursor","options","resolve","query","modelData","uniqueIndex","parser","rawCursor"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pothos/plugin-prisma",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.23.0",
|
|
4
4
|
"description": "A Pothos plugin for more efficient integration with prisma",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"types": "./dts/index.d.ts",
|
|
@@ -49,10 +49,10 @@
|
|
|
49
49
|
"typescript": ">=4.7.2"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"@pothos/core": "3.
|
|
53
|
-
"@pothos/plugin-complexity": "3.6.
|
|
52
|
+
"@pothos/core": "3.15.0",
|
|
53
|
+
"@pothos/plugin-complexity": "3.6.1",
|
|
54
54
|
"@pothos/plugin-errors": "3.6.0",
|
|
55
|
-
"@pothos/plugin-relay": "3.
|
|
55
|
+
"@pothos/plugin-relay": "3.21.0",
|
|
56
56
|
"@pothos/plugin-simple-objects": "3.4.0",
|
|
57
57
|
"@pothos/test-utils": "1.3.0",
|
|
58
58
|
"@prisma/client": "^4.1.1",
|
package/src/field-builder.ts
CHANGED
|
@@ -144,8 +144,8 @@ export class PrismaObjectFieldBuilder<
|
|
|
144
144
|
}: {
|
|
145
145
|
type?: ObjectRef<unknown, unknown>;
|
|
146
146
|
totalCount?: boolean;
|
|
147
|
-
maxSize?: number;
|
|
148
|
-
defaultSize?: number;
|
|
147
|
+
maxSize?: number | ((args: {}, ctx: {}) => number);
|
|
148
|
+
defaultSize?: number | ((args: {}, ctx: {}) => number);
|
|
149
149
|
cursor: string;
|
|
150
150
|
extensions: {};
|
|
151
151
|
description?: string;
|
|
@@ -166,6 +166,7 @@ export class PrismaObjectFieldBuilder<
|
|
|
166
166
|
...((typeof query === 'function' ? query(args, ctx) : query) as {}),
|
|
167
167
|
...prismaCursorConnectionQuery({
|
|
168
168
|
parseCursor,
|
|
169
|
+
ctx,
|
|
169
170
|
maxSize,
|
|
170
171
|
defaultSize,
|
|
171
172
|
args,
|
package/src/types.ts
CHANGED
|
@@ -495,30 +495,34 @@ export type PrismaConnectionFieldOptions<
|
|
|
495
495
|
ResolveReturnShape
|
|
496
496
|
>,
|
|
497
497
|
'args' | 'resolve' | 'type'
|
|
498
|
-
> &
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
498
|
+
> &
|
|
499
|
+
(InputShapeFromFields<Args> &
|
|
500
|
+
PothosSchemaTypes.DefaultConnectionArguments extends infer ConnectionArgs
|
|
501
|
+
? {
|
|
502
|
+
type: Type;
|
|
503
|
+
cursor: string & keyof Model['Where'];
|
|
504
|
+
defaultSize?: number | ((args: ConnectionArgs, ctx: Types['Context']) => number);
|
|
505
|
+
maxSize?: number | ((args: ConnectionArgs, ctx: Types['Context']) => number);
|
|
506
|
+
resolve: (
|
|
507
|
+
query: {
|
|
508
|
+
include?: Model['Include'];
|
|
509
|
+
cursor?: {};
|
|
510
|
+
take: number;
|
|
511
|
+
skip: number;
|
|
512
|
+
},
|
|
513
|
+
parent: ParentShape,
|
|
514
|
+
args: ConnectionArgs,
|
|
515
|
+
context: Types['Context'],
|
|
516
|
+
info: GraphQLResolveInfo,
|
|
517
|
+
) => MaybePromise<Model['Shape'][]>;
|
|
518
|
+
totalCount?: (
|
|
519
|
+
parent: ParentShape,
|
|
520
|
+
args: ConnectionArgs,
|
|
521
|
+
context: Types['Context'],
|
|
522
|
+
info: GraphQLResolveInfo,
|
|
523
|
+
) => MaybePromise<number>;
|
|
524
|
+
}
|
|
525
|
+
: never);
|
|
522
526
|
|
|
523
527
|
export type RelatedConnectionOptions<
|
|
524
528
|
Types extends SchemaTypes,
|
|
@@ -551,43 +555,47 @@ export type RelatedConnectionOptions<
|
|
|
551
555
|
unknown
|
|
552
556
|
>,
|
|
553
557
|
'resolve' | 'type'
|
|
554
|
-
> &
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
type?: PrismaObjectRef<Model['Relations'][Field]['Types']>;
|
|
558
|
-
cursor: CursorFromRelation<Model, Field>;
|
|
559
|
-
defaultSize?: number;
|
|
560
|
-
maxSize?: number;
|
|
561
|
-
totalCount?: NeedsResolve extends false ? boolean : false;
|
|
562
|
-
} & (NeedsResolve extends false
|
|
558
|
+
> &
|
|
559
|
+
(InputShapeFromFields<Args> &
|
|
560
|
+
PothosSchemaTypes.DefaultConnectionArguments extends infer ConnectionArgs
|
|
563
561
|
? {
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
562
|
+
description?: string | false;
|
|
563
|
+
query?: QueryForField<Types, Args, Model['Include'][Field & keyof Model['Include']]>;
|
|
564
|
+
type?: PrismaObjectRef<Model['Relations'][Field]['Types']>;
|
|
565
|
+
cursor: CursorFromRelation<Model, Field>;
|
|
566
|
+
defaultSize?: number | ((args: ConnectionArgs, ctx: Types['Context']) => number);
|
|
567
|
+
maxSize?: number | ((args: ConnectionArgs, ctx: Types['Context']) => number);
|
|
568
|
+
totalCount?: NeedsResolve extends false ? boolean : false;
|
|
569
|
+
} & (NeedsResolve extends false
|
|
570
|
+
? {
|
|
571
|
+
resolve?: (
|
|
572
|
+
query: {
|
|
573
|
+
include?: Model['Include'];
|
|
574
|
+
cursor?: {};
|
|
575
|
+
take: number;
|
|
576
|
+
skip: number;
|
|
577
|
+
},
|
|
578
|
+
parent: Model['Shape'],
|
|
579
|
+
args: ConnectionArgs,
|
|
580
|
+
context: Types['Context'],
|
|
581
|
+
info: GraphQLResolveInfo,
|
|
582
|
+
) => MaybePromise<Model['Relations'][Field & keyof Model['Relations']]['Shape']>;
|
|
583
|
+
}
|
|
584
|
+
: {
|
|
585
|
+
resolve: (
|
|
586
|
+
query: {
|
|
587
|
+
include?: Model['Include'];
|
|
588
|
+
cursor?: {};
|
|
589
|
+
take: number;
|
|
590
|
+
skip: number;
|
|
591
|
+
},
|
|
592
|
+
parent: Model['Shape'],
|
|
593
|
+
args: ConnectionArgs,
|
|
594
|
+
context: Types['Context'],
|
|
595
|
+
info: GraphQLResolveInfo,
|
|
596
|
+
) => MaybePromise<Model['Relations'][Field & keyof Model['Relations']]['Shape']>;
|
|
597
|
+
})
|
|
598
|
+
: never);
|
|
591
599
|
|
|
592
600
|
export type WithBrand<T> = T & { [typeBrandKey]: string };
|
|
593
601
|
|
package/src/util/cursors.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable no-nested-ternary */
|
|
2
|
-
import { MaybePromise, SchemaTypes } from '@pothos/core';
|
|
2
|
+
import { decodeBase64, encodeBase64, MaybePromise, SchemaTypes } from '@pothos/core';
|
|
3
3
|
import { getModel } from './datamodel';
|
|
4
4
|
import { DMMFField } from './get-client';
|
|
5
5
|
|
|
@@ -26,12 +26,10 @@ export function formatCursorChunk(value: unknown) {
|
|
|
26
26
|
export function formatCursor(fields: string | string[]) {
|
|
27
27
|
return (value: Record<string, unknown>) => {
|
|
28
28
|
if (typeof fields === 'string') {
|
|
29
|
-
return
|
|
29
|
+
return encodeBase64(`GPC:${formatCursorChunk(value[fields])}`);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
return
|
|
33
|
-
'base64',
|
|
34
|
-
);
|
|
32
|
+
return encodeBase64(`GPC:J:${JSON.stringify(fields.map((name) => value[name]))}`);
|
|
35
33
|
};
|
|
36
34
|
}
|
|
37
35
|
|
|
@@ -41,7 +39,7 @@ export function parseRawCursor(cursor: unknown) {
|
|
|
41
39
|
}
|
|
42
40
|
|
|
43
41
|
try {
|
|
44
|
-
const decoded =
|
|
42
|
+
const decoded = decodeBase64(cursor);
|
|
45
43
|
const [, type, value] = decoded.match(/^GPC:(\w):(.*)/) as [string, string, string];
|
|
46
44
|
|
|
47
45
|
switch (type) {
|
|
@@ -198,8 +196,9 @@ export function parseCompositeCursor(fields: string[]) {
|
|
|
198
196
|
|
|
199
197
|
export interface PrismaCursorConnectionQueryOptions {
|
|
200
198
|
args: PothosSchemaTypes.DefaultConnectionArguments;
|
|
201
|
-
|
|
202
|
-
|
|
199
|
+
ctx: {};
|
|
200
|
+
defaultSize?: number | ((args: {}, ctx: {}) => number);
|
|
201
|
+
maxSize?: number | ((args: {}, ctx: {}) => number);
|
|
203
202
|
parseCursor: (cursor: string) => Record<string, unknown>;
|
|
204
203
|
}
|
|
205
204
|
|
|
@@ -209,11 +208,13 @@ interface ResolvePrismaCursorConnectionOptions extends PrismaCursorConnectionQue
|
|
|
209
208
|
}
|
|
210
209
|
|
|
211
210
|
export function prismaCursorConnectionQuery({
|
|
212
|
-
args
|
|
211
|
+
args,
|
|
212
|
+
ctx,
|
|
213
213
|
maxSize = DEFAULT_MAX_SIZE,
|
|
214
214
|
defaultSize = DEFAULT_SIZE,
|
|
215
215
|
parseCursor,
|
|
216
216
|
}: PrismaCursorConnectionQueryOptions) {
|
|
217
|
+
const { before, after, first, last } = args;
|
|
217
218
|
if (first != null && first < 0) {
|
|
218
219
|
throw new TypeError('Argument "first" must be a non-negative integer');
|
|
219
220
|
}
|
|
@@ -226,10 +227,6 @@ export function prismaCursorConnectionQuery({
|
|
|
226
227
|
throw new Error('Arguments "before" and "after" are not supported at the same time');
|
|
227
228
|
}
|
|
228
229
|
|
|
229
|
-
if (before != null && last == null) {
|
|
230
|
-
throw new Error('Argument "last" must be provided when using "before"');
|
|
231
|
-
}
|
|
232
|
-
|
|
233
230
|
if (before != null && first != null) {
|
|
234
231
|
throw new Error('Arguments "before" and "first" are not supported at the same time');
|
|
235
232
|
}
|
|
@@ -240,7 +237,11 @@ export function prismaCursorConnectionQuery({
|
|
|
240
237
|
|
|
241
238
|
const cursor = before ?? after;
|
|
242
239
|
|
|
243
|
-
|
|
240
|
+
const maxSizeForConnection = typeof maxSize === 'function' ? maxSize(args, ctx) : maxSize;
|
|
241
|
+
const defaultSizeForConnection =
|
|
242
|
+
typeof defaultSize === 'function' ? defaultSize(args, ctx) : defaultSize;
|
|
243
|
+
|
|
244
|
+
let take = Math.min(first ?? last ?? defaultSizeForConnection, maxSizeForConnection) + 1;
|
|
244
245
|
|
|
245
246
|
if (before) {
|
|
246
247
|
take = -take;
|