@pothos/plugin-prisma 3.42.0 → 3.44.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 +15 -0
- package/dts/connection-helpers.d.ts +1 -1
- package/dts/connection-helpers.d.ts.map +1 -1
- package/dts/global-types.d.ts +4 -4
- package/dts/global-types.d.ts.map +1 -1
- package/dts/prisma-field-builder.d.ts +7 -7
- package/dts/prisma-field-builder.d.ts.map +1 -1
- package/dts/types.d.ts +8 -7
- package/dts/types.d.ts.map +1 -1
- package/dts/util/datamodel.d.ts +2 -2
- package/dts/util/datamodel.d.ts.map +1 -1
- package/esm/connection-helpers.d.ts +1 -1
- package/esm/connection-helpers.d.ts.map +1 -1
- package/esm/generator.js +8 -5
- package/esm/generator.js.map +1 -1
- package/esm/global-types.d.ts +4 -4
- package/esm/global-types.d.ts.map +1 -1
- package/esm/global-types.js.map +1 -1
- package/esm/model-loader.js +19 -1
- package/esm/model-loader.js.map +1 -1
- package/esm/object-ref.js +18 -0
- package/esm/object-ref.js.map +1 -1
- package/esm/prisma-field-builder.d.ts +7 -7
- package/esm/prisma-field-builder.d.ts.map +1 -1
- package/esm/prisma-field-builder.js +35 -19
- package/esm/prisma-field-builder.js.map +1 -1
- package/esm/schema-builder.js +4 -4
- package/esm/schema-builder.js.map +1 -1
- package/esm/types.d.ts +8 -7
- package/esm/types.d.ts.map +1 -1
- package/esm/util/datamodel.d.ts +2 -2
- package/esm/util/datamodel.d.ts.map +1 -1
- package/lib/generator.js +8 -5
- package/lib/generator.js.map +1 -1
- package/lib/model-loader.js +18 -1
- package/lib/model-loader.js.map +1 -1
- package/lib/object-ref.js +17 -0
- package/lib/object-ref.js.map +1 -1
- package/lib/prisma-field-builder.js +33 -18
- package/lib/prisma-field-builder.js.map +1 -1
- package/lib/schema-builder.js +4 -4
- package/lib/schema-builder.js.map +1 -1
- package/package.json +7 -7
- package/src/connection-helpers.ts +1 -1
- package/src/generator.ts +8 -10
- package/src/global-types.ts +7 -2
- package/src/prisma-field-builder.ts +2 -1
- package/src/schema-builder.ts +6 -9
- package/src/types.ts +29 -9
package/src/types.ts
CHANGED
|
@@ -49,7 +49,8 @@ export interface PrismaModelTypes {
|
|
|
49
49
|
string,
|
|
50
50
|
{
|
|
51
51
|
Shape: unknown;
|
|
52
|
-
|
|
52
|
+
Name: string;
|
|
53
|
+
// Types: PrismaModelTypes;
|
|
53
54
|
}
|
|
54
55
|
>;
|
|
55
56
|
}
|
|
@@ -78,6 +79,7 @@ export type PrismaObjectFieldOptions<
|
|
|
78
79
|
? ParentShape
|
|
79
80
|
: ParentShape &
|
|
80
81
|
ShapeFromSelection<
|
|
82
|
+
Types,
|
|
81
83
|
ExtractModel<Types, ParentShape>,
|
|
82
84
|
{ select: Select extends (...args: any[]) => infer S ? S : Select }
|
|
83
85
|
>,
|
|
@@ -123,12 +125,16 @@ interface BaseSelection {
|
|
|
123
125
|
|
|
124
126
|
export type SelectedKeys<T> = { [K in keyof T]: T[K] extends false ? never : K }[keyof T];
|
|
125
127
|
|
|
126
|
-
export type ShapeFromSelection<
|
|
128
|
+
export type ShapeFromSelection<
|
|
129
|
+
Types extends SchemaTypes,
|
|
130
|
+
Model extends PrismaModelTypes,
|
|
131
|
+
Selection,
|
|
132
|
+
> = Normalize<
|
|
127
133
|
Selection extends BaseSelection
|
|
128
134
|
? unknown extends Selection['select']
|
|
129
|
-
? Model['Shape'] & RelationShapeFromInclude<Model, Selection['include']>
|
|
135
|
+
? Model['Shape'] & RelationShapeFromInclude<Types, Model, Selection['include']>
|
|
130
136
|
: Pick<Model['Shape'], SelectedKeys<Selection['select']>> &
|
|
131
|
-
RelationShapeFromInclude<Model, Selection['select']> &
|
|
137
|
+
RelationShapeFromInclude<Types, Model, Selection['select']> &
|
|
132
138
|
('_count' extends keyof Selection['select']
|
|
133
139
|
? ShapeFromCount<Selection['select']['_count']>
|
|
134
140
|
: {})
|
|
@@ -141,13 +147,27 @@ export type ShapeFromCount<Selection> = Selection extends true
|
|
|
141
147
|
? { _count: { [K in keyof Counts]: number } }
|
|
142
148
|
: never;
|
|
143
149
|
|
|
144
|
-
type
|
|
150
|
+
export type TypesForRelation<
|
|
151
|
+
Types extends SchemaTypes,
|
|
152
|
+
Model extends PrismaModelTypes,
|
|
153
|
+
Relation extends keyof Model['Relations'],
|
|
154
|
+
> = Model['Relations'][Relation]['Name'] extends infer Name
|
|
155
|
+
? Name extends keyof Types['PrismaTypes']
|
|
156
|
+
? Types['PrismaTypes'][Name] & PrismaModelTypes
|
|
157
|
+
: never
|
|
158
|
+
: never;
|
|
159
|
+
|
|
160
|
+
type RelationShapeFromInclude<
|
|
161
|
+
Types extends SchemaTypes,
|
|
162
|
+
Model extends PrismaModelTypes,
|
|
163
|
+
Include,
|
|
164
|
+
> = Normalize<{
|
|
145
165
|
[K in SelectedKeys<Include> as K extends Model['RelationName']
|
|
146
166
|
? K
|
|
147
167
|
: never]: K extends keyof Model['Relations']
|
|
148
168
|
? Model['Relations'][K]['Shape'] extends unknown[]
|
|
149
|
-
? ShapeFromSelection<
|
|
150
|
-
: ShapeFromSelection<
|
|
169
|
+
? ShapeFromSelection<Types, TypesForRelation<Types, Model, K>, Include[K]>[]
|
|
170
|
+
: ShapeFromSelection<Types, TypesForRelation<Types, Model, K>, Include[K]>
|
|
151
171
|
: unknown;
|
|
152
172
|
}>;
|
|
153
173
|
|
|
@@ -372,7 +392,7 @@ export type RelatedFieldOptions<
|
|
|
372
392
|
>;
|
|
373
393
|
}) & {
|
|
374
394
|
description?: string | false;
|
|
375
|
-
type?: PrismaObjectRef<Model
|
|
395
|
+
type?: PrismaObjectRef<TypesForRelation<Types, Model, Field>>;
|
|
376
396
|
query?: QueryForField<Types, Args, Model['Include'][Field & keyof Model['Include']]>;
|
|
377
397
|
};
|
|
378
398
|
|
|
@@ -643,7 +663,7 @@ export type RelatedConnectionOptions<
|
|
|
643
663
|
? {
|
|
644
664
|
description?: string | false;
|
|
645
665
|
query?: QueryForField<Types, Args, Model['Include'][Field & keyof Model['Include']]>;
|
|
646
|
-
type?: PrismaObjectRef<Model
|
|
666
|
+
type?: PrismaObjectRef<TypesForRelation<Types, Model, Field>>;
|
|
647
667
|
cursor: CursorFromRelation<Model, Field>;
|
|
648
668
|
defaultSize?: number | ((args: ConnectionArgs, ctx: Types['Context']) => number);
|
|
649
669
|
maxSize?: number | ((args: ConnectionArgs, ctx: Types['Context']) => number);
|