@contember/client-content 1.3.0-alpha.9 → 2.0.0-alpha.2
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/dist/development/ContentQueryBuilder.cjs +64 -36
- package/dist/development/ContentQueryBuilder.cjs.map +1 -1
- package/dist/development/ContentQueryBuilder.js +64 -36
- package/dist/development/ContentQueryBuilder.js.map +1 -1
- package/dist/development/index.cjs +2 -0
- package/dist/development/index.cjs.map +1 -1
- package/dist/development/index.js +3 -1
- package/dist/development/index.js.map +1 -1
- package/dist/development/nodes/ContentEntitySelection.cjs +36 -5
- package/dist/development/nodes/ContentEntitySelection.cjs.map +1 -1
- package/dist/development/nodes/ContentEntitySelection.js +36 -5
- package/dist/development/nodes/ContentEntitySelection.js.map +1 -1
- package/dist/development/utils/createTypedArgs.cjs +3 -0
- package/dist/development/utils/createTypedArgs.cjs.map +1 -1
- package/dist/development/utils/createTypedArgs.js +3 -0
- package/dist/development/utils/createTypedArgs.js.map +1 -1
- package/dist/production/ContentQueryBuilder.cjs +64 -36
- package/dist/production/ContentQueryBuilder.cjs.map +1 -1
- package/dist/production/ContentQueryBuilder.js +64 -36
- package/dist/production/ContentQueryBuilder.js.map +1 -1
- package/dist/production/index.cjs +2 -0
- package/dist/production/index.cjs.map +1 -1
- package/dist/production/index.js +3 -1
- package/dist/production/index.js.map +1 -1
- package/dist/production/nodes/ContentEntitySelection.cjs +36 -5
- package/dist/production/nodes/ContentEntitySelection.cjs.map +1 -1
- package/dist/production/nodes/ContentEntitySelection.js +36 -5
- package/dist/production/nodes/ContentEntitySelection.js.map +1 -1
- package/dist/production/utils/createTypedArgs.cjs +3 -0
- package/dist/production/utils/createTypedArgs.cjs.map +1 -1
- package/dist/production/utils/createTypedArgs.js +3 -0
- package/dist/production/utils/createTypedArgs.js.map +1 -1
- package/dist/types/ContentQueryBuilder.d.ts +3 -1
- package/dist/types/ContentQueryBuilder.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/nodes/ContentEntitySelection.d.ts +10 -1
- package/dist/types/nodes/ContentEntitySelection.d.ts.map +1 -1
- package/dist/types/nodes/TypedEntitySelection.d.ts +44 -34
- package/dist/types/nodes/TypedEntitySelection.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/types/types/Input.d.ts +66 -6
- package/dist/types/types/Input.d.ts.map +1 -1
- package/dist/types/types/Schema.d.ts +3 -3
- package/dist/types/types/Schema.d.ts.map +1 -1
- package/dist/types/utils/createTypedArgs.d.ts.map +1 -1
- package/package.json +7 -4
- package/src/ContentQueryBuilder.ts +74 -51
- package/src/index.ts +1 -0
- package/src/nodes/ContentEntitySelection.ts +43 -4
- package/src/nodes/TypedEntitySelection.ts +87 -86
- package/src/types/Input.ts +72 -7
- package/src/types/Schema.ts +3 -3
- package/src/utils/createTypedArgs.ts +3 -0
|
@@ -28,6 +28,10 @@ export type EntitySelectionAnyArgs =
|
|
|
28
28
|
export type ContentEntitySelectionOrCallback = ContentEntitySelectionCallback | ContentEntitySelection
|
|
29
29
|
|
|
30
30
|
|
|
31
|
+
export type ContentTransformContext = {
|
|
32
|
+
rootValue: unknown
|
|
33
|
+
}
|
|
34
|
+
|
|
31
35
|
export class ContentEntitySelection {
|
|
32
36
|
|
|
33
37
|
/**
|
|
@@ -38,6 +42,8 @@ export class ContentEntitySelection {
|
|
|
38
42
|
public readonly context: ContentEntitySelectionContext<string>,
|
|
39
43
|
/** @internal */
|
|
40
44
|
public readonly selectionSet: GraphQlSelectionSet,
|
|
45
|
+
/** @internal */
|
|
46
|
+
public readonly transformFn?: (value: any, ctx: ContentTransformContext) => any,
|
|
41
47
|
) {
|
|
42
48
|
}
|
|
43
49
|
|
|
@@ -93,6 +99,13 @@ export class ContentEntitySelection {
|
|
|
93
99
|
return new ContentEntitySelection(this.context, nodes)
|
|
94
100
|
}
|
|
95
101
|
|
|
102
|
+
|
|
103
|
+
transform(transform: (value: any, context: ContentTransformContext) => any): ContentEntitySelection {
|
|
104
|
+
return new ContentEntitySelection(this.context, this.selectionSet, !this.transformFn ? transform : (value, ctx) => {
|
|
105
|
+
return transform(this.transformFn!(value, ctx), ctx)
|
|
106
|
+
})
|
|
107
|
+
}
|
|
108
|
+
|
|
96
109
|
private _column(
|
|
97
110
|
name: string,
|
|
98
111
|
args: EntitySelectionCommonInput = {},
|
|
@@ -141,7 +154,12 @@ export class ContentEntitySelection {
|
|
|
141
154
|
createListArgs(entity, args),
|
|
142
155
|
entitySelection.selectionSet,
|
|
143
156
|
)
|
|
144
|
-
|
|
157
|
+
const selectionWithField = this.withField(newObjectField)
|
|
158
|
+
const nestedTransform = entitySelection.transformFn
|
|
159
|
+
if (!nestedTransform) {
|
|
160
|
+
return selectionWithField
|
|
161
|
+
}
|
|
162
|
+
return this.withFieldTransform(alias, it => it.map(nestedTransform))
|
|
145
163
|
}
|
|
146
164
|
|
|
147
165
|
|
|
@@ -188,7 +206,12 @@ export class ContentEntitySelection {
|
|
|
188
206
|
argsWithType,
|
|
189
207
|
entitySelection.selectionSet,
|
|
190
208
|
)
|
|
191
|
-
|
|
209
|
+
const selectionWithField = this.withField(newObjectField)
|
|
210
|
+
const nestedTransform = entitySelection.transformFn
|
|
211
|
+
if (!nestedTransform) {
|
|
212
|
+
return selectionWithField
|
|
213
|
+
}
|
|
214
|
+
return this.withFieldTransform(alias, (it, ctx) => it !== null ? nestedTransform(it, ctx) : null)
|
|
192
215
|
}
|
|
193
216
|
|
|
194
217
|
private _one(
|
|
@@ -227,7 +250,12 @@ export class ContentEntitySelection {
|
|
|
227
250
|
argsWithType,
|
|
228
251
|
entitySelection.selectionSet,
|
|
229
252
|
)
|
|
230
|
-
|
|
253
|
+
const selectionWithField = this.withField(newObjectField)
|
|
254
|
+
const nestedTransform = entitySelection.transformFn
|
|
255
|
+
if (!nestedTransform) {
|
|
256
|
+
return selectionWithField
|
|
257
|
+
}
|
|
258
|
+
return this.withFieldTransform(alias, (it, ctx) => it !== null ? nestedTransform(it, ctx) : null)
|
|
231
259
|
}
|
|
232
260
|
|
|
233
261
|
|
|
@@ -235,6 +263,17 @@ export class ContentEntitySelection {
|
|
|
235
263
|
return new ContentEntitySelection(this.context, [
|
|
236
264
|
...this.selectionSet,
|
|
237
265
|
field,
|
|
238
|
-
])
|
|
266
|
+
], this.transformFn)
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
private withFieldTransform(alias: string, transform: (value: any, ctx: ContentTransformContext) => any) {
|
|
270
|
+
return new ContentEntitySelection(this.context, this.selectionSet, (value, ctx) => {
|
|
271
|
+
const transformedValue = transform(value[alias], ctx)
|
|
272
|
+
const newValue = {
|
|
273
|
+
...value,
|
|
274
|
+
[alias]: transformedValue,
|
|
275
|
+
}
|
|
276
|
+
return this.transformFn ? this.transformFn(newValue, ctx) : newValue
|
|
277
|
+
})
|
|
239
278
|
}
|
|
240
279
|
}
|
|
@@ -1,107 +1,108 @@
|
|
|
1
|
-
import { EntityTypeLike, SchemaTypeLike } from '../types
|
|
1
|
+
import { EntityTypeLike, SchemaTypeLike } from '../types'
|
|
2
2
|
import { ContentClientInput } from '../types'
|
|
3
|
+
import { ContentEntitySelectionContext } from './ContentEntitySelection'
|
|
3
4
|
|
|
4
|
-
export type TypedEntitySelectionCallback<
|
|
5
|
-
TSchema extends SchemaTypeLike,
|
|
6
|
-
EntityName extends string,
|
|
7
|
-
TEntity extends EntityTypeLike,
|
|
8
|
-
TValue
|
|
9
|
-
> = (select: TypedEntitySelection<TSchema, EntityName, TEntity, {}>) => TypedEntitySelection<TSchema, EntityName, TEntity, TValue>
|
|
10
5
|
|
|
11
6
|
export interface TypedEntitySelection<TSchema extends SchemaTypeLike, TEntityName extends string, TEntity extends EntityTypeLike, TValue> {
|
|
12
7
|
|
|
8
|
+
/** @internal */
|
|
9
|
+
readonly context: ContentEntitySelectionContext<TEntityName>,
|
|
10
|
+
|
|
13
11
|
$$(): TypedEntitySelection<TSchema, TEntityName, TEntity, TValue & {
|
|
14
12
|
[key in keyof TEntity['columns']]: TEntity['columns'][key]
|
|
15
13
|
}>
|
|
16
14
|
|
|
15
|
+
|
|
16
|
+
transform<T>(cb: (value: TValue) => T): TypedEntitySelection<TSchema, TEntityName, TEntity, T>
|
|
17
|
+
|
|
17
18
|
$<
|
|
18
|
-
|
|
19
|
+
TNestedValue,
|
|
20
|
+
TKey extends (keyof TEntity['columns'] | keyof TEntity['hasMany'] | keyof TEntity['hasManyBy'] | keyof TEntity['hasOne']) & string,
|
|
19
21
|
TAlias extends string | null = null
|
|
20
22
|
>(
|
|
21
23
|
name: TKey,
|
|
22
|
-
args
|
|
24
|
+
...args: TypedEntitySelectionParams<TSchema, TEntity, TKey, TNestedValue, TAlias>
|
|
23
25
|
): TypedEntitySelection<TSchema, TEntityName, TEntity, TValue & {
|
|
24
|
-
[key in TAlias extends null ? TKey : TAlias]: TEntity
|
|
26
|
+
[key in TAlias extends null ? TKey : TAlias]: TypedEntitySelectionResult<TEntity, TKey, TNestedValue>
|
|
25
27
|
}>
|
|
28
|
+
}
|
|
26
29
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
args: ContentClientInput.HasManyRelationInput<TEntity['hasMany'][TNestedKey]> & { as?: TAlias },
|
|
34
|
-
fields:
|
|
35
|
-
| TypedEntitySelectionCallback<TSchema, TEntity['hasMany'][TNestedKey]['name'], TEntity['hasMany'][TNestedKey], TNestedValue>
|
|
36
|
-
| TypedEntitySelection<TSchema, TEntity['hasMany'][TNestedKey]['name'], TEntity['hasMany'][TNestedKey], TNestedValue>,
|
|
37
|
-
): TypedEntitySelection<TSchema, TEntityName, TEntity, TValue & {
|
|
38
|
-
[key in TAlias extends null ? TNestedKey : TAlias]: TNestedValue[]
|
|
39
|
-
}>
|
|
30
|
+
export type TypedEntitySelectionCallback<
|
|
31
|
+
TSchema extends SchemaTypeLike,
|
|
32
|
+
EntityName extends string,
|
|
33
|
+
TEntity extends EntityTypeLike,
|
|
34
|
+
TValue,
|
|
35
|
+
> = (select: TypedEntitySelection<TSchema, EntityName, TEntity, {}>) => TypedEntitySelection<TSchema, EntityName, TEntity, TValue>
|
|
40
36
|
|
|
41
|
-
$<
|
|
42
|
-
TNestedValue,
|
|
43
|
-
TNestedKey extends keyof TEntity['hasMany'] & string,
|
|
44
|
-
TAlias extends string | null = null,
|
|
45
|
-
>(
|
|
46
|
-
name: TNestedKey,
|
|
47
|
-
fields:
|
|
48
|
-
| TypedEntitySelectionCallback<TSchema, TEntity['hasMany'][TNestedKey]['name'], TEntity['hasMany'][TNestedKey], TNestedValue>
|
|
49
|
-
| TypedEntitySelection<TSchema, TEntity['hasMany'][TNestedKey]['name'], TEntity['hasMany'][TNestedKey], TNestedValue>,
|
|
50
|
-
): TypedEntitySelection<TSchema, TEntityName, TEntity, TValue & {
|
|
51
|
-
[key in TAlias extends null ? TNestedKey : TAlias]: TNestedValue[]
|
|
52
|
-
}>
|
|
53
37
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
TAlias extends string | null = null,
|
|
58
|
-
>(
|
|
59
|
-
name: TNestedKey,
|
|
60
|
-
args: ContentClientInput.HasManyByRelationInput<TEntity['hasManyBy'][TNestedKey]['entity'], TEntity['hasManyBy'][TNestedKey]['by']> & { as?: TAlias },
|
|
61
|
-
fields:
|
|
62
|
-
| TypedEntitySelectionCallback<TSchema, TEntity['hasManyBy'][TNestedKey]['entity']['name'], TEntity['hasManyBy'][TNestedKey]['entity'], TNestedValue>
|
|
63
|
-
| TypedEntitySelection<TSchema, TEntity['hasManyBy'][TNestedKey]['entity']['name'], TEntity['hasManyBy'][TNestedKey]['entity'], TNestedValue>,
|
|
64
|
-
): TypedEntitySelection<TSchema, TEntityName, TEntity, TValue & {
|
|
65
|
-
[key in TAlias extends null ? TNestedKey : TAlias]: null | TNestedValue
|
|
66
|
-
}>
|
|
38
|
+
export type TypedHasManyArgs<TEntity extends EntityTypeLike, TKey extends keyof TEntity['hasMany'] & string, TAlias extends string | null = null> =
|
|
39
|
+
& ContentClientInput.HasManyRelationInput<TEntity['hasMany'][TKey]>
|
|
40
|
+
& { as?: TAlias }
|
|
67
41
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
TAlias extends string | null = null,
|
|
72
|
-
>(
|
|
73
|
-
name: TNestedKey,
|
|
74
|
-
fields:
|
|
75
|
-
| TypedEntitySelectionCallback<TSchema, TEntity['hasManyBy'][TNestedKey]['entity']['name'], TEntity['hasManyBy'][TNestedKey]['entity'], TNestedValue>
|
|
76
|
-
| TypedEntitySelection<TSchema, TEntity['hasManyBy'][TNestedKey]['entity']['name'], TEntity['hasManyBy'][TNestedKey]['entity'], TNestedValue>,
|
|
77
|
-
): TypedEntitySelection<TSchema, TEntityName, TEntity, TValue & {
|
|
78
|
-
[key in TAlias extends null ? TNestedKey : TAlias]: null | TNestedValue
|
|
79
|
-
}>
|
|
42
|
+
export type TypedHasManyFields<TSchema extends SchemaTypeLike, TEntity extends EntityTypeLike, TKey extends keyof TEntity['hasMany'] & string, TNestedValue> =
|
|
43
|
+
| TypedEntitySelectionCallback<TSchema, TEntity['hasMany'][TKey]['name'], TEntity['hasMany'][TKey], TNestedValue>
|
|
44
|
+
| TypedEntitySelection<TSchema, TEntity['hasMany'][TKey]['name'], TEntity['hasMany'][TKey], TNestedValue>
|
|
80
45
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
| TypedEntitySelectionCallback<TSchema, TEntity['hasOne'][TNestedKey]['name'], TEntity['hasOne'][TNestedKey], TNestedValue>
|
|
90
|
-
| TypedEntitySelection<TSchema, TEntity['hasOne'][TNestedKey]['name'], TEntity['hasOne'][TNestedKey], TNestedValue>,
|
|
91
|
-
): TypedEntitySelection<TSchema, TEntityName, TEntity, TValue & {
|
|
92
|
-
[key in TAlias extends null ? TNestedKey : TAlias]: TNestedValue | null
|
|
93
|
-
}>
|
|
46
|
+
export type TypedHasManyParams<TSchema extends SchemaTypeLike, TEntity extends EntityTypeLike, TKey extends keyof TEntity['hasMany'] & string, TNestedValue, TAlias extends string | null = null> =
|
|
47
|
+
| [
|
|
48
|
+
args: TypedHasManyArgs<TEntity, TKey, TAlias>,
|
|
49
|
+
fields: TypedHasManyFields<TSchema, TEntity, TKey, TNestedValue>,
|
|
50
|
+
]
|
|
51
|
+
| [
|
|
52
|
+
fields: TypedHasManyFields<TSchema, TEntity, TKey, TNestedValue>,
|
|
53
|
+
]
|
|
94
54
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
55
|
+
|
|
56
|
+
export type TypedHasManyByArgs<TEntity extends EntityTypeLike, TKey extends keyof TEntity['hasManyBy'] & string, TAlias extends string | null = null> =
|
|
57
|
+
& ContentClientInput.HasManyByRelationInput<TEntity['hasManyBy'][TKey]['entity'], TEntity['hasManyBy'][TKey]['by']>
|
|
58
|
+
& { as?: TAlias }
|
|
59
|
+
|
|
60
|
+
export type TypedHasManyByFields<TSchema extends SchemaTypeLike, TEntity extends EntityTypeLike, TKey extends keyof TEntity['hasManyBy'] & string, TNestedValue> =
|
|
61
|
+
| TypedEntitySelectionCallback<TSchema, TEntity['hasManyBy'][TKey]['entity']['name'], TEntity['hasManyBy'][TKey]['entity'], TNestedValue>
|
|
62
|
+
| TypedEntitySelection<TSchema, TEntity['hasManyBy'][TKey]['entity']['name'], TEntity['hasManyBy'][TKey]['entity'], TNestedValue>
|
|
63
|
+
|
|
64
|
+
export type TypedHasManyByParams<TSchema extends SchemaTypeLike, TEntity extends EntityTypeLike, TKey extends keyof TEntity['hasManyBy'] & string, TNestedValue, TAlias extends string | null = null> =
|
|
65
|
+
| [
|
|
66
|
+
args: TypedHasManyByArgs<TEntity, TKey, TAlias>,
|
|
67
|
+
fields: TypedHasManyByFields<TSchema, TEntity, TKey, TNestedValue>
|
|
68
|
+
]
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
export type TypedHasOneArgs<TEntity extends EntityTypeLike, TKey extends keyof TEntity['hasOne'] & string, TAlias extends string | null = null> =
|
|
72
|
+
& ContentClientInput.HasOneRelationInput<TEntity['hasOne'][TKey]>
|
|
73
|
+
& { as?: TAlias }
|
|
74
|
+
|
|
75
|
+
export type TypedHasOneFields<TSchema extends SchemaTypeLike, TEntity extends EntityTypeLike, TKey extends keyof TEntity['hasOne'] & string, TNestedValue> =
|
|
76
|
+
| TypedEntitySelectionCallback<TSchema, TEntity['hasOne'][TKey]['name'], TEntity['hasOne'][TKey], TNestedValue>
|
|
77
|
+
| TypedEntitySelection<TSchema, TEntity['hasOne'][TKey]['name'], TEntity['hasOne'][TKey], TNestedValue>
|
|
78
|
+
|
|
79
|
+
export type TypedHasOneParams<TSchema extends SchemaTypeLike, TEntity extends EntityTypeLike, TKey extends keyof TEntity['hasOne'] & string, TNestedValue, TAlias extends string | null = null> =
|
|
80
|
+
| [
|
|
81
|
+
args: TypedHasOneArgs<TEntity, TKey, TAlias>,
|
|
82
|
+
fields: TypedHasOneFields<TSchema, TEntity, TKey, TNestedValue>
|
|
83
|
+
]
|
|
84
|
+
| [
|
|
85
|
+
fields: TypedHasOneFields<TSchema, TEntity, TKey, TNestedValue>
|
|
86
|
+
]
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
export type TypedColumnArgs<TAlias extends string | null = null> = { as?: TAlias }
|
|
90
|
+
export type TypedColumnParams<TAlias extends string | null = null> =
|
|
91
|
+
| [
|
|
92
|
+
args: TypedColumnArgs<TAlias>
|
|
93
|
+
]
|
|
94
|
+
| []
|
|
95
|
+
|
|
96
|
+
export type TypedEntitySelectionParams<TSchema extends SchemaTypeLike, TEntity extends EntityTypeLike, TKey extends string, TNestedValue, TAlias extends string | null = null> =
|
|
97
|
+
TKey extends keyof TEntity['columns'] ? TypedColumnParams<TAlias>
|
|
98
|
+
: TKey extends keyof TEntity['hasMany'] ? TypedHasManyParams<TSchema, TEntity, TKey, TNestedValue, TAlias>
|
|
99
|
+
: TKey extends keyof TEntity['hasManyBy'] ? TypedHasManyByParams<TSchema, TEntity, TKey, TNestedValue, TAlias>
|
|
100
|
+
: TKey extends keyof TEntity['hasOne'] ? TypedHasOneParams<TSchema, TEntity, TKey, TNestedValue, TAlias>
|
|
101
|
+
: never
|
|
102
|
+
|
|
103
|
+
export type TypedEntitySelectionResult<TEntity extends EntityTypeLike, TKey extends string, TValue> =
|
|
104
|
+
TKey extends keyof TEntity['columns'] ? TEntity['columns'][TKey]
|
|
105
|
+
: TKey extends keyof TEntity['hasMany'] ? TValue[]
|
|
106
|
+
: TKey extends keyof TEntity['hasManyBy'] ? null | TValue
|
|
107
|
+
: TKey extends keyof TEntity['hasOne'] ? null | TValue
|
|
108
|
+
: never
|
package/src/types/Input.ts
CHANGED
|
@@ -4,31 +4,45 @@ import { EntityTypeLike } from './Schema'
|
|
|
4
4
|
|
|
5
5
|
export namespace ContentClientInput {
|
|
6
6
|
export type ConnectRelationInput<TEntity extends EntityTypeLike> = {
|
|
7
|
+
/** @internal */
|
|
8
|
+
readonly __typeGuard?: TEntity['name']
|
|
7
9
|
readonly connect: UniqueWhere<TEntity>
|
|
8
10
|
}
|
|
9
11
|
|
|
10
12
|
export type CreateRelationInput<TEntity extends EntityTypeLike> = {
|
|
13
|
+
/** @internal */
|
|
14
|
+
readonly __typeGuard?: TEntity['name']
|
|
11
15
|
readonly create: CreateDataInput<TEntity>
|
|
12
16
|
}
|
|
13
17
|
|
|
14
18
|
export type ConnectOrCreateInput<TEntity extends EntityTypeLike> = {
|
|
19
|
+
/** @internal */
|
|
20
|
+
readonly __typeGuard?: TEntity['name']
|
|
15
21
|
readonly connect: UniqueWhere<TEntity>
|
|
16
22
|
readonly create: CreateDataInput<TEntity>
|
|
17
23
|
}
|
|
18
24
|
|
|
19
25
|
export type ConnectOrCreateRelationInput<TEntity extends EntityTypeLike> = {
|
|
26
|
+
/** @internal */
|
|
27
|
+
readonly __typeGuard?: TEntity['name']
|
|
20
28
|
readonly connectOrCreate: ConnectOrCreateInput<TEntity>
|
|
21
29
|
}
|
|
22
30
|
|
|
23
31
|
export type DisconnectSpecifiedRelationInput<TEntity extends EntityTypeLike> = {
|
|
32
|
+
/** @internal */
|
|
33
|
+
readonly __typeGuard?: TEntity['name']
|
|
24
34
|
readonly disconnect: UniqueWhere<TEntity>
|
|
25
35
|
}
|
|
26
36
|
|
|
27
37
|
export type DeleteSpecifiedRelationInput<TEntity extends EntityTypeLike> = {
|
|
38
|
+
/** @internal */
|
|
39
|
+
readonly __typeGuard?: TEntity['name']
|
|
28
40
|
readonly delete: UniqueWhere<TEntity>
|
|
29
41
|
}
|
|
30
42
|
|
|
31
43
|
export type UpdateSpecifiedRelationInput<TEntity extends EntityTypeLike> = {
|
|
44
|
+
/** @internal */
|
|
45
|
+
readonly __typeGuard?: TEntity['name']
|
|
32
46
|
readonly update: {
|
|
33
47
|
readonly by: UniqueWhere<TEntity>
|
|
34
48
|
readonly data: UpdateDataInput<TEntity>
|
|
@@ -36,6 +50,8 @@ export namespace ContentClientInput {
|
|
|
36
50
|
}
|
|
37
51
|
|
|
38
52
|
export type UpsertSpecifiedRelationInput<TEntity extends EntityTypeLike> = {
|
|
53
|
+
/** @internal */
|
|
54
|
+
readonly __typeGuard?: TEntity['name']
|
|
39
55
|
readonly upsert: {
|
|
40
56
|
readonly by: UniqueWhere<TEntity>
|
|
41
57
|
readonly update: UpdateDataInput<TEntity>
|
|
@@ -43,19 +59,27 @@ export namespace ContentClientInput {
|
|
|
43
59
|
}
|
|
44
60
|
}
|
|
45
61
|
|
|
46
|
-
export type DisconnectRelationInput = {
|
|
62
|
+
export type DisconnectRelationInput<TEntity extends EntityTypeLike> = {
|
|
63
|
+
/** @internal */
|
|
64
|
+
readonly __typeGuard?: TEntity['name']
|
|
47
65
|
readonly disconnect: true
|
|
48
66
|
}
|
|
49
67
|
|
|
50
68
|
export type UpdateRelationInput<TEntity extends EntityTypeLike> = {
|
|
69
|
+
/** @internal */
|
|
70
|
+
readonly __typeGuard?: TEntity['name']
|
|
51
71
|
readonly update: UpdateDataInput<TEntity>
|
|
52
72
|
}
|
|
53
73
|
|
|
54
|
-
export type DeleteRelationInput = {
|
|
74
|
+
export type DeleteRelationInput<TEntity extends EntityTypeLike> = {
|
|
75
|
+
/** @internal */
|
|
76
|
+
readonly __typeGuard?: TEntity['name']
|
|
55
77
|
readonly delete: true
|
|
56
78
|
}
|
|
57
79
|
|
|
58
80
|
export type UpsertRelationInput<TEntity extends EntityTypeLike> = {
|
|
81
|
+
/** @internal */
|
|
82
|
+
readonly __typeGuard?: TEntity['name']
|
|
59
83
|
readonly upsert: {
|
|
60
84
|
readonly update: UpdateDataInput<TEntity>
|
|
61
85
|
readonly create: CreateDataInput<TEntity>
|
|
@@ -63,6 +87,10 @@ export namespace ContentClientInput {
|
|
|
63
87
|
}
|
|
64
88
|
|
|
65
89
|
export type CreateDataInput<TEntity extends EntityTypeLike> =
|
|
90
|
+
& {
|
|
91
|
+
/** @internal */
|
|
92
|
+
readonly __typeGuard?: TEntity['name']
|
|
93
|
+
}
|
|
66
94
|
& {
|
|
67
95
|
readonly [key in keyof TEntity['columns']]?: TEntity['columns'][key]
|
|
68
96
|
}
|
|
@@ -80,7 +108,14 @@ export namespace ContentClientInput {
|
|
|
80
108
|
|
|
81
109
|
export type CreateManyRelationInput<TEntity extends EntityTypeLike> = readonly CreateOneRelationInput<TEntity>[]
|
|
82
110
|
|
|
111
|
+
|
|
83
112
|
export type UpdateDataInput<TEntity extends EntityTypeLike> =
|
|
113
|
+
& {
|
|
114
|
+
/**
|
|
115
|
+
* @internal
|
|
116
|
+
*/
|
|
117
|
+
readonly __typeGuard?: TEntity['name']
|
|
118
|
+
}
|
|
84
119
|
& {
|
|
85
120
|
readonly [key in keyof TEntity['columns']]?: TEntity['columns'][key]
|
|
86
121
|
}
|
|
@@ -92,12 +127,16 @@ export namespace ContentClientInput {
|
|
|
92
127
|
}
|
|
93
128
|
|
|
94
129
|
export type UpdateInput<TEntity extends EntityTypeLike> = {
|
|
130
|
+
/** @internal */
|
|
131
|
+
readonly __typeGuard?: TEntity['name']
|
|
95
132
|
readonly by: UniqueWhere<TEntity>
|
|
96
133
|
readonly filter?: Where<TEntity>
|
|
97
134
|
readonly data: UpdateDataInput<TEntity>
|
|
98
135
|
}
|
|
99
136
|
|
|
100
137
|
export type UpsertInput<TEntity extends EntityTypeLike> = {
|
|
138
|
+
/** @internal */
|
|
139
|
+
readonly __typeGuard?: TEntity['name']
|
|
101
140
|
readonly by: UniqueWhere<TEntity>
|
|
102
141
|
readonly filter?: Where<TEntity>
|
|
103
142
|
readonly update: UpdateDataInput<TEntity>
|
|
@@ -105,20 +144,28 @@ export namespace ContentClientInput {
|
|
|
105
144
|
}
|
|
106
145
|
|
|
107
146
|
export type CreateInput<TEntity extends EntityTypeLike> = {
|
|
147
|
+
/** @internal */
|
|
148
|
+
readonly __typeGuard?: TEntity['name']
|
|
108
149
|
readonly data: CreateDataInput<TEntity>
|
|
109
150
|
}
|
|
110
151
|
|
|
111
152
|
export type DeleteInput<TEntity extends EntityTypeLike> = {
|
|
153
|
+
/** @internal */
|
|
154
|
+
readonly __typeGuard?: TEntity['name']
|
|
112
155
|
readonly by: UniqueWhere<TEntity>
|
|
113
156
|
readonly filter?: Where<TEntity>
|
|
114
157
|
}
|
|
115
158
|
|
|
116
159
|
export type UniqueQueryInput<TEntity extends EntityTypeLike> = {
|
|
160
|
+
/** @internal */
|
|
161
|
+
readonly __typeGuard?: TEntity['name']
|
|
117
162
|
readonly by: UniqueWhere<TEntity>
|
|
118
163
|
readonly filter?: Where<TEntity>
|
|
119
164
|
}
|
|
120
165
|
|
|
121
166
|
export type ListQueryInput<TEntity extends EntityTypeLike> = {
|
|
167
|
+
/** @internal */
|
|
168
|
+
readonly __typeGuard?: TEntity['name']
|
|
122
169
|
readonly filter?: Where<TEntity>
|
|
123
170
|
readonly orderBy?: readonly OrderBy<TEntity>[]
|
|
124
171
|
readonly offset?: number
|
|
@@ -126,6 +173,8 @@ export namespace ContentClientInput {
|
|
|
126
173
|
}
|
|
127
174
|
|
|
128
175
|
export type PaginationQueryInput<TEntity extends EntityTypeLike> = {
|
|
176
|
+
/** @internal */
|
|
177
|
+
readonly __typeGuard?: TEntity['name']
|
|
129
178
|
readonly filter?: Where<TEntity>
|
|
130
179
|
readonly orderBy?: readonly OrderBy<TEntity>[]
|
|
131
180
|
readonly skip?: number
|
|
@@ -133,10 +182,14 @@ export namespace ContentClientInput {
|
|
|
133
182
|
}
|
|
134
183
|
|
|
135
184
|
export type HasOneRelationInput<TEntity extends EntityTypeLike> = {
|
|
185
|
+
/** @internal */
|
|
186
|
+
readonly __typeGuard?: TEntity['name']
|
|
136
187
|
readonly filter?: Where<TEntity>
|
|
137
188
|
}
|
|
138
189
|
|
|
139
190
|
export type HasManyByRelationInput<TEntity extends EntityTypeLike, TUnique extends JSONObject> = {
|
|
191
|
+
/** @internal */
|
|
192
|
+
readonly __typeGuard?: TEntity['name']
|
|
140
193
|
readonly by: TUnique
|
|
141
194
|
readonly filter?: Where<TEntity>
|
|
142
195
|
}
|
|
@@ -149,8 +202,8 @@ export namespace ContentClientInput {
|
|
|
149
202
|
| CreateRelationInput<TEntity>
|
|
150
203
|
| ConnectRelationInput<TEntity>
|
|
151
204
|
| ConnectOrCreateRelationInput<TEntity>
|
|
152
|
-
| DeleteRelationInput
|
|
153
|
-
| DisconnectRelationInput
|
|
205
|
+
| DeleteRelationInput<TEntity>
|
|
206
|
+
| DisconnectRelationInput<TEntity>
|
|
154
207
|
| UpdateRelationInput<TEntity>
|
|
155
208
|
| UpsertRelationInput<TEntity>
|
|
156
209
|
|
|
@@ -169,10 +222,11 @@ export namespace ContentClientInput {
|
|
|
169
222
|
|
|
170
223
|
export type FieldOrderBy<TEntity extends EntityTypeLike> =
|
|
171
224
|
& {
|
|
172
|
-
|
|
225
|
+
/** @internal */
|
|
226
|
+
readonly __typeGuard?: TEntity['name']
|
|
173
227
|
}
|
|
174
228
|
& {
|
|
175
|
-
readonly [key in keyof TEntity['
|
|
229
|
+
readonly [key in keyof TEntity['columns']]?: `${Input.OrderDirection}` | null
|
|
176
230
|
}
|
|
177
231
|
& {
|
|
178
232
|
readonly [key in keyof TEntity['hasOne']]?: FieldOrderBy<TEntity['hasOne'][key]> | null
|
|
@@ -180,17 +234,28 @@ export namespace ContentClientInput {
|
|
|
180
234
|
|
|
181
235
|
export type OrderBy<TEntity extends EntityTypeLike> =
|
|
182
236
|
& {
|
|
237
|
+
/** @internal */
|
|
238
|
+
readonly __typeGuard?: TEntity['name']
|
|
183
239
|
readonly _random?: boolean
|
|
184
240
|
readonly _randomSeeded?: number
|
|
185
241
|
}
|
|
186
242
|
& FieldOrderBy<TEntity>
|
|
187
243
|
|
|
188
244
|
|
|
189
|
-
export type UniqueWhere<TEntity extends EntityTypeLike> =
|
|
245
|
+
export type UniqueWhere<TEntity extends EntityTypeLike> =
|
|
246
|
+
& {
|
|
247
|
+
/**
|
|
248
|
+
* @internal
|
|
249
|
+
*/
|
|
250
|
+
readonly __typeGuard?: TEntity['name']
|
|
251
|
+
}
|
|
252
|
+
& TEntity['unique']
|
|
190
253
|
|
|
191
254
|
|
|
192
255
|
export type Where<TEntity extends EntityTypeLike> =
|
|
193
256
|
& {
|
|
257
|
+
/** @internal */
|
|
258
|
+
readonly __typeGuard?: TEntity['name']
|
|
194
259
|
readonly and?: (readonly (Where<TEntity>)[]) | null
|
|
195
260
|
readonly or?: (readonly (Where<TEntity>)[]) | null
|
|
196
261
|
readonly not?: Where<TEntity> | null
|
package/src/types/Schema.ts
CHANGED
|
@@ -28,14 +28,14 @@ export type EntityTypeLike = {
|
|
|
28
28
|
[columnName: string]: any
|
|
29
29
|
}
|
|
30
30
|
hasOne: {
|
|
31
|
-
[relationName: string]:
|
|
31
|
+
[relationName: string]: any
|
|
32
32
|
}
|
|
33
33
|
hasMany: {
|
|
34
|
-
[relationName: string]:
|
|
34
|
+
[relationName: string]: any
|
|
35
35
|
}
|
|
36
36
|
hasManyBy: {
|
|
37
37
|
[relationName: string]: {
|
|
38
|
-
entity:
|
|
38
|
+
entity: any
|
|
39
39
|
by: JSONObject
|
|
40
40
|
}
|
|
41
41
|
}
|
|
@@ -6,6 +6,9 @@ export const createTypedArgs = <TArgs extends Record<string, any>>(
|
|
|
6
6
|
): GraphQlFieldTypedArgs => {
|
|
7
7
|
const typedArgs: GraphQlFieldTypedArgs = {}
|
|
8
8
|
for (const key in args) {
|
|
9
|
+
if (!types.hasOwnProperty(key)) {
|
|
10
|
+
throw new Error(`Unknown argument ${key}`)
|
|
11
|
+
}
|
|
9
12
|
typedArgs[key] = {
|
|
10
13
|
graphQlType: types[key],
|
|
11
14
|
value: args[key],
|