@pothos/plugin-prisma 3.36.0 → 3.38.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 +12 -0
- package/README.md +61 -44
- package/dts/connection-helpers.d.ts +17 -11
- package/dts/connection-helpers.d.ts.map +1 -1
- package/dts/index.d.ts +1 -1
- package/dts/index.d.ts.map +1 -1
- package/dts/prisma-field-builder.d.ts +2 -2
- package/dts/prisma-field-builder.d.ts.map +1 -1
- package/dts/types.d.ts +30 -30
- package/dts/types.d.ts.map +1 -1
- package/dts/util/cursors.d.ts +11 -5
- package/dts/util/cursors.d.ts.map +1 -1
- package/dts/util/relation-map.d.ts +1 -1
- package/dts/util/relation-map.d.ts.map +1 -1
- package/dts/util/selections.d.ts +1 -1
- package/dts/util/selections.d.ts.map +1 -1
- package/esm/connection-helpers.d.ts +17 -11
- package/esm/connection-helpers.d.ts.map +1 -1
- package/esm/connection-helpers.js +34 -2
- package/esm/connection-helpers.js.map +1 -1
- package/esm/field-builder.js +10 -10
- package/esm/field-builder.js.map +1 -1
- package/esm/generator.js +86 -74
- package/esm/generator.js.map +1 -1
- package/esm/index.d.ts +1 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +5 -5
- package/esm/index.js.map +1 -1
- package/esm/model-loader.js +9 -9
- package/esm/model-loader.js.map +1 -1
- package/esm/prisma-field-builder.d.ts +2 -2
- package/esm/prisma-field-builder.d.ts.map +1 -1
- package/esm/prisma-field-builder.js +12 -12
- package/esm/prisma-field-builder.js.map +1 -1
- package/esm/schema-builder.js +13 -13
- package/esm/schema-builder.js.map +1 -1
- package/esm/types.d.ts +30 -30
- package/esm/types.d.ts.map +1 -1
- package/esm/util/cursors.d.ts +11 -5
- package/esm/util/cursors.d.ts.map +1 -1
- package/esm/util/cursors.js +33 -29
- package/esm/util/cursors.js.map +1 -1
- package/esm/util/get-client.js +2 -2
- package/esm/util/get-client.js.map +1 -1
- package/esm/util/loader-map.js +2 -2
- package/esm/util/loader-map.js.map +1 -1
- package/esm/util/map-query.js +24 -24
- package/esm/util/map-query.js.map +1 -1
- package/esm/util/relation-map.d.ts +1 -1
- package/esm/util/relation-map.d.ts.map +1 -1
- package/esm/util/selections.d.ts +1 -1
- package/esm/util/selections.d.ts.map +1 -1
- package/esm/util/selections.js +2 -2
- package/esm/util/selections.js.map +1 -1
- package/generated.ts +67 -0
- package/lib/connection-helpers.js +34 -2
- package/lib/connection-helpers.js.map +1 -1
- package/lib/field-builder.js +10 -10
- package/lib/field-builder.js.map +1 -1
- package/lib/generator.js +84 -72
- package/lib/generator.js.map +1 -1
- package/lib/index.js +5 -5
- package/lib/index.js.map +1 -1
- package/lib/model-loader.js +9 -9
- package/lib/model-loader.js.map +1 -1
- package/lib/prisma-field-builder.js +12 -12
- package/lib/prisma-field-builder.js.map +1 -1
- package/lib/schema-builder.js +13 -13
- package/lib/schema-builder.js.map +1 -1
- package/lib/util/cursors.js +33 -29
- package/lib/util/cursors.js.map +1 -1
- package/lib/util/get-client.js +2 -2
- package/lib/util/get-client.js.map +1 -1
- package/lib/util/loader-map.js +2 -2
- package/lib/util/loader-map.js.map +1 -1
- package/lib/util/map-query.js +24 -24
- package/lib/util/map-query.js.map +1 -1
- package/lib/util/selections.js +2 -2
- package/lib/util/selections.js.map +1 -1
- package/package.json +21 -11
- package/src/connection-helpers.ts +62 -5
- package/src/generator.ts +215 -193
- package/src/util/cursors.ts +8 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursors.d.ts","sourceRoot":"","sources":["../../src/util/cursors.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAOrF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,UAe/C;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,WACrC,OAAO,MAAM,EAAE,OAAO,CAAC,YAOvC;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,WA2B7C;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CA2B7D;AAED,wBAAgB,sBAAsB,CAAC,KAAK,SAAS,WAAW,EAC9D,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,GAC9C,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAsB9C;AAED,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,WAAW,EAC1D,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,GAC9C,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAwCzB;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,UASxD;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,YACnC,OAAO,6BAexB;AAED,MAAM,WAAW,kCAAkC;IACjD,IAAI,EAAE,iBAAiB,CAAC,0BAA0B,CAAC;IACnD,GAAG,EAAE,EAAE,CAAC;IACR,WAAW,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,MAAM,CAAC,CAAC;IACvD,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,MAAM,CAAC,CAAC;IACnD,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1D;AAED,UAAU,oCAAqC,SAAQ,kCAAkC;IACvF,KAAK,EAAE,EAAE,CAAC;IACV,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;CACpD;AAED,wBAAgB,2BAA2B,CAAC,EAC1C,IAAI,EACJ,GAAG,EACH,OAA0B,EAC1B,WAA0B,EAC1B,WAAW,GACZ,EAAE,kCAAkC;;;;;;;;EAyCpC;AAED,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,EAAE,EAC/C,OAAO,EAAE,CAAC,EAAE,EACZ,IAAI,EAAE,iBAAiB,CAAC,0BAA0B,EAClD,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EAC3B,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"cursors.d.ts","sourceRoot":"","sources":["../../src/util/cursors.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAOrF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,UAe/C;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,WACrC,OAAO,MAAM,EAAE,OAAO,CAAC,YAOvC;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,WA2B7C;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CA2B7D;AAED,wBAAgB,sBAAsB,CAAC,KAAK,SAAS,WAAW,EAC9D,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,GAC9C,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAsB9C;AAED,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,WAAW,EAC1D,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,GAC9C,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAwCzB;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,UASxD;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,YACnC,OAAO,6BAexB;AAED,MAAM,WAAW,kCAAkC;IACjD,IAAI,EAAE,iBAAiB,CAAC,0BAA0B,CAAC;IACnD,GAAG,EAAE,EAAE,CAAC;IACR,WAAW,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,MAAM,CAAC,CAAC;IACvD,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,MAAM,CAAC,CAAC;IACnD,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1D;AAED,UAAU,oCAAqC,SAAQ,kCAAkC;IACvF,KAAK,EAAE,EAAE,CAAC;IACV,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;CACpD;AAED,wBAAgB,2BAA2B,CAAC,EAC1C,IAAI,EACJ,GAAG,EACH,OAA0B,EAC1B,WAA0B,EAC1B,WAAW,GACZ,EAAE,kCAAkC;;;;;;;;EAyCpC;AAED,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,EAAE,EAC/C,OAAO,EAAE,CAAC,EAAE,EACZ,IAAI,EAAE,iBAAiB,CAAC,0BAA0B,EAClD,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EAC3B,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC,EACzD,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO;gCADJ,aAAa,MAAM,CAAC;;;;;;;;;;;;;;EAmCzD;AAED,wBAAsB,6BAA6B,CAAC,CAAC,SAAS,EAAE,EAC9D,OAAO,EAAE,oCAAoC,EAC7C,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EAC3B,OAAO,EAAE,CAAC,KAAK,EAAE;IAAE,OAAO,CAAC,EAAE,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KAAK,YAAY,CAAC,CAAC,EAAE,CAAC;;;;;;;;;;;;;;;GASjG;AAED,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,WAAW,EAC1D,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,EAC/C,MAAM,EAAE,MAAM,8CAaf;AAED,wBAAgB,eAAe,CAAC,KAAK,SAAS,WAAW,EACvD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,EAC/C,MAAM,EAAE,MAAM,eAmBK,MAAM;;EAG1B"}
|
|
@@ -3,7 +3,7 @@ export interface FieldMap {
|
|
|
3
3
|
model: string;
|
|
4
4
|
relations: Map<string, FieldMap>;
|
|
5
5
|
}
|
|
6
|
-
export
|
|
6
|
+
export type RelationMap = Map<string, FieldMap>;
|
|
7
7
|
export declare const getRelationMap: import("@pothos/core").ContextCache<RelationMap, {
|
|
8
8
|
datamodel: unknown;
|
|
9
9
|
}, []>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation-map.d.ts","sourceRoot":"","sources":["../../src/util/relation-map.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAEhD,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CAClC;AAED,
|
|
1
|
+
{"version":3,"file":"relation-map.d.ts","sourceRoot":"","sources":["../../src/util/relation-map.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAEhD,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CAClC;AAED,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAEhD,eAAO,MAAM,cAAc;eAA0C,OAAO;MAE3E,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,SAAS,eAkB3D"}
|
package/dts/util/selections.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LoaderMappings, SelectionMap } from '../types';
|
|
2
2
|
import { FieldMap } from './relation-map';
|
|
3
|
-
export
|
|
3
|
+
export type SelectionMode = 'select' | 'include';
|
|
4
4
|
export interface SelectionState {
|
|
5
5
|
fieldMap: FieldMap;
|
|
6
6
|
query: object;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selections.d.ts","sourceRoot":"","sources":["../../src/util/selections.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,
|
|
1
|
+
{"version":3,"file":"selections.d.ts","sourceRoot":"","sources":["../../src/util/selections.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACvD,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACvC,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,cAAc,EACrB,YAAY,EAAE,YAAY,GAAG,OAAO,EACpC,WAAW,UAAQ,GAClB,OAAO,CAsCT;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,cAAc,EACxB,WAAW,UAAQ,GAClB,OAAO,CAQT;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,QAczE;AAED,wBAAgB,WAAW,CACzB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,aAAa,EACnB,MAAM,CAAC,EAAE,cAAc,GACtB,cAAc,CAWhB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,QAkDhG;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,GAAG,YAAY,CAyCpE"}
|
|
@@ -1,27 +1,31 @@
|
|
|
1
1
|
import { SchemaTypes } from '@pothos/core';
|
|
2
2
|
import { PrismaObjectRef } from './object-ref.js';
|
|
3
|
-
import type { PrismaModelTypes } from './types.js';
|
|
3
|
+
import type { PrismaModelTypes, ShapeFromSelection } from './types.js';
|
|
4
4
|
export declare const prismaModelKey: unique symbol;
|
|
5
|
-
export declare function prismaConnectionHelpers<Types extends SchemaTypes, RefOrType extends PrismaObjectRef<PrismaModelTypes> | keyof Types["PrismaTypes"], Model extends PrismaModelTypes = RefOrType extends PrismaObjectRef<infer T> ? T & PrismaModelTypes : Types["PrismaTypes"][RefOrType & keyof Types["PrismaTypes"]] & PrismaModelTypes, Shape = RefOrType extends PrismaObjectRef<PrismaModelTypes, infer T> ? T : Model["Shape"]
|
|
5
|
+
export declare function prismaConnectionHelpers<Types extends SchemaTypes, RefOrType extends PrismaObjectRef<PrismaModelTypes> | keyof Types["PrismaTypes"], Select extends Model["Select"] & {}, Model extends PrismaModelTypes = RefOrType extends PrismaObjectRef<infer T> ? T & PrismaModelTypes : Types["PrismaTypes"][RefOrType & keyof Types["PrismaTypes"]] & PrismaModelTypes, Shape = RefOrType extends PrismaObjectRef<PrismaModelTypes, infer T> ? T : Model["Shape"], EdgeShape = Model["Include"] extends Select ? Shape : ShapeFromSelection<Model, {
|
|
6
|
+
select: Select;
|
|
7
|
+
}>, NodeShape = EdgeShape>(builder: PothosSchemaTypes.SchemaBuilder<Types>, refOrType: RefOrType, options: {
|
|
6
8
|
cursor: string & keyof Model["WhereUnique"];
|
|
9
|
+
select?: (nestedSelection: <T extends {} | true>(selection?: T) => T) => Select;
|
|
7
10
|
defaultSize?: number | ((args: PothosSchemaTypes.DefaultConnectionArguments, ctx: {}) => number);
|
|
8
11
|
maxSize?: number | ((args: PothosSchemaTypes.DefaultConnectionArguments, ctx: {}) => number);
|
|
12
|
+
resolveNode?: (edge: EdgeShape) => NodeShape;
|
|
9
13
|
}): {
|
|
10
14
|
ref: PrismaObjectRef<Model, {}>;
|
|
11
|
-
resolve: (list: (
|
|
12
|
-
|
|
13
|
-
|
|
15
|
+
resolve: (list: (EdgeShape & {})[], args: PothosSchemaTypes.DefaultConnectionArguments, ctx: Types["Context"]) => {
|
|
16
|
+
edges: (Omit<EdgeShape, "cursor" | "node"> & {
|
|
17
|
+
node: NodeShape;
|
|
14
18
|
cursor: string;
|
|
15
|
-
|
|
16
|
-
} | null)[];
|
|
19
|
+
})[];
|
|
17
20
|
pageInfo: {
|
|
18
|
-
startCursor: string |
|
|
19
|
-
endCursor: string |
|
|
21
|
+
startCursor: string | null;
|
|
22
|
+
endCursor: string | null;
|
|
20
23
|
hasPreviousPage: boolean;
|
|
21
24
|
hasNextPage: boolean;
|
|
22
25
|
};
|
|
23
26
|
};
|
|
24
|
-
|
|
27
|
+
select: {};
|
|
28
|
+
getQuery: (args: PothosSchemaTypes.DefaultConnectionArguments, ctx: Types["Context"], nestedSelection: <T extends true | {}>(selection?: T | undefined, path?: string[]) => T) => ({
|
|
25
29
|
take: number;
|
|
26
30
|
skip: number;
|
|
27
31
|
cursor?: undefined;
|
|
@@ -29,6 +33,8 @@ export declare function prismaConnectionHelpers<Types extends SchemaTypes, RefOr
|
|
|
29
33
|
cursor: Record<string, unknown>;
|
|
30
34
|
take: number;
|
|
31
35
|
skip: number;
|
|
32
|
-
}
|
|
36
|
+
}) & (Model["Select"] extends Select ? {} : {
|
|
37
|
+
select: Select;
|
|
38
|
+
});
|
|
33
39
|
};
|
|
34
40
|
//# sourceMappingURL=connection-helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-helpers.d.ts","sourceRoot":"","sources":["../src/connection-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"connection-helpers.d.ts","sourceRoot":"","sources":["../src/connection-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAYpE,eAAO,MAAM,cAAc,eAAsC,CAAC;AAElE,wBAAgB,uBAAuB,CACrC,KAAK,SAAS,WAAW,EACzB,SAAS,SAAS,eAAe,CAAC,gBAAgB,CAAC,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,EAChF,MAAM,SAAS,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,EACnC,KAAK,SAAS,gBAAgB,GAAG,SAAS,SAAS,eAAe,CAAC,MAAM,CAAC,CAAC,GACvE,CAAC,GAAG,gBAAgB,GACpB,KAAK,CAAC,aAAa,CAAC,CAAC,SAAS,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,gBAAgB,EACnF,KAAK,GAAG,SAAS,SAAS,eAAe,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,EACzF,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,MAAM,GACvC,KAAK,GACL,kBAAkB,CAAC,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,EACjD,SAAS,GAAG,SAAS,EAErB,OAAO,EAAE,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,EAC/C,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE;IACP,MAAM,EAAE,MAAM,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,CAAC;IAC5C,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC;IAChF,WAAW,CAAC,EACR,MAAM,GACN,CAAC,CAAC,IAAI,EAAE,iBAAiB,CAAC,0BAA0B,EAAE,GAAG,EAAE,EAAE,KAAK,MAAM,CAAC,CAAC;IAC9E,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,iBAAiB,CAAC,0BAA0B,EAAE,GAAG,EAAE,EAAE,KAAK,MAAM,CAAC,CAAC;IAC7F,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,SAAS,CAAC;CAC9C;;oBAcO,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,QAClB,kBAAkB,0BAA0B,OAC7C,KAAK,CAAC,SAAS,CAAC;eAUZ,CAAC,KAAK,SAAS,EAAE,QAAQ,GAAG,MAAM,CAAC,GAAG;YAAE,IAAI,EAAE,SAAS,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,EAAE;kBACzE;YACR,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;YAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;YACzB,eAAe,EAAE,OAAO,CAAC;YACzB,WAAW,EAAE,OAAO,CAAC;SACtB;;;qBAkBG,kBAAkB,0BAA0B,OAC7C,KAAK,CAAC,SAAS,CAAC,2EACwC,MAAM,EAAE;;;;;;;;;gBAkBlB,MAAM;;EAW5D"}
|
|
@@ -1,14 +1,22 @@
|
|
|
1
|
+
import { ModelLoader } from './model-loader.js';
|
|
1
2
|
import { getCursorFormatter, getCursorParser, prismaCursorConnectionQuery, wrapConnectionResult } from './util/cursors.js';
|
|
2
3
|
import { getRefFromModel } from './util/datamodel.js';
|
|
4
|
+
import { getDMMF } from './util/get-client.js';
|
|
5
|
+
import { getRelationMap } from './util/relation-map.js';
|
|
6
|
+
import { createState, mergeSelection, selectionToQuery } from './util/selections.js';
|
|
3
7
|
export const prismaModelKey = Symbol.for("Pothos.prismaModelKey");
|
|
4
8
|
export function prismaConnectionHelpers(builder, refOrType, options) {
|
|
5
9
|
const modelName = typeof refOrType === "string" ? refOrType : refOrType.modelName;
|
|
10
|
+
const ref = typeof refOrType === "string" ? getRefFromModel(modelName, builder) : refOrType;
|
|
6
11
|
const formatCursor = getCursorFormatter(modelName, builder, options.cursor);
|
|
7
12
|
const parseCursor = getCursorParser(modelName, builder, options.cursor);
|
|
13
|
+
const cursorSelection = ModelLoader.getCursorSelection(ref, modelName, options.cursor, builder);
|
|
14
|
+
const fieldMap = getRelationMap(getDMMF(builder)).get(modelName);
|
|
8
15
|
function resolve(list, args, ctx) {
|
|
9
|
-
|
|
16
|
+
var _ref;
|
|
17
|
+
return wrapConnectionResult(list, args, getQueryArgs(args, ctx).take, formatCursor, null, (_ref = options === null || options === void 0 ? void 0 : options.resolveNode) !== null && _ref !== void 0 ? _ref : (edge) => edge);
|
|
10
18
|
}
|
|
11
|
-
function
|
|
19
|
+
function getQueryArgs(args, ctx) {
|
|
12
20
|
return prismaCursorConnectionQuery({
|
|
13
21
|
args,
|
|
14
22
|
ctx,
|
|
@@ -17,9 +25,33 @@ export function prismaConnectionHelpers(builder, refOrType, options) {
|
|
|
17
25
|
parseCursor
|
|
18
26
|
});
|
|
19
27
|
}
|
|
28
|
+
function getQuery(args, ctx, nestedSelection) {
|
|
29
|
+
const nestedSelect = options.select ? {
|
|
30
|
+
select: options.select((sel) => nestedSelection(sel, [
|
|
31
|
+
"edges",
|
|
32
|
+
"node"
|
|
33
|
+
]))
|
|
34
|
+
} : nestedSelection(true, [
|
|
35
|
+
"edges",
|
|
36
|
+
"node"
|
|
37
|
+
]);
|
|
38
|
+
const selectState = createState(fieldMap, "select");
|
|
39
|
+
mergeSelection(selectState, {
|
|
40
|
+
select: cursorSelection
|
|
41
|
+
});
|
|
42
|
+
if (typeof nestedSelect === "object" && nestedSelect) {
|
|
43
|
+
mergeSelection(selectState, nestedSelect);
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
...getQueryArgs(args, ctx),
|
|
47
|
+
...selectionToQuery(selectState)
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
var _options_select;
|
|
20
51
|
return {
|
|
21
52
|
ref: typeof refOrType === "string" ? getRefFromModel(refOrType, builder) : refOrType,
|
|
22
53
|
resolve,
|
|
54
|
+
select: (_options_select = options.select) !== null && _options_select !== void 0 ? _options_select : {},
|
|
23
55
|
getQuery
|
|
24
56
|
};
|
|
25
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/connection-helpers.ts"],"names":["getCursorFormatter","getCursorParser","prismaCursorConnectionQuery","wrapConnectionResult","getRefFromModel","prismaModelKey","Symbol","for","prismaConnectionHelpers","builder","refOrType","options","modelName","formatCursor","cursor","parseCursor","resolve","list","args","ctx","
|
|
1
|
+
{"version":3,"sources":["../src/connection-helpers.ts"],"names":["ModelLoader","getCursorFormatter","getCursorParser","prismaCursorConnectionQuery","wrapConnectionResult","getRefFromModel","getDMMF","getRelationMap","createState","mergeSelection","selectionToQuery","prismaModelKey","Symbol","for","prismaConnectionHelpers","builder","refOrType","options","modelName","ref","formatCursor","cursor","parseCursor","cursorSelection","getCursorSelection","fieldMap","get","resolve","list","args","ctx","getQueryArgs","take","resolveNode","edge","maxSize","defaultSize","getQuery","nestedSelection","nestedSelect","select","sel","selectState"],"mappings":"AACA,SAASA,WAAW,QAAQ,iBAAiB;AAG7C,SACEC,kBAAkB,EAClBC,eAAe,EACfC,2BAA2B,EAC3BC,oBAAoB,QACf,iBAAiB;AACxB,SAASC,eAAe,QAAQ,mBAAmB;AACnD,SAASC,OAAO,QAAQ,oBAAoB;AAC5C,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,WAAW,EAAEC,cAAc,EAAEC,gBAAgB,QAAQ,oBAAoB;AAElF,OAAO,MAAMC,iBAAiBC,OAAOC,GAAG,CAAC,yBAAyB;AAElE,OAAO,SAASC,wBAadC,OAA+C,EAC/CC,SAAoB,EACpBC,OAQC,EACD;IACA,MAAMC,YACJ,OAAOF,cAAc,WAAWA,YAAY,AAACA,UAAqCE,SAAS;IAC7F,MAAMC,MACJ,OAAOH,cAAc,WACjBX,gBAAgBa,WAAWH,WAC1BC,SAAgC;IACvC,MAAMI,eAAenB,mBAAmBiB,WAAWH,SAASE,QAAQI,MAAM;IAC1E,MAAMC,cAAcpB,gBAAgBgB,WAAWH,SAASE,QAAQI,MAAM;IACtE,MAAME,kBAAkBvB,YAAYwB,kBAAkB,CAACL,KAAKD,WAAWD,QAAQI,MAAM,EAAEN;IACvF,MAAMU,WAAWlB,eAAeD,QAAQS,UAAUW,GAAG,CAACR;IAEtD,SAASS,QACPC,IAAwB,EACxBC,IAAkD,EAClDC,GAAqB,EACrB;YAOE;QANF,OAAO1B,qBACLwB,MACAC,MACAE,aAAaF,MAAMC,KAAKE,IAAI,EAC5BZ,cACA,IAAI,EACJ,CAAA,OAACH,oBAAAA,qBAAAA,KAAAA,IAAAA,QAASgB,WAAW,cAArB,kBAAA,OAAoC,CAACC,OAAkBA,IAAK;IAUhE;IAEA,SAASH,aAAaF,IAAkD,EAAEC,GAAqB,EAAE;QAC/F,OAAO3B,4BAA4B;YACjC0B;YACAC;YACAK,SAAS,OAAOlB,QAAQkB,OAAO,KAAK,aAAalB,QAAQkB,OAAO,CAACN,MAAMC,OAAOb,QAAQkB,OAAO;YAC7FC,aACE,OAAOnB,QAAQmB,WAAW,KAAK,aAC3BnB,QAAQmB,WAAW,CAACP,MAAMC,OAC1Bb,QAAQmB,WAAW;YACzBd;QACF;IACF;IAEA,SAASe,SACPR,IAAkD,EAClDC,GAAqB,EACrBQ,eAA2E,EAC3E;QACA,MAAMC,eAA+CtB,QAAQuB,MAAM,GAC/D;YAAEA,QAAQvB,QAAQuB,MAAM,CAAC,CAACC,MAAQH,gBAAgBG,KAAK;oBAAC;oBAAS;iBAAO;QAAG,IAC3EH,gBAAgB,IAAI,EAAE;YAAC;YAAS;SAAO,CAAC;QAE5C,MAAMI,cAAclC,YAAYiB,UAAU;QAE1ChB,eAAeiC,aAAa;YAAEF,QAAQjB;QAAgB;QAEtD,IAAI,OAAOgB,iBAAiB,YAAYA,cAAc;YACpD9B,eAAeiC,aAAaH;QAC9B,CAAC;QAED,OAAO;YACL,GAAGR,aAAaF,MAAMC,IAAI;YAC1B,GAAGpB,iBAAiBgC,YAAY;QAClC;IAEF;QAOUzB;IALV,OAAO;QACLE,KAAM,OAAOH,cAAc,WACvBX,gBAAgBW,WAAWD,WAC3BC,SAAS;QACbW;QACAa,QAAQvB,CAAAA,kBAAAA,QAAQuB,MAAM,cAAdvB,6BAAAA,kBAAkB,CAAC,CAAC;QAC5BoB;IACF;AACF,CAAC"}
|
package/esm/field-builder.js
CHANGED
|
@@ -42,16 +42,16 @@ fieldBuilderProto.prismaFieldWithInput = function prismaFieldWithInput({ type, r
|
|
|
42
42
|
});
|
|
43
43
|
};
|
|
44
44
|
fieldBuilderProto.prismaConnection = function prismaConnection({ type, cursor, maxSize, defaultSize, resolve, totalCount, ...options }, connectionOptions = {}, edgeOptions = {}) {
|
|
45
|
-
var
|
|
46
|
-
const
|
|
47
|
-
const typeName = this.builder.configStore.getTypeConfig(
|
|
48
|
-
const model = (
|
|
45
|
+
var _this_builder_configStore_getTypeConfig_extensions;
|
|
46
|
+
const ref = typeof type === "string" ? getRefFromModel(type, this.builder) : type;
|
|
47
|
+
const typeName = this.builder.configStore.getTypeConfig(ref).name;
|
|
48
|
+
const model = (_this_builder_configStore_getTypeConfig_extensions = this.builder.configStore.getTypeConfig(ref).extensions) === null || _this_builder_configStore_getTypeConfig_extensions === void 0 ? void 0 : _this_builder_configStore_getTypeConfig_extensions.pothosPrismaModel;
|
|
49
49
|
const formatCursor = getCursorFormatter(model, this.builder, cursor);
|
|
50
50
|
const parseCursor = getCursorParser(model, this.builder, cursor);
|
|
51
|
-
const cursorSelection = ModelLoader.getCursorSelection(
|
|
51
|
+
const cursorSelection = ModelLoader.getCursorSelection(ref, model, cursor, this.builder);
|
|
52
52
|
const fieldRef = this.connection({
|
|
53
53
|
...options,
|
|
54
|
-
type:
|
|
54
|
+
type: ref,
|
|
55
55
|
resolve: (parent, args, context, info) => resolvePrismaCursorConnection({
|
|
56
56
|
query: queryFromInfo({
|
|
57
57
|
context,
|
|
@@ -73,16 +73,16 @@ fieldBuilderProto.prismaConnection = function prismaConnection({ type, cursor, m
|
|
|
73
73
|
}, connectionOptions instanceof ObjectRef ? connectionOptions : {
|
|
74
74
|
...connectionOptions,
|
|
75
75
|
fields: totalCount ? (t) => {
|
|
76
|
-
var
|
|
76
|
+
var _connectionOptions_fields;
|
|
77
77
|
return {
|
|
78
78
|
totalCount: t.int({
|
|
79
79
|
nullable: false,
|
|
80
80
|
resolve: (parent, args, context) => {
|
|
81
|
-
var
|
|
82
|
-
return (
|
|
81
|
+
var _parent_totalCount;
|
|
82
|
+
return (_parent_totalCount = parent.totalCount) === null || _parent_totalCount === void 0 ? void 0 : _parent_totalCount.call(parent);
|
|
83
83
|
}
|
|
84
84
|
}),
|
|
85
|
-
...(
|
|
85
|
+
...(_connectionOptions_fields = connectionOptions.fields) === null || _connectionOptions_fields === void 0 ? void 0 : _connectionOptions_fields.call(connectionOptions, t)
|
|
86
86
|
};
|
|
87
87
|
} : connectionOptions.fields,
|
|
88
88
|
extensions: {
|
package/esm/field-builder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/field-builder.ts"],"names":["ObjectRef","RootFieldBuilder","ModelLoader","getCursorFormatter","getCursorParser","resolvePrismaCursorConnection","getRefFromModel","queryFromInfo","fieldBuilderProto","prototype","prismaField","type","resolve","options","modelOrRef","Array","isArray","typeRef","builder","typeParam","field","parent","args","context","info","query","prismaFieldWithInput","fieldWithInput","prismaConnection","cursor","maxSize","defaultSize","totalCount","connectionOptions","edgeOptions","ref","typeName","configStore","getTypeConfig","name","model","extensions","pothosPrismaModel","formatCursor","parseCursor","cursorSelection","getCursorSelection","fieldRef","connection","select","path","ctx","fields","t","int","nullable"],"mappings":"AACA,SAKEA,SAAS,EACTC,gBAAgB,QAEX,eAAe;AACtB,SAASC,WAAW,QAAQ,iBAAiB;AAE7C,SAASC,kBAAkB,EAAEC,eAAe,EAAEC,6BAA6B,QAAQ,iBAAiB;AACpG,SAASC,eAAe,QAAQ,mBAAmB;AACnD,SAASC,aAAa,QAAQ,mBAAmB;AAEjD,cAAc,yBAAyB;AAEvC,MAAMC,oBAAoBP,iBAAiBQ,SAAS;AAMpDD,kBAAkBE,WAAW,GAAG,SAASA,YAAY,EAAEC,KAAI,EAAEC,QAAO,EAAE,GAAGC,SAAS,EAAE;IAClF,MAAMC,aAAaC,MAAMC,OAAO,CAACL,QAAQA,IAAI,CAAC,EAAE,GAAGA,IAAI;IACvD,MAAMM,UACJ,OAAOH,eAAe,WAClBR,gBAAgBQ,YAAY,IAAI,CAACI,OAAO,IACvCJ,UAAiC;IACxC,MAAMK,YAAYJ,MAAMC,OAAO,CAACL,QAAS;QAACM;KAAQ,GAA4BA,OAAO;IAErF,OAAO,IAAI,CAACG,KAAK,CAAC;QAChB,GAAIP,OAAO;QACXF,MAAMQ;QACNP,SAAS,CAACS,QAAeC,MAAeC,SAAaC,OAA6B;YAChF,MAAMC,QAAQlB,cAAc;gBAAEgB;gBAASC;YAAK;YAE5C,OAAOZ,QAAQa,OAAOJ,QAAQC,MAAeC,SAASC;QACxD;IACF;AACF;AAEAhB,kBAAkBkB,oBAAoB,GAAG,SAASA,qBAAqB,EACrEf,KAAI,EACJC,QAAO,EACP,GAAGC,SACJ,EAAE;IACD,MAAMC,aAAaC,MAAMC,OAAO,CAACL,QAAQA,IAAI,CAAC,EAAE,GAAGA,IAAI;IACvD,MAAMM,UACJ,OAAOH,eAAe,WAClBR,gBAAgBQ,YAAY,IAAI,CAACI,OAAO,IACvCJ,UAAiC;IACxC,MAAMK,YAAYJ,MAAMC,OAAO,CAACL,QAAS;QAACM;KAAQ,GAA4BA,OAAO;IAErF,OAAO,AACL,IAAI,CACJU,cAAc,CAAC;QACf,GAAId,OAAO;QACXF,MAAMQ;QACNP,SAAS,CAACS,QAAeC,MAAeC,SAAaC,OAA6B;YAChF,MAAMC,QAAQlB,cAAc;gBAAEgB;gBAASC;YAAK;YAE5C,OAAOZ,QAAQa,OAAOJ,QAAQC,MAAeC,SAASC;QACxD;IACF;AACF;AAEAhB,kBAAkBoB,gBAAgB,GAAG,SAASA,iBAQ5C,EACEjB,KAAI,EACJkB,OAAM,EACNC,QAAO,EACPC,YAAW,EACXnB,QAAO,EACPoB,WAAU,EACV,GAAGnB,SAWJ,EACDoB,oBAAwB,CAAC,CAAC,EAC1BC,cAAkB,CAAC,CAAC,EACpB;QAIc;IAHd,MAAMC,
|
|
1
|
+
{"version":3,"sources":["../src/field-builder.ts"],"names":["ObjectRef","RootFieldBuilder","ModelLoader","getCursorFormatter","getCursorParser","resolvePrismaCursorConnection","getRefFromModel","queryFromInfo","fieldBuilderProto","prototype","prismaField","type","resolve","options","modelOrRef","Array","isArray","typeRef","builder","typeParam","field","parent","args","context","info","query","prismaFieldWithInput","fieldWithInput","prismaConnection","cursor","maxSize","defaultSize","totalCount","connectionOptions","edgeOptions","ref","typeName","configStore","getTypeConfig","name","model","extensions","pothosPrismaModel","formatCursor","parseCursor","cursorSelection","getCursorSelection","fieldRef","connection","select","path","ctx","fields","t","int","nullable"],"mappings":"AACA,SAKEA,SAAS,EACTC,gBAAgB,QAEX,eAAe;AACtB,SAASC,WAAW,QAAQ,iBAAiB;AAE7C,SAASC,kBAAkB,EAAEC,eAAe,EAAEC,6BAA6B,QAAQ,iBAAiB;AACpG,SAASC,eAAe,QAAQ,mBAAmB;AACnD,SAASC,aAAa,QAAQ,mBAAmB;AAEjD,cAAc,yBAAyB;AAEvC,MAAMC,oBAAoBP,iBAAiBQ,SAAS;AAMpDD,kBAAkBE,WAAW,GAAG,SAASA,YAAY,EAAEC,KAAI,EAAEC,QAAO,EAAE,GAAGC,SAAS,EAAE;IAClF,MAAMC,aAAaC,MAAMC,OAAO,CAACL,QAAQA,IAAI,CAAC,EAAE,GAAGA,IAAI;IACvD,MAAMM,UACJ,OAAOH,eAAe,WAClBR,gBAAgBQ,YAAY,IAAI,CAACI,OAAO,IACvCJ,UAAiC;IACxC,MAAMK,YAAYJ,MAAMC,OAAO,CAACL,QAAS;QAACM;KAAQ,GAA4BA,OAAO;IAErF,OAAO,IAAI,CAACG,KAAK,CAAC;QAChB,GAAIP,OAAO;QACXF,MAAMQ;QACNP,SAAS,CAACS,QAAeC,MAAeC,SAAaC,OAA6B;YAChF,MAAMC,QAAQlB,cAAc;gBAAEgB;gBAASC;YAAK;YAE5C,OAAOZ,QAAQa,OAAOJ,QAAQC,MAAeC,SAASC;QACxD;IACF;AACF;AAEAhB,kBAAkBkB,oBAAoB,GAAG,SAASA,qBAAqB,EACrEf,KAAI,EACJC,QAAO,EACP,GAAGC,SACJ,EAAE;IACD,MAAMC,aAAaC,MAAMC,OAAO,CAACL,QAAQA,IAAI,CAAC,EAAE,GAAGA,IAAI;IACvD,MAAMM,UACJ,OAAOH,eAAe,WAClBR,gBAAgBQ,YAAY,IAAI,CAACI,OAAO,IACvCJ,UAAiC;IACxC,MAAMK,YAAYJ,MAAMC,OAAO,CAACL,QAAS;QAACM;KAAQ,GAA4BA,OAAO;IAErF,OAAO,AACL,IAAI,CACJU,cAAc,CAAC;QACf,GAAId,OAAO;QACXF,MAAMQ;QACNP,SAAS,CAACS,QAAeC,MAAeC,SAAaC,OAA6B;YAChF,MAAMC,QAAQlB,cAAc;gBAAEgB;gBAASC;YAAK;YAE5C,OAAOZ,QAAQa,OAAOJ,QAAQC,MAAeC,SAASC;QACxD;IACF;AACF;AAEAhB,kBAAkBoB,gBAAgB,GAAG,SAASA,iBAQ5C,EACEjB,KAAI,EACJkB,OAAM,EACNC,QAAO,EACPC,YAAW,EACXnB,QAAO,EACPoB,WAAU,EACV,GAAGnB,SAWJ,EACDoB,oBAAwB,CAAC,CAAC,EAC1BC,cAAkB,CAAC,CAAC,EACpB;QAIc;IAHd,MAAMC,MAAM,OAAOxB,SAAS,WAAWL,gBAAgBK,MAAM,IAAI,CAACO,OAAO,IAAIP,IAAI;IACjF,MAAMyB,WAAW,IAAI,CAAClB,OAAO,CAACmB,WAAW,CAACC,aAAa,CAACH,KAAKI,IAAI;IAEjE,MAAMC,QAAQ,CAAA,qDAAA,IAAI,CAACtB,OAAO,CAACmB,WAAW,CAACC,aAAa,CAACH,KAAKM,UAAU,cAAtD,gEAAA,KAAA,IAAA,mDAAwDC,iBAAiB;IAEvF,MAAMC,eAAexC,mBAAmBqC,OAAO,IAAI,CAACtB,OAAO,EAAEW;IAC7D,MAAMe,cAAcxC,gBAAgBoC,OAAO,IAAI,CAACtB,OAAO,EAAEW;IACzD,MAAMgB,kBAAkB3C,YAAY4C,kBAAkB,CAACX,KAAKK,OAAOX,QAAQ,IAAI,CAACX,OAAO;IAEvF,MAAM6B,WAAW,AACf,IAAI,CACJC,UAAU,CACV;QACE,GAAGnC,OAAO;QACVF,MAAMwB;QACNvB,SAAS,CACPS,QACAC,MACAC,SACAC,OAEAnB,8BACE;gBACEoB,OAAOlB,cAAc;oBACnBgB;oBACAC;oBACAyB,QAAQJ;oBACRK,MAAM;wBAAC;wBAAS;qBAAO;oBACvBd;gBACF;gBACAe,KAAK5B;gBACLqB;gBACAd;gBACAC;gBACAT;gBACAU,YAAYA,cAAe,CAAA,IAAMA,WAAWX,QAAQC,MAAeC,SAASC,KAAI;YAClF,GACAmB,cACA,CAAClB,QAAUb,QAAQa,OAAgBJ,QAAQC,MAAeC,SAASC;IAEzE,GACAS,6BAA6BjC,YACzBiC,oBACA;QACE,GAAGA,iBAAiB;QACpBmB,QAAQpB,aACJ,CACEqB;gBASG;YALC,OAAA;gBACJrB,YAAYqB,EAAEC,GAAG,CAAC;oBAChBC,UAAU,KAAK;oBACf3C,SAAS,CAACS,QAAQC,MAAMC;4BAAYF;wBAAAA,OAAAA,CAAAA,qBAAAA,OAAOW,UAAU,cAAjBX,gCAAAA,KAAAA,IAAAA,mBAAAA,KAAAA;;gBACtC;mBACG,CAAA,4BAAA,AAACY,kBAAsDmB,MAAM,cAA7D,uCAAA,KAAA,IAAA,0BAAA,KAACnB,mBAA+DoB,EAAnE;YACF;YACA,AAACpB,kBAA4CmB,MAAM;QACvDX,YAAY;YACV,GAAG,AAACR,8BAAAA,+BAAD,KAAA,IAAA,AAACA,kBAAsDQ,UAAU;QACtE;IACF,CAAC,EACLP;IAGF,OAAOa;AACT"}
|
package/esm/generator.js
CHANGED
|
@@ -29,84 +29,96 @@ generatorHandler({
|
|
|
29
29
|
defaultOutput
|
|
30
30
|
}),
|
|
31
31
|
onGenerate: async (options) => {
|
|
32
|
+
var _options_generator_output;
|
|
32
33
|
checkTSVersion();
|
|
33
34
|
const config = options.generator.config;
|
|
34
|
-
var
|
|
35
|
-
const prismaLocation = (
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const possibleTypes = [
|
|
43
|
-
`${type}OrderByWithRelationInput`,
|
|
44
|
-
`${type}OrderByWithRelationAndSearchRelevanceInput`
|
|
45
|
-
];
|
|
46
|
-
const orderBy = (ref = options.dmmf.schema.inputObjectTypes.prisma) === null || ref === void 0 ? void 0 : ref.find((inputType) => possibleTypes.includes(inputType.name));
|
|
47
|
-
if (!orderBy) {
|
|
48
|
-
return possibleTypes[0];
|
|
49
|
-
}
|
|
50
|
-
return orderBy.name;
|
|
35
|
+
var _config_clientOutput;
|
|
36
|
+
const prismaLocation = (_config_clientOutput = config.clientOutput) !== null && _config_clientOutput !== void 0 ? _config_clientOutput : options.otherGenerators.find((gen) => gen.provider.value === "prisma-client-js").output.value;
|
|
37
|
+
var _options_generator_output_value;
|
|
38
|
+
const outputLocation = (_options_generator_output_value = (_options_generator_output = options.generator.output) === null || _options_generator_output === void 0 ? void 0 : _options_generator_output.value) !== null && _options_generator_output_value !== void 0 ? _options_generator_output_value : defaultOutput;
|
|
39
|
+
const prismaTypes = buildTypes(options.dmmf);
|
|
40
|
+
await generateOutput(options.dmmf, prismaTypes, prismaLocation, outputLocation);
|
|
41
|
+
if (outputLocation === defaultOutput) {
|
|
42
|
+
await generateOutput(options.dmmf, prismaTypes, prismaLocation.replace("../", "../../"), outputLocation.replace("/generated.ts", "/esm/generated.ts"));
|
|
51
43
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
});
|
|
77
|
-
const prismaTypes = ts.factory.createInterfaceDeclaration([], [
|
|
78
|
-
ts.factory.createModifier(SyntaxKind.ExportKeyword),
|
|
79
|
-
ts.factory.createModifier(SyntaxKind.DefaultKeyword)
|
|
80
|
-
], "PrismaTypes", [], [], modelTypes);
|
|
81
|
-
const printer = ts.createPrinter({});
|
|
82
|
-
const sourcefile = ts.createSourceFile(options.generator.output.value, "", ScriptTarget.ESNext, false, ScriptKind.TS);
|
|
83
|
-
const nodes = ts.factory.createNodeArray([
|
|
84
|
-
importStatement,
|
|
85
|
-
prismaTypes
|
|
86
|
-
]);
|
|
87
|
-
const result = printer.printList(ListFormat.SourceFileStatements, nodes, sourcefile);
|
|
88
|
-
await new Promise((resolve, reject) => {
|
|
89
|
-
mkdir(dirname(sourcefile.fileName), {
|
|
90
|
-
recursive: true
|
|
91
|
-
}, (err) => {
|
|
92
|
-
if (err) {
|
|
93
|
-
reject(err);
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
resolve();
|
|
97
|
-
}
|
|
98
|
-
});
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
async function generateOutput(dmmf, prismaTypes, prismaLocation, outputLocation) {
|
|
47
|
+
const importStatement = ts.factory.createImportDeclaration([], [], ts.factory.createImportClause(true, undefined, ts.factory.createNamedImports([
|
|
48
|
+
ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier("Prisma")),
|
|
49
|
+
...dmmf.datamodel.models.map((model) => ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier(model.name)))
|
|
50
|
+
])), ts.factory.createStringLiteral(prismaLocation));
|
|
51
|
+
const printer = ts.createPrinter({});
|
|
52
|
+
const sourcefile = ts.createSourceFile(outputLocation, "", ScriptTarget.ESNext, false, ScriptKind.TS);
|
|
53
|
+
const nodes = ts.factory.createNodeArray([
|
|
54
|
+
importStatement,
|
|
55
|
+
prismaTypes
|
|
56
|
+
]);
|
|
57
|
+
const result = printer.printList(ListFormat.SourceFileStatements, nodes, sourcefile);
|
|
58
|
+
await new Promise((resolve, reject) => {
|
|
59
|
+
mkdir(dirname(sourcefile.fileName), {
|
|
60
|
+
recursive: true
|
|
61
|
+
}, (err) => {
|
|
62
|
+
if (err) {
|
|
63
|
+
reject(err);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
resolve();
|
|
67
|
+
}
|
|
99
68
|
});
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}
|
|
69
|
+
});
|
|
70
|
+
return new Promise((resolve, reject) => {
|
|
71
|
+
writeFile(sourcefile.fileName, `/* eslint-disable */\n${result}`, (err) => {
|
|
72
|
+
if (err) {
|
|
73
|
+
reject(err);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
resolve();
|
|
77
|
+
}
|
|
109
78
|
});
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
function buildTypes(dmmf) {
|
|
82
|
+
function getOrderByTypeName(type) {
|
|
83
|
+
var _dmmf_schema_inputObjectTypes_prisma;
|
|
84
|
+
const possibleTypes = [
|
|
85
|
+
`${type}OrderByWithRelationInput`,
|
|
86
|
+
`${type}OrderByWithRelationAndSearchRelevanceInput`
|
|
87
|
+
];
|
|
88
|
+
const orderBy = (_dmmf_schema_inputObjectTypes_prisma = dmmf.schema.inputObjectTypes.prisma) === null || _dmmf_schema_inputObjectTypes_prisma === void 0 ? void 0 : _dmmf_schema_inputObjectTypes_prisma.find((inputType) => possibleTypes.includes(inputType.name));
|
|
89
|
+
if (!orderBy) {
|
|
90
|
+
return possibleTypes[0];
|
|
91
|
+
}
|
|
92
|
+
return orderBy.name;
|
|
110
93
|
}
|
|
111
|
-
|
|
94
|
+
const modelTypes = dmmf.datamodel.models.map((model) => {
|
|
95
|
+
const relations = model.fields.filter((field) => !!field.relationName);
|
|
96
|
+
const listRelations = model.fields.filter((field) => !!field.relationName && field.isList);
|
|
97
|
+
return ts.factory.createPropertySignature([], model.name, undefined, ts.factory.createTypeLiteralNode([
|
|
98
|
+
ts.factory.createPropertySignature([], "Name", undefined, ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral(model.name))),
|
|
99
|
+
ts.factory.createPropertySignature([], "Shape", undefined, ts.factory.createTypeReferenceNode(model.name)),
|
|
100
|
+
ts.factory.createPropertySignature([], "Include", undefined, relations.length > 0 ? ts.factory.createTypeReferenceNode(`Prisma.${model.name}Include`) : ts.factory.createTypeReferenceNode("never")),
|
|
101
|
+
ts.factory.createPropertySignature([], "Select", undefined, ts.factory.createTypeReferenceNode(`Prisma.${model.name}Select`)),
|
|
102
|
+
ts.factory.createPropertySignature([], "OrderBy", undefined, ts.factory.createTypeReferenceNode(`Prisma.${getOrderByTypeName(model.name)}`)),
|
|
103
|
+
ts.factory.createPropertySignature([], "WhereUnique", undefined, ts.factory.createTypeReferenceNode(`Prisma.${model.name}WhereUniqueInput`)),
|
|
104
|
+
ts.factory.createPropertySignature([], "Where", undefined, ts.factory.createTypeReferenceNode(`Prisma.${model.name}WhereInput`)),
|
|
105
|
+
ts.factory.createPropertySignature([], "RelationName", undefined, relations.length > 0 ? ts.factory.createUnionTypeNode(relations.map((field) => ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral(field.name)))) : ts.factory.createTypeReferenceNode("never")),
|
|
106
|
+
ts.factory.createPropertySignature([], "ListRelations", undefined, listRelations.length > 0 ? ts.factory.createUnionTypeNode(listRelations.map((field) => ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral(field.name)))) : ts.factory.createTypeReferenceNode("never")),
|
|
107
|
+
ts.factory.createPropertySignature([], "Relations", undefined, ts.factory.createTypeLiteralNode(relations.map((field) => {
|
|
108
|
+
const typeName = field.type;
|
|
109
|
+
return ts.factory.createPropertySignature([], field.name, undefined, ts.factory.createTypeLiteralNode([
|
|
110
|
+
ts.factory.createPropertySignature([], "Shape", undefined, field.isList ? ts.factory.createArrayTypeNode(ts.factory.createTypeReferenceNode(typeName)) : field.isRequired ? ts.factory.createTypeReferenceNode(typeName) : ts.factory.createUnionTypeNode([
|
|
111
|
+
ts.factory.createTypeReferenceNode(typeName),
|
|
112
|
+
ts.factory.createLiteralTypeNode(ts.factory.createNull())
|
|
113
|
+
])),
|
|
114
|
+
ts.factory.createPropertySignature([], "Types", undefined, ts.factory.createIndexedAccessTypeNode(ts.factory.createTypeReferenceNode("PrismaTypes"), ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral(typeName))))
|
|
115
|
+
]));
|
|
116
|
+
})))
|
|
117
|
+
]));
|
|
118
|
+
});
|
|
119
|
+
return ts.factory.createInterfaceDeclaration([], [
|
|
120
|
+
ts.factory.createModifier(SyntaxKind.ExportKeyword),
|
|
121
|
+
ts.factory.createModifier(SyntaxKind.DefaultKeyword)
|
|
122
|
+
], "PrismaTypes", [], [], modelTypes);
|
|
123
|
+
}
|
|
112
124
|
//# sourceMappingURL=generator.js.map
|
package/esm/generator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/generator.ts"],"names":["mkdir","writeFile","dirname","resolve","resolvePath","ts","ListFormat","ScriptKind","ScriptTarget","SyntaxKind","version","generatorHandler","MIN_TS_VERSION","checkTSVersion","versionParts","split","i","part","Number","parseInt","Error","join","defaultOutput","__dirname","onManifest","prettyName","requiresGenerators","onGenerate","options","config","generator","prismaLocation","clientOutput","otherGenerators","find","gen","provider","value","output","importStatement","factory","createImportDeclaration","createImportClause","undefined","createNamedImports","createImportSpecifier","createIdentifier","
|
|
1
|
+
{"version":3,"sources":["../src/generator.ts"],"names":["mkdir","writeFile","dirname","resolve","resolvePath","ts","ListFormat","ScriptKind","ScriptTarget","SyntaxKind","version","generatorHandler","MIN_TS_VERSION","checkTSVersion","versionParts","split","i","part","Number","parseInt","Error","join","defaultOutput","__dirname","onManifest","prettyName","requiresGenerators","onGenerate","options","config","generator","prismaLocation","clientOutput","otherGenerators","find","gen","provider","value","output","outputLocation","prismaTypes","buildTypes","dmmf","generateOutput","replace","importStatement","factory","createImportDeclaration","createImportClause","undefined","createNamedImports","createImportSpecifier","createIdentifier","datamodel","models","map","model","name","createStringLiteral","printer","createPrinter","sourcefile","createSourceFile","ESNext","TS","nodes","createNodeArray","result","printList","SourceFileStatements","Promise","reject","fileName","recursive","err","getOrderByTypeName","type","possibleTypes","orderBy","schema","inputObjectTypes","prisma","inputType","includes","modelTypes","relations","fields","filter","field","relationName","listRelations","isList","createPropertySignature","createTypeLiteralNode","createLiteralTypeNode","createTypeReferenceNode","length","createUnionTypeNode","typeName","createArrayTypeNode","isRequired","createNull","createIndexedAccessTypeNode","createInterfaceDeclaration","createModifier","ExportKeyword","DefaultKeyword"],"mappings":"AAAA,wCAAwC,GACxC,0CAA0C,GAC1C,mCAAmC,GACnC,oCAAoC,GACpC,SAASA,KAAK,EAAEC,SAAS,QAAQ,KAAK;AACtC,SAASC,OAAO,EAAEC,WAAWC,WAAW,QAAQ,OAAO;AACvD,OAAOC,MAAMC,UAAU,EAAEC,UAAU,EAAEC,YAAY,EAAEC,UAAU,EAAEC,OAAO,QAAQ,aAAa;AAC3F,SAAeC,gBAAgB,QAAQ,2BAA2B;AAElE,MAAMC,iBAAiB;IAAC;IAAG;IAAG;CAAE;AAEhC,SAASC,iBAAiB;IACxB,MAAMC,eAAeJ,QAAQK,KAAK,CAAC;IAEnC,IAAK,IAAIC,IAAI,GAAGA,IAAI,GAAGA,KAAK,EAAG;QAC7B,MAAMC,OAAOC,OAAOC,QAAQ,CAACL,YAAY,CAACE,EAAE,EAAE;QAC9C,IAAIC,OAAOL,cAAc,CAACI,EAAE,EAAE;YAC5B,MAAM,IAAII,MACR,CAAC,mDAAmD,EAAER,eAAeS,IAAI,CAAC,KAAK,CAAC,EAChF;QACJ,CAAC;QAED,IAAIJ,OAAOL,cAAc,CAACI,EAAE,EAAE;YAC5B;QACF,CAAC;IACH;AACF;AAEA,MAAMM,gBAAgBlB,YAAYmB,WAAW;AAE7CZ,iBAAiB;IACfa,YAAY,IAAO,CAAA;YACjBC,YAAY;YACZC,oBAAoB;gBAAC;aAAmB;YACxCJ;QACF,CAAA;IACAK,YAAY,OAAOC,UAAY;YAQNA;QAPvBf;QACA,MAAMgB,SAASD,QAAQE,SAAS,CAACD,MAAM;YAErCA;QADF,MAAME,iBACJF,CAAAA,uBAAAA,OAAOG,YAAY,cAAnBH,kCAAAA,uBACAD,QAAQK,eAAe,CAACC,IAAI,CAAC,CAACC,MAAQA,IAAIC,QAAQ,CAACC,KAAK,KAAK,oBAAqBC,MAAM,CACrFD,KAAK;YAEaT;QAAvB,MAAMW,iBAAiBX,CAAAA,kCAAAA,CAAAA,4BAAAA,QAAQE,SAAS,CAACQ,MAAM,cAAxBV,uCAAAA,KAAAA,IAAAA,0BAA0BS,KAAK,cAA/BT,6CAAAA,kCAAmCN,aAAa;QACvE,MAAMkB,cAAcC,WAAWb,QAAQc,IAAI;QAE3C,MAAMC,eAAef,QAAQc,IAAI,EAAEF,aAAaT,gBAAgBQ;QAEhE,IAAIA,mBAAmBjB,eAAe;YACpC,MAAMqB,eACJf,QAAQc,IAAI,EACZF,aACAT,eAAea,OAAO,CAAC,OAAO,WAC9BL,eAAeK,OAAO,CAAC,iBAAiB;QAE5C,CAAC;IACH;AACF;AAEA,eAAeD,eACbD,IAAmB,EACnBF,WAAoC,EACpCT,cAAsB,EACtBQ,cAAsB,EACtB;IACA,MAAMM,kBAAkBxC,GAAGyC,OAAO,CAACC,uBAAuB,CACxD,EAAE,EACF,EAAE,EACF1C,GAAGyC,OAAO,CAACE,kBAAkB,CAC3B,IAAI,EACJC,WACA5C,GAAGyC,OAAO,CAACI,kBAAkB,CAAC;QAC5B7C,GAAGyC,OAAO,CAACK,qBAAqB,CAAC,KAAK,EAAEF,WAAW5C,GAAGyC,OAAO,CAACM,gBAAgB,CAAC;WAC5EV,KAAKW,SAAS,CAACC,MAAM,CAACC,GAAG,CAAC,CAACC,QAC5BnD,GAAGyC,OAAO,CAACK,qBAAqB,CAC9B,KAAK,EACLF,WACA5C,GAAGyC,OAAO,CAACM,gBAAgB,CAACI,MAAMC,IAAI;KAG3C,IAEHpD,GAAGyC,OAAO,CAACY,mBAAmB,CAAC3B;IAGjC,MAAM4B,UAAUtD,GAAGuD,aAAa,CAAC,CAAC;IAElC,MAAMC,aAAaxD,GAAGyD,gBAAgB,CACpCvB,gBACA,IACA/B,aAAauD,MAAM,EACnB,KAAK,EACLxD,WAAWyD,EAAE;IAGf,MAAMC,QAAQ5D,GAAGyC,OAAO,CAACoB,eAAe,CAAC;QAACrB;QAAiBL;KAAY;IAEvE,MAAM2B,SAASR,QAAQS,SAAS,CAAC9D,WAAW+D,oBAAoB,EAAEJ,OAAOJ;IAEzE,MAAM,IAAIS,QAAc,CAACnE,SAASoE,SAAW;QAC3CvE,MAAME,QAAQ2D,WAAWW,QAAQ,GAAG;YAAEC,WAAW,IAAI;QAAC,GAAG,CAACC,MAAQ;YAChE,IAAIA,KAAK;gBACPH,OAAOG;YACT,OAAO;gBACLvE;YACF,CAAC;QACH;IACF;IAEA,OAAO,IAAImE,QAAc,CAACnE,SAASoE,SAAW;QAC5CtE,UAAU4D,WAAWW,QAAQ,EAAE,CAAC,sBAAsB,EAAEL,OAAO,CAAC,EAAE,CAACO,MAAQ;YACzE,IAAIA,KAAK;gBACPH,OAAOG;YACT,OAAO;gBACLvE;YACF,CAAC;QACH;IACF;AACF;AAEA,SAASsC,WAAWC,IAAmB,EAAE;IACvC,SAASiC,mBAAmBC,IAAY,EAAE;YAMxBlC;QALhB,MAAMmC,gBAAgB;YACpB,CAAC,EAAED,KAAK,wBAAwB,CAAC;YACjC,CAAC,EAAEA,KAAK,0CAA0C,CAAC;SACpD;QAED,MAAME,UAAUpC,CAAAA,uCAAAA,KAAKqC,MAAM,CAACC,gBAAgB,CAACC,MAAM,cAAnCvC,kDAAAA,KAAAA,IAAAA,qCAAqCR,KAAK,CAACgD,YACzDL,cAAcM,QAAQ,CAACD,UAAUzB,IAAI;QAGvC,IAAI,CAACqB,SAAS;YACZ,OAAOD,aAAa,CAAC,EAAE;QACzB,CAAC;QAED,OAAOC,QAAQrB,IAAI;IACrB;IAEA,MAAM2B,aAAa1C,KAAKW,SAAS,CAACC,MAAM,CAACC,GAAG,CAAC,CAACC,QAAU;QACtD,MAAM6B,YAAY7B,MAAM8B,MAAM,CAACC,MAAM,CAAC,CAACC,QAAU,CAAC,CAACA,MAAMC,YAAY;QACrE,MAAMC,gBAAgBlC,MAAM8B,MAAM,CAACC,MAAM,CAAC,CAACC,QAAU,CAAC,CAACA,MAAMC,YAAY,IAAID,MAAMG,MAAM;QAEzF,OAAOtF,GAAGyC,OAAO,CAAC8C,uBAAuB,CACvC,EAAE,EACFpC,MAAMC,IAAI,EACVR,WAEA5C,GAAGyC,OAAO,CAAC+C,qBAAqB,CAAC;YAC/BxF,GAAGyC,OAAO,CAAC8C,uBAAuB,CAChC,EAAE,EACF,QACA3C,WACA5C,GAAGyC,OAAO,CAACgD,qBAAqB,CAACzF,GAAGyC,OAAO,CAACY,mBAAmB,CAACF,MAAMC,IAAI;YAE5EpD,GAAGyC,OAAO,CAAC8C,uBAAuB,CAChC,EAAE,EACF,SACA3C,WACA5C,GAAGyC,OAAO,CAACiD,uBAAuB,CAACvC,MAAMC,IAAI;YAE/CpD,GAAGyC,OAAO,CAAC8C,uBAAuB,CAChC,EAAE,EACF,WACA3C,WACAoC,UAAUW,MAAM,GAAG,IACf3F,GAAGyC,OAAO,CAACiD,uBAAuB,CAAC,CAAC,OAAO,EAAEvC,MAAMC,IAAI,CAAC,OAAO,CAAC,IAChEpD,GAAGyC,OAAO,CAACiD,uBAAuB,CAAC,QAAQ;YAEjD1F,GAAGyC,OAAO,CAAC8C,uBAAuB,CAChC,EAAE,EACF,UACA3C,WACA5C,GAAGyC,OAAO,CAACiD,uBAAuB,CAAC,CAAC,OAAO,EAAEvC,MAAMC,IAAI,CAAC,MAAM,CAAC;YAEjEpD,GAAGyC,OAAO,CAAC8C,uBAAuB,CAChC,EAAE,EACF,WACA3C,WACA5C,GAAGyC,OAAO,CAACiD,uBAAuB,CAAC,CAAC,OAAO,EAAEpB,mBAAmBnB,MAAMC,IAAI,EAAE,CAAC;YAE/EpD,GAAGyC,OAAO,CAAC8C,uBAAuB,CAChC,EAAE,EACF,eACA3C,WACA5C,GAAGyC,OAAO,CAACiD,uBAAuB,CAAC,CAAC,OAAO,EAAEvC,MAAMC,IAAI,CAAC,gBAAgB,CAAC;YAE3EpD,GAAGyC,OAAO,CAAC8C,uBAAuB,CAChC,EAAE,EACF,SACA3C,WACA5C,GAAGyC,OAAO,CAACiD,uBAAuB,CAAC,CAAC,OAAO,EAAEvC,MAAMC,IAAI,CAAC,UAAU,CAAC;YAErEpD,GAAGyC,OAAO,CAAC8C,uBAAuB,CAChC,EAAE,EACF,gBACA3C,WACAoC,UAAUW,MAAM,GAAG,IACf3F,GAAGyC,OAAO,CAACmD,mBAAmB,CAC5BZ,UAAU9B,GAAG,CAAC,CAACiC,QACbnF,GAAGyC,OAAO,CAACgD,qBAAqB,CAACzF,GAAGyC,OAAO,CAACY,mBAAmB,CAAC8B,MAAM/B,IAAI,OAG9EpD,GAAGyC,OAAO,CAACiD,uBAAuB,CAAC,QAAQ;YAEjD1F,GAAGyC,OAAO,CAAC8C,uBAAuB,CAChC,EAAE,EACF,iBACA3C,WACAyC,cAAcM,MAAM,GAAG,IACnB3F,GAAGyC,OAAO,CAACmD,mBAAmB,CAC5BP,cAAcnC,GAAG,CAAC,CAACiC,QACjBnF,GAAGyC,OAAO,CAACgD,qBAAqB,CAACzF,GAAGyC,OAAO,CAACY,mBAAmB,CAAC8B,MAAM/B,IAAI,OAG9EpD,GAAGyC,OAAO,CAACiD,uBAAuB,CAAC,QAAQ;YAEjD1F,GAAGyC,OAAO,CAAC8C,uBAAuB,CAChC,EAAE,EACF,aACA3C,WACA5C,GAAGyC,OAAO,CAAC+C,qBAAqB,CAC9BR,UAAU9B,GAAG,CAAC,CAACiC,QAAU;gBACvB,MAAMU,WAAWV,MAAMZ,IAAI;gBAE3B,OAAOvE,GAAGyC,OAAO,CAAC8C,uBAAuB,CACvC,EAAE,EACFJ,MAAM/B,IAAI,EACVR,WACA5C,GAAGyC,OAAO,CAAC+C,qBAAqB,CAAC;oBAC/BxF,GAAGyC,OAAO,CAAC8C,uBAAuB,CAChC,EAAE,EACF,SACA3C,WACAuC,MAAMG,MAAM,GACRtF,GAAGyC,OAAO,CAACqD,mBAAmB,CAAC9F,GAAGyC,OAAO,CAACiD,uBAAuB,CAACG,aAClEV,MAAMY,UAAU,GAChB/F,GAAGyC,OAAO,CAACiD,uBAAuB,CAACG,YACnC7F,GAAGyC,OAAO,CAACmD,mBAAmB,CAAC;wBAC7B5F,GAAGyC,OAAO,CAACiD,uBAAuB,CAACG;wBACnC7F,GAAGyC,OAAO,CAACgD,qBAAqB,CAACzF,GAAGyC,OAAO,CAACuD,UAAU;qBACvD,CAAC;oBAERhG,GAAGyC,OAAO,CAAC8C,uBAAuB,CAChC,EAAE,EACF,SACA3C,WACA5C,GAAGyC,OAAO,CAACwD,2BAA2B,CACpCjG,GAAGyC,OAAO,CAACiD,uBAAuB,CAAC,gBACnC1F,GAAGyC,OAAO,CAACgD,qBAAqB,CAACzF,GAAGyC,OAAO,CAACY,mBAAmB,CAACwC;iBAGrE;YAEL;SAGL;IAEL;IAEA,OAAO7F,GAAGyC,OAAO,CAACyD,0BAA0B,CAC1C,EAAE,EACF;QACElG,GAAGyC,OAAO,CAAC0D,cAAc,CAAC/F,WAAWgG,aAAa;QAClDpG,GAAGyC,OAAO,CAAC0D,cAAc,CAAC/F,WAAWiG,cAAc;KACpD,EACD,eACA,EAAE,EACF,EAAE,EACFtB;AAEJ"}
|
package/esm/index.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export * from './types.js';
|
|
|
11
11
|
declare const pluginName: "prisma";
|
|
12
12
|
export default pluginName;
|
|
13
13
|
export { queryFromInfo };
|
|
14
|
-
export
|
|
14
|
+
export type PrismaObjectFieldBuilder<Types extends SchemaTypes, ParentShape> = PothosSchemaTypes.ObjectFieldBuilder<Types, ParentShape>;
|
|
15
15
|
export declare const ObjectFieldBuilder: new <Types extends SchemaTypes, Model extends PrismaModelTypes, NeedsResolve extends boolean, Shape extends object = Model["Shape"]>(name: string, builder: PothosSchemaTypes.SchemaBuilder<Types>) => PothosSchemaTypes.PrismaObjectFieldBuilder<Types, Model, NeedsResolve, Shape>;
|
|
16
16
|
export declare class PrismaPlugin<Types extends SchemaTypes> extends BasePlugin<Types> {
|
|
17
17
|
constructor(cache: BuildCache<Types>);
|
package/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,CAAC;AACxB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,aAAa,EAAE,EACpB,UAAU,EACV,UAAU,EACV,uBAAuB,EACvB,WAAW,EACZ,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,aAAa,EAA0B,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,cAAc,SAAS,CAAC;AAExB,QAAA,MAAM,UAAU,UAAoB,CAAC;AAErC,eAAe,UAAU,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,CAAC;AACxB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,aAAa,EAAE,EACpB,UAAU,EACV,UAAU,EACV,uBAAuB,EACvB,WAAW,EACZ,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,aAAa,EAA0B,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,cAAc,SAAS,CAAC;AAExB,QAAA,MAAM,UAAU,UAAoB,CAAC;AAErC,eAAe,UAAU,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,MAAM,MAAM,wBAAwB,CAClC,KAAK,SAAS,WAAW,EACzB,WAAW,IACT,iBAAiB,CAAC,kBAAkB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AAE7D,eAAO,MAAM,kBAAkB,6IAMvB,MAAM,mIAEoE,CAAC;AAEnF,qBAAa,YAAY,CAAC,KAAK,SAAS,WAAW,CAAE,SAAQ,UAAU,CAAC,KAAK,CAAC;gBAChE,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC;IAI3B,mBAAmB,CAC1B,WAAW,EAAE,uBAAuB,CAAC,KAAK,CAAC,GAC1C,uBAAuB,CAAC,KAAK,CAAC,GAAG,IAAI;IA4B/B,WAAW,CAClB,QAAQ,EAAE,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAC1E,WAAW,EAAE,uBAAuB,CAAC,KAAK,CAAC,GAC1C,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CA6C3D"}
|
package/esm/index.js
CHANGED
|
@@ -29,14 +29,14 @@ export class PrismaPlugin extends BasePlugin {
|
|
|
29
29
|
return fieldConfig;
|
|
30
30
|
}
|
|
31
31
|
wrapResolve(resolver, fieldConfig) {
|
|
32
|
-
var
|
|
33
|
-
if (fieldConfig.kind !== "PrismaObject" || !((
|
|
32
|
+
var _fieldConfig_extensions, _fieldConfig_extensions1, _parentConfig_extensions, _fieldConfig_extensions2;
|
|
33
|
+
if (fieldConfig.kind !== "PrismaObject" || !((_fieldConfig_extensions = fieldConfig.extensions) === null || _fieldConfig_extensions === void 0 ? void 0 : _fieldConfig_extensions.pothosPrismaSelect)) {
|
|
34
34
|
return resolver;
|
|
35
35
|
}
|
|
36
36
|
const parentConfig = this.buildCache.getTypeConfig(fieldConfig.parentType, "Object");
|
|
37
|
-
const loadedCheck = (
|
|
38
|
-
const loaderCache = (
|
|
39
|
-
const fallback = (
|
|
37
|
+
const loadedCheck = (_fieldConfig_extensions1 = fieldConfig.extensions) === null || _fieldConfig_extensions1 === void 0 ? void 0 : _fieldConfig_extensions1.pothosPrismaLoaded;
|
|
38
|
+
const loaderCache = (_parentConfig_extensions = parentConfig.extensions) === null || _parentConfig_extensions === void 0 ? void 0 : _parentConfig_extensions.pothosPrismaLoader;
|
|
39
|
+
const fallback = (_fieldConfig_extensions2 = fieldConfig.extensions) === null || _fieldConfig_extensions2 === void 0 ? void 0 : _fieldConfig_extensions2.pothosPrismaFallback;
|
|
40
40
|
return (parent, args, context, info) => {
|
|
41
41
|
const mapping = getLoaderMapping(context, info.path, info.parentType.name);
|
|
42
42
|
if ((!loadedCheck || loadedCheck(parent)) && mapping) {
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":["SchemaBuilder","BasePlugin","PrismaObjectFieldBuilder","InternalPrismaObjectFieldBuilder","getLoaderMapping","setLoaderMappings","queryFromInfo","selectionStateFromInfo","prismaConnectionHelpers","PrismaNodeRef","PrismaObjectRef","pluginName","ObjectFieldBuilder","PrismaPlugin","onOutputFieldConfig","fieldConfig","kind","pothosOptions","select","extensions","pothosPrismaSelect","args","ctx","nestedQuery","wrapResolve","resolver","parentConfig","buildCache","getTypeConfig","parentType","loadedCheck","pothosPrismaLoaded","loaderCache","pothosPrismaLoader","fallback","pothosPrismaFallback","parent","context","info","mapping","path","name","selectionState","loadSelection","then","result","mappings","key","constructor","cache","registerPlugin"],"mappings":"AAAA,OAAO,iBAAiB;AACxB,OAAO,mBAAmB;AAE1B,OAAOA,iBACLC,UAAU,QAIL,eAAe;AACtB,SAASC,4BAA4BC,gCAAgC,QAAQ,kBAAkB;AAG/F,SAASC,gBAAgB,EAAEC,iBAAiB,QAAQ,oBAAoB;AACxE,SAASC,aAAa,EAAEC,sBAAsB,QAAQ,mBAAmB;AAEzE,SAASC,uBAAuB,QAAQ,uBAAuB;AAC/D,SAASC,aAAa,QAAQ,aAAa;AAC3C,SAASC,eAAe,QAAQ,eAAe;AAC/C,cAAc,UAAU;AAExB,MAAMC,aAAa;AAEnB,eAAeA,WAAW;AAE1B,SAASL,aAAa,GAAG;AAOzB,OAAO,MAAMM,qBAAqBT,iCAQiD;AAEnF,OAAO,MAAMU,qBAAgDZ;IAKlDa,oBACPC,WAA2C,EACJ;QACvC,IAAIA,YAAYC,IAAI,KAAK,kBAAkBD,YAAYE,aAAa,CAACC,MAAM,EAAE;YAC3E,MAAM,EAAEA,OAAM,EAAE,GAAGH,YAAYE,aAAa;YAC5C,OAAO;gBACL,GAAGF,WAAW;gBACdI,YAAY;oBACV,GAAGJ,YAAYI,UAAU;oBACzBC,oBACE,OAAOF,WAAW,aACd,CACEG,MACAC,KACAC,cACI,CAAA;4BACJL,QAAQ,AAACA,OACPG,MACAC,KACAC;wBAEJ,CAAA,IACAL,MAAM;gBACd;YACF;QACF,CAAC;QAED,OAAOH;IACT;IAESS,YACPC,QAA0E,EAC1EV,WAA2C,EACc;YACbA,
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":["SchemaBuilder","BasePlugin","PrismaObjectFieldBuilder","InternalPrismaObjectFieldBuilder","getLoaderMapping","setLoaderMappings","queryFromInfo","selectionStateFromInfo","prismaConnectionHelpers","PrismaNodeRef","PrismaObjectRef","pluginName","ObjectFieldBuilder","PrismaPlugin","onOutputFieldConfig","fieldConfig","kind","pothosOptions","select","extensions","pothosPrismaSelect","args","ctx","nestedQuery","wrapResolve","resolver","parentConfig","buildCache","getTypeConfig","parentType","loadedCheck","pothosPrismaLoaded","loaderCache","pothosPrismaLoader","fallback","pothosPrismaFallback","parent","context","info","mapping","path","name","selectionState","loadSelection","then","result","mappings","key","constructor","cache","registerPlugin"],"mappings":"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"}
|
package/esm/model-loader.js
CHANGED
|
@@ -31,8 +31,8 @@ export class ModelLoader {
|
|
|
31
31
|
const uniqueField = model.fields.find((field) => field.isRequired && field.isUnique);
|
|
32
32
|
const uniqueIndex = model.uniqueIndexes.find((idx) => {
|
|
33
33
|
return idx.fields.every((field) => {
|
|
34
|
-
var
|
|
35
|
-
return (
|
|
34
|
+
var _model_fields_find;
|
|
35
|
+
return (_model_fields_find = model.fields.find((f) => f.name === field)) === null || _model_fields_find === void 0 ? void 0 : _model_fields_find.isRequired;
|
|
36
36
|
});
|
|
37
37
|
});
|
|
38
38
|
let findBy;
|
|
@@ -78,11 +78,11 @@ export class ModelLoader {
|
|
|
78
78
|
[field.name]: true
|
|
79
79
|
};
|
|
80
80
|
}
|
|
81
|
-
var
|
|
81
|
+
var _idx_name;
|
|
82
82
|
const index = [
|
|
83
83
|
model.primaryKey,
|
|
84
84
|
...model.uniqueIndexes
|
|
85
|
-
].filter(Boolean).find((idx) => ((
|
|
85
|
+
].filter(Boolean).find((idx) => ((_idx_name = idx.name) !== null && _idx_name !== void 0 ? _idx_name : idx.fields.join("_")) === cursor);
|
|
86
86
|
if (!index) {
|
|
87
87
|
throw new Error(`Can't find "${cursor}" field or index for ${ref.name}`);
|
|
88
88
|
}
|
|
@@ -93,16 +93,16 @@ export class ModelLoader {
|
|
|
93
93
|
return selection;
|
|
94
94
|
}
|
|
95
95
|
static getFindUniqueForField(ref, modelName, fieldName, builder) {
|
|
96
|
-
var
|
|
96
|
+
var _model_primaryKey, _model_primaryKey1;
|
|
97
97
|
const model = getModel(modelName, builder);
|
|
98
|
-
var
|
|
99
|
-
const uniqueIndex = model.uniqueIndexes.find((idx) => ((
|
|
98
|
+
var _idx_name;
|
|
99
|
+
const uniqueIndex = model.uniqueIndexes.find((idx) => ((_idx_name = idx.name) !== null && _idx_name !== void 0 ? _idx_name : idx.fields.join("_")) === fieldName);
|
|
100
100
|
let findBy;
|
|
101
|
-
var
|
|
101
|
+
var _model_primaryKey_name;
|
|
102
102
|
if (model.fields.some((field) => field.name === fieldName)) {
|
|
103
103
|
findBy = fieldName;
|
|
104
104
|
}
|
|
105
|
-
else if (model.primaryKey && ((
|
|
105
|
+
else if (model.primaryKey && ((_model_primaryKey_name = (_model_primaryKey = model.primaryKey) === null || _model_primaryKey === void 0 ? void 0 : _model_primaryKey.name) !== null && _model_primaryKey_name !== void 0 ? _model_primaryKey_name : (_model_primaryKey1 = model.primaryKey) === null || _model_primaryKey1 === void 0 ? void 0 : _model_primaryKey1.fields.join("_")) === fieldName) {
|
|
106
106
|
findBy = model.primaryKey;
|
|
107
107
|
}
|
|
108
108
|
else if (uniqueIndex) {
|