Skip to content

Commit 1c183af

Browse files
authored
feat(extension/schema-errors): introduce' (#1189)
1 parent 17dd0b4 commit 1c183af

File tree

71 files changed

+1293
-1295
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+1293
-1295
lines changed

src/entrypoints/utilities-for-generated.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,11 @@ export * from '../layers/2_Select/__.js'
33
export { type SchemaIndex as SchemaIndexBase } from '../layers/4_generator/generators/SchemaIndex.js'
44
export type {
55
ConfigGetOutputError,
6-
ResolveOutputReturnRootField,
7-
ResolveOutputReturnRootType,
6+
HandleOutput,
7+
HandleOutputGraffleRootField,
88
} from '../layers/6_client/handleOutput.js'
99
export { type DocumentRunner } from '../layers/6_client/requestMethods/document.js'
1010
export type { Config } from '../layers/6_client/Settings/Config.js'
11-
export { type AddTypenameToSelectedRootTypeResultFields } from '../layers/6_client/Settings/Config.js'
1211
export { type SchemaDrivenDataMap } from '../layers/7_extensions/CustomScalars/schemaDrivenDataMap/types.js'
13-
export { HKT } from '../lib/hkt/__.js'
1412
export { type Exact, type ExactNonEmpty, type UnionExpanded } from '../lib/prelude.js'
13+
export { TypeFunction } from '../lib/type-function/__.js'

src/layers/1_Schema/Output/Output.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { TSError } from '../../../lib/TSError.js'
1+
import type { TSErrorDescriptive } from '../../../lib/TSError.js'
22
import { readMaybeThunk } from '../core/helpers.js'
33
import type { Any, Named } from './typeGroups.js'
44
import type { __typename } from './types/__typename.js'
@@ -20,7 +20,7 @@ export type Unwrap<$Type extends any> =
2020
$Type extends Nullable<infer $innerType> ? Unwrap<$innerType> :
2121
$Type extends __typename ? $Type['type'] :
2222
$Type extends Named ? $Type :
23-
TSError<'Unwrap', 'Unknown $Type', { $Type: $Type }>
23+
TSErrorDescriptive<'Unwrap', 'Unknown $Type', { $Type: $Type }>
2424

2525
// dprint-ignore
2626
export type UnwrapNullable<$Type> =

src/layers/2_Select/document.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,9 @@ export type GetRootTypeNameOfOperation<$Document extends SomeDocument, $Name ext
4242
export type GetOperation<$Document extends SomeDocument, $Name extends string> =
4343
FirstNonUnknownNever<[
4444
// @ts-expect-error could be unknown
45-
$Document[OperationType.Mutation][$Name],
45+
$Document[OperationTypeNode.MUTATION][$Name],
4646
// @ts-expect-error could be unknown
47-
$Document[OperationType.Query][$Name]
47+
$Document[OperationTypeNode.QUERY][$Name]
4848
]>
4949

5050
export interface OperationNormalized {

src/layers/2_Select/selectionSet.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ import type { Directive } from './Directive/__.js'
33
import type { Indicator } from './Indicator/__.js'
44
import { type SelectAlias } from './SelectAlias.js'
55

6+
export type RootType = AnySelectionSet
7+
68
export type AnySelectionSet = {
79
[k: string]: FieldValue | ArgsObject
810
} // & SpecialFields

src/layers/3_InferResult/Field.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type { Simplify } from 'type-fest'
2-
import type { TSError } from '../../lib/TSError.js'
2+
import type { TSErrorDescriptive } from '../../lib/TSError.js'
33
import type { Schema } from '../1_Schema/__.js'
44
import type { Select } from '../2_Select/__.js'
55
import type { SchemaIndex } from '../4_generator/generators/SchemaIndex.js'
@@ -33,7 +33,7 @@ type FieldType<
3333
$Type extends Schema.Object$2 ? Object<$SelectionSet, $Schema, $Type> :
3434
$Type extends Schema.Interface ? Interface<$SelectionSet, $Schema, $Type> :
3535
$Type extends Schema.Union ? Union<$SelectionSet, $Schema, $Type> :
36-
TSError<'FieldType', `Unknown type`, { $Type: $Type; $SelectionSet: $SelectionSet; $Schema:$Schema }>
36+
TSErrorDescriptive<'FieldType', `Unknown type`, { $Type: $Type; $SelectionSet: $SelectionSet; $Schema:$Schema }>
3737

3838
// dprint-ignore
3939
type FieldDirectiveInclude<$SelectionSet> =

src/layers/3_InferResult/Object.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { Simplify } from 'type-fest'
22
import { type StringKeyof } from '../../lib/prelude.js'
3-
import type { TSError } from '../../lib/TSError.js'
3+
import type { TSErrorDescriptive } from '../../lib/TSError.js'
44
import type { Schema } from '../1_Schema/__.js'
55
import type { Select } from '../2_Select/__.js'
66
import type { SchemaIndex } from '../4_generator/generators/SchemaIndex.js'
@@ -20,18 +20,18 @@ export type Object<$SelectionSet, $Schema extends SchemaIndex, $Node extends Sch
2020
)>
2121

2222
// dprint-ignore
23-
type SelectionNonSelectAlias<$SelectionSet , $Schema extends SchemaIndex, $Node extends Schema.Output.Object$2> =
23+
type SelectionNonSelectAlias<$SelectionSet , $Schema extends SchemaIndex, $SchemaNode extends Schema.Output.Object$2> =
2424
{
25-
[$Select in PickSelectsPositiveIndicatorAndNotSelectAlias<$SelectionSet>]:
26-
$Select extends keyof $Node['fields']
27-
? Field<$SelectionSet[$Select], $Node['fields'][$Select], $Schema>
28-
: Errors.UnknownFieldName<$Select, $Node>
25+
[$Key in PickSelectsPositiveIndicatorAndNotSelectAlias<$SelectionSet>]:
26+
$Key extends keyof $SchemaNode['fields']
27+
? Field<$SelectionSet[$Key], $SchemaNode['fields'][$Key], $Schema>
28+
: Errors.UnknownFieldName<$Key, $SchemaNode>
2929
}
3030

3131
// dprint-ignore
3232
export namespace Errors {
3333
export type UnknownFieldName<$FieldName extends string, $Object extends Schema.Object$2 | Schema.Output.RootType> =
34-
TSError<'Object', `field "${$FieldName}" does not exist on object "${$Object['fields']['__typename']['type']['type']}"`>
34+
TSErrorDescriptive<'Object', `field "${$FieldName}" does not exist on object "${$Object['fields']['__typename']['type']['type']}"`>
3535
}
3636

3737
// dprint-ignore

src/layers/3_InferResult/__.test-d.ts

Lines changed: 62 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type * as Schema from '../../../tests/_/schemas/kitchen-sink/graffle/modules/SchemaBuildtime.js'
22
import type { Index } from '../../../tests/_/schemas/kitchen-sink/graffle/modules/SchemaIndex.js'
33
import type * as SelectionSets from '../../../tests/_/schemas/kitchen-sink/graffle/modules/SelectionSets.js'
4-
import { AssertEqual } from '../../lib/assert-equal.js'
4+
import { assertEqual } from '../../lib/assert-equal.js'
55
import type { InferResult } from './__.js'
66
import type { PickSelectsPositiveIndicatorAndNotSelectAlias } from './Object.js'
77

@@ -10,118 +10,118 @@ type $<$SelectionSet extends SelectionSets.Query> = InferResult.Query<$Selection
1010
// dprint-ignore
1111
{
1212

13-
AssertEqual<PickSelectsPositiveIndicatorAndNotSelectAlias<{ a: true }>, 'a'>()
14-
AssertEqual<PickSelectsPositiveIndicatorAndNotSelectAlias<{ a: ['b', true]; b: true }>, 'b'>()
13+
assertEqual<PickSelectsPositiveIndicatorAndNotSelectAlias<{ a: true }>, 'a'>()
14+
assertEqual<PickSelectsPositiveIndicatorAndNotSelectAlias<{ a: ['b', true]; b: true }>, 'b'>()
1515

1616
}
1717

1818
// dprint-ignore
1919
{
2020

21-
AssertEqual<$<{ __typename: true }>, { __typename: 'Query' }>()
21+
assertEqual<$<{ __typename: true }>, { __typename: 'Query' }>()
2222

2323
// Scalar
24-
AssertEqual<$<{ id: true }>, { id: null | string }>()
24+
assertEqual<$<{ id: true }>, { id: null | string }>()
2525
// AssertEqual<RS<{ id: 1 }>, { id: null | string }>()
2626
// non-nullable
27-
AssertEqual<$<{ idNonNull: true }>, { idNonNull: string }>()
27+
assertEqual<$<{ idNonNull: true }>, { idNonNull: string }>()
2828
// indicator negative
29-
AssertEqual<$<{ id: true; string: false }>, { id: null | string }>()
29+
assertEqual<$<{ id: true; string: false }>, { id: null | string }>()
3030
// AssertEqual<RS<{ id: true; string: 0 }>, { id: null | string }>()
31-
AssertEqual<$<{ id: true; string: undefined }>, { id: null | string }>()
31+
assertEqual<$<{ id: true; string: undefined }>, { id: null | string }>()
3232

3333
// Custom Scalar
34-
AssertEqual<$<{ date: true }>, { date: null | Date }>()
34+
assertEqual<$<{ date: true }>, { date: null | Date }>()
3535

3636
// List
37-
AssertEqual<$<{ listIntNonNull: true }>, { listIntNonNull: number[] }>()
38-
AssertEqual<$<{ listInt: true }>, { listInt: null|(null|number)[] }>()
39-
AssertEqual<$<{ listListIntNonNull: true }>, { listListIntNonNull: number[][] }>()
40-
AssertEqual<$<{ listListInt: true }>, { listListInt: null|((null|(null|number)[])[]) }>()
37+
assertEqual<$<{ listIntNonNull: true }>, { listIntNonNull: number[] }>()
38+
assertEqual<$<{ listInt: true }>, { listInt: null|(null|number)[] }>()
39+
assertEqual<$<{ listListIntNonNull: true }>, { listListIntNonNull: number[][] }>()
40+
assertEqual<$<{ listListInt: true }>, { listListInt: null|((null|(null|number)[])[]) }>()
4141

4242
// Enum
43-
AssertEqual<$<{ abcEnum: true }>, { abcEnum: null|'A'|'B'|'C' }>()
43+
assertEqual<$<{ abcEnum: true }>, { abcEnum: null|'A'|'B'|'C' }>()
4444

4545
// Object
46-
AssertEqual<$<{ object: { id: true } }>, { object: null | { id: string | null } }>()
46+
assertEqual<$<{ object: { id: true } }>, { object: null | { id: string | null } }>()
4747
// non-nullable
48-
AssertEqual<$<{ objectNonNull: { id: true } }>, { objectNonNull: { id: string | null } }>()
48+
assertEqual<$<{ objectNonNull: { id: true } }>, { objectNonNull: { id: string | null } }>()
4949
// with args
50-
AssertEqual<$<{ objectWithArgs: { $: { id: 'abc' }; id: true }}>, { objectWithArgs: null | { id: string | null } }>()
50+
assertEqual<$<{ objectWithArgs: { $: { id: 'abc' }; id: true }}>, { objectWithArgs: null | { id: string | null } }>()
5151

5252
// scalars-wildcard
53-
AssertEqual<$<{ objectNonNull: { $scalars: true } }>, { objectNonNull: { __typename: "Object1"; string: null|string; int: null|number; float: null|number; boolean: null|boolean; id: null|string } }>()
53+
assertEqual<$<{ objectNonNull: { $scalars: true } }>, { objectNonNull: { __typename: "Object1"; string: null|string; int: null|number; float: null|number; boolean: null|boolean; id: null|string } }>()
5454
// scalars-wildcard with nested object
55-
AssertEqual<$<{ objectNested: { $scalars: true } }>, { objectNested: null | { __typename: "ObjectNested"; id: null|string } }>()
55+
assertEqual<$<{ objectNested: { $scalars: true } }>, { objectNested: null | { __typename: "ObjectNested"; id: null|string } }>()
5656
// __typename
57-
AssertEqual<$<{ objectNonNull: { __typename: true } }>, { objectNonNull: { __typename: "Object1" } }>()
57+
assertEqual<$<{ objectNonNull: { __typename: true } }>, { objectNonNull: { __typename: "Object1" } }>()
5858

5959
// Union
60-
AssertEqual<$<{ unionFooBar: { __typename: true } }>, { unionFooBar: null | { __typename: "Foo" } | { __typename: "Bar" } }>()
61-
AssertEqual<$<{ unionFooBar: { ___on_Foo: { __typename: true } } }>, { unionFooBar: null | {} | { __typename: "Foo" } }>()
62-
AssertEqual<$<{ unionFooBar: { ___on_Foo: { id: true } } }>, { unionFooBar: null | {} | { id: null|string } }>()
63-
AssertEqual<$<{ unionFooBar: { __typename: true; ___on_Foo: { id: true } } }>, { unionFooBar: null | { __typename: "Bar" } | { __typename: "Foo"; id: null|string } }>()
60+
assertEqual<$<{ unionFooBar: { __typename: true } }>, { unionFooBar: null | { __typename: "Foo" } | { __typename: "Bar" } }>()
61+
assertEqual<$<{ unionFooBar: { ___on_Foo: { __typename: true } } }>, { unionFooBar: null | {} | { __typename: "Foo" } }>()
62+
assertEqual<$<{ unionFooBar: { ___on_Foo: { id: true } } }>, { unionFooBar: null | {} | { id: null|string } }>()
63+
assertEqual<$<{ unionFooBar: { __typename: true; ___on_Foo: { id: true } } }>, { unionFooBar: null | { __typename: "Bar" } | { __typename: "Foo"; id: null|string } }>()
6464
// with Args
65-
AssertEqual<$<{ unionFooBarWithArgs: { $: { id: `abc` }, ___on_Foo: { id: true } } }>, { unionFooBarWithArgs: null | {} | { id: null|string } }>()
65+
assertEqual<$<{ unionFooBarWithArgs: { $: { id: `abc` }, ___on_Foo: { id: true } } }>, { unionFooBarWithArgs: null | {} | { id: null|string } }>()
6666

6767

6868
// Union fragments Case
69-
AssertEqual<$<{ lowerCaseUnion: { __typename:true, ___on_lowerCaseObject: { id: true }, ___on_lowerCaseObject2: { int: true } } }>, { lowerCaseUnion: null | { __typename: 'lowerCaseObject'; id: null|string } | { __typename: 'lowerCaseObject2'; int: null|number } }>()
69+
assertEqual<$<{ lowerCaseUnion: { __typename:true, ___on_lowerCaseObject: { id: true }, ___on_lowerCaseObject2: { int: true } } }>, { lowerCaseUnion: null | { __typename: 'lowerCaseObject'; id: null|string } | { __typename: 'lowerCaseObject2'; int: null|number } }>()
7070

7171

7272
// Interface
73-
AssertEqual<$<{ interface: { ___on_Object1ImplementingInterface: { id: true }}}>, { interface: null | { id: null | string} | {} }>()
74-
AssertEqual<$<{ interface: { ___on_Object1ImplementingInterface: { int: true }}}>, { interface: null | { int: null | number} | {} }>()
75-
AssertEqual<$<{ interface: { id: true }}>, { interface: null | { id: null | string} }>()
76-
AssertEqual<$<{ interface: { id: true, ___on_Object1ImplementingInterface: { id: true } }}>, { interface: null | { id: null | string} }>()
77-
AssertEqual<$<{ interface: { id: true, ___on_Object1ImplementingInterface: { int: true } }}>, { interface: null | { id: null | string} | { id: null | string; int: null | number }}>()
78-
AssertEqual<$<{ interface: { __typename:true }}>, { interface: null | { __typename: 'Object1ImplementingInterface' } | { __typename: 'Object2ImplementingInterface' } }>()
79-
AssertEqual<$<{ interface: { ___on_Object1ImplementingInterface: { __typename: true } }}>, { interface: null | { __typename: 'Object1ImplementingInterface' } | {} }>()
80-
AssertEqual<$<{ interface: { $scalars: true }}>, { interface: null | { __typename: 'Object1ImplementingInterface', id: null | string, int: null|number} | { __typename: 'Object2ImplementingInterface', id: null | string; boolean:null|boolean} }>()
73+
assertEqual<$<{ interface: { ___on_Object1ImplementingInterface: { id: true }}}>, { interface: null | { id: null | string} | {} }>()
74+
assertEqual<$<{ interface: { ___on_Object1ImplementingInterface: { int: true }}}>, { interface: null | { int: null | number} | {} }>()
75+
assertEqual<$<{ interface: { id: true }}>, { interface: null | { id: null | string} }>()
76+
assertEqual<$<{ interface: { id: true, ___on_Object1ImplementingInterface: { id: true } }}>, { interface: null | { id: null | string} }>()
77+
assertEqual<$<{ interface: { id: true, ___on_Object1ImplementingInterface: { int: true } }}>, { interface: null | { id: null | string} | { id: null | string; int: null | number }}>()
78+
assertEqual<$<{ interface: { __typename:true }}>, { interface: null | { __typename: 'Object1ImplementingInterface' } | { __typename: 'Object2ImplementingInterface' } }>()
79+
assertEqual<$<{ interface: { ___on_Object1ImplementingInterface: { __typename: true } }}>, { interface: null | { __typename: 'Object1ImplementingInterface' } | {} }>()
80+
assertEqual<$<{ interface: { $scalars: true }}>, { interface: null | { __typename: 'Object1ImplementingInterface', id: null | string, int: null|number} | { __typename: 'Object2ImplementingInterface', id: null | string; boolean:null|boolean} }>()
8181
// with args
82-
AssertEqual<$<{ interfaceWithArgs: { $:{id:'abc'}; id: true }}>, { interfaceWithArgs: null | { id: null | string } }>()
82+
assertEqual<$<{ interfaceWithArgs: { $:{id:'abc'}; id: true }}>, { interfaceWithArgs: null | { id: null | string } }>()
8383

8484
// todo alias on interfaces, interface fragments
8585
// Alias
8686
// scalar
87-
AssertEqual<$<{ id: ['x', true] }>, { x: null | string }>()
88-
AssertEqual<$<{ idNonNull: ['x', true] }>, { x: string }>()
87+
assertEqual<$<{ id: ['x', true] }>, { x: null | string }>()
88+
assertEqual<$<{ idNonNull: ['x', true] }>, { x: string }>()
8989
// object
90-
AssertEqual<$<{ object: ['x', { id: true }] }>, { x: { id: null|string } | null }>()
90+
assertEqual<$<{ object: ['x', { id: true }] }>, { x: { id: null|string } | null }>()
9191
// argument
92-
AssertEqual<$<{objectWithArgs: ['x', { $: {id:''}; id:true }]}>, { x: { id: null|string } | null }>()
92+
assertEqual<$<{objectWithArgs: ['x', { $: {id:''}; id:true }]}>, { x: { id: null|string } | null }>()
9393
// multi
94-
AssertEqual<$<{ id: [['id1', true],['id2', true]] }>, { id1: null | string; id2: null | string }>()
94+
assertEqual<$<{ id: [['id1', true],['id2', true]] }>, { id1: null | string; id2: null | string }>()
9595
// AssertEqual<RS<{ id_as: true }>, { id_as: InferResult.Errors.UnknownFieldName<'id_as', Schema.Root.Query> }>()
9696
// AssertEqual<RS<{ id_as_$: true }>, { id_as_$: InferResult.Errors.UnknownFieldName<'id_as_$', Schema.Root.Query> }>()
9797
// union fragment
98-
AssertEqual<$<{ unionFooBar: { ___on_Foo: { id: ['id2', true] } } }>, { unionFooBar: null | {} | { id2: null|string } }>()
98+
assertEqual<$<{ unionFooBar: { ___on_Foo: { id: ['id2', true] } } }>, { unionFooBar: null | {} | { id2: null|string } }>()
9999

100100
// Directive @include
101101
// On scalar non-nullable
102-
AssertEqual<$<{ idNonNull: { $include: boolean } }>, { idNonNull: null|string }>()
103-
AssertEqual<$<{ idNonNull: { $include: {if:boolean} } }>, { idNonNull: null|string }>()
104-
AssertEqual<$<{ idNonNull: { $include: true } }>, { idNonNull: string }>()
105-
AssertEqual<$<{ idNonNull: { $include: {if:true} } }>, { idNonNull: string }>()
106-
AssertEqual<$<{ idNonNull: { $include: false } }>, { idNonNull: null }>()
107-
AssertEqual<$<{ idNonNull: { $include: {if:false} } }>, { idNonNull: null }>()
102+
assertEqual<$<{ idNonNull: { $include: boolean } }>, { idNonNull: null|string }>()
103+
assertEqual<$<{ idNonNull: { $include: {if:boolean} } }>, { idNonNull: null|string }>()
104+
assertEqual<$<{ idNonNull: { $include: true } }>, { idNonNull: string }>()
105+
assertEqual<$<{ idNonNull: { $include: {if:true} } }>, { idNonNull: string }>()
106+
assertEqual<$<{ idNonNull: { $include: false } }>, { idNonNull: null }>()
107+
assertEqual<$<{ idNonNull: { $include: {if:false} } }>, { idNonNull: null }>()
108108
// On scalar nullable
109-
AssertEqual<$<{ id: { $include: boolean } }>, { id: null|string }>()
110-
AssertEqual<$<{ id: { $include: false } }>, { id: null }>()
111-
AssertEqual<$<{ id: { $include: true } }>, { id: null|string }>()
109+
assertEqual<$<{ id: { $include: boolean } }>, { id: null|string }>()
110+
assertEqual<$<{ id: { $include: false } }>, { id: null }>()
111+
assertEqual<$<{ id: { $include: true } }>, { id: null|string }>()
112112

113113
// Directive @skip
114114
// On scalar non-nullable
115-
AssertEqual<$<{ idNonNull: { $skip: boolean } }>, { idNonNull: null|string }>()
116-
AssertEqual<$<{ idNonNull: { $skip: {if:boolean} } }>, { idNonNull: null|string }>()
117-
AssertEqual<$<{ idNonNull: { $skip: true } }>, { idNonNull: null }>()
118-
AssertEqual<$<{ idNonNull: { $skip: {if:true} } }>, { idNonNull: null }>()
119-
AssertEqual<$<{ idNonNull: { $skip: false } }>, { idNonNull: string }>()
120-
AssertEqual<$<{ idNonNull: { $skip: {if:false} } }>, { idNonNull: string }>()
115+
assertEqual<$<{ idNonNull: { $skip: boolean } }>, { idNonNull: null|string }>()
116+
assertEqual<$<{ idNonNull: { $skip: {if:boolean} } }>, { idNonNull: null|string }>()
117+
assertEqual<$<{ idNonNull: { $skip: true } }>, { idNonNull: null }>()
118+
assertEqual<$<{ idNonNull: { $skip: {if:true} } }>, { idNonNull: null }>()
119+
assertEqual<$<{ idNonNull: { $skip: false } }>, { idNonNull: string }>()
120+
assertEqual<$<{ idNonNull: { $skip: {if:false} } }>, { idNonNull: string }>()
121121
// On scalar nullable
122-
AssertEqual<$<{ id: { $skip: boolean } }>, { id: null|string }>()
123-
AssertEqual<$<{ id: { $skip: false } }>, { id: null|string }>()
124-
AssertEqual<$<{ id: { $skip: true } }>, { id: null }>()
122+
assertEqual<$<{ id: { $skip: boolean } }>, { id: null|string }>()
123+
assertEqual<$<{ id: { $skip: false } }>, { id: null|string }>()
124+
assertEqual<$<{ id: { $skip: true } }>, { id: null }>()
125125

126126
// Directive @defer
127127
// todo
@@ -134,13 +134,13 @@ AssertEqual<$<{ id: { $skip: true } }>, { id: null }>()
134134

135135
// Arguments
136136
// scalar
137-
AssertEqual<$<{ stringWithArgs: true }>, { stringWithArgs: null | string }>()
138-
AssertEqual<$<{ stringWithArgs: { $: { string: '' } } }>, { stringWithArgs: null | string }>()
137+
assertEqual<$<{ stringWithArgs: true }>, { stringWithArgs: null | string }>()
138+
assertEqual<$<{ stringWithArgs: { $: { string: '' } } }>, { stringWithArgs: null | string }>()
139139

140140
// Errors
141141
// @ts-expect-error invalid query
142142
type Result = $<{ id2: true }>
143143
// unknown field
144-
AssertEqual<Result, { id2: InferResult.Errors.UnknownFieldName<'id2', Schema.Root.Query> }>()
144+
assertEqual<Result, { id2: InferResult.Errors.UnknownFieldName<'id2', Schema.Root.Query> }>()
145145

146146
}

0 commit comments

Comments
 (0)