@@ -43,7 +43,7 @@ internal sealed class FederationTypeInterceptor : TypeInterceptor
43
43
private TypeRegistry _typeRegistry = default ! ;
44
44
private ObjectType _queryType = default ! ;
45
45
private ExtendedTypeDirectiveReference _keyDirectiveReference = default ! ;
46
- private SchemaTypeDefinition _schemaTypeDefinition = default ! ;
46
+ private SchemaTypeConfiguration _schemaTypeCfg = default ! ;
47
47
private RegisteredType _schemaType = default ! ;
48
48
private bool _registeredTypes ;
49
49
@@ -63,22 +63,22 @@ internal override void InitializeContext(
63
63
64
64
public override void OnAfterInitialize (
65
65
ITypeDiscoveryContext discoveryContext ,
66
- DefinitionBase definition )
66
+ TypeSystemConfiguration configuration )
67
67
{
68
68
if ( discoveryContext . Type is ObjectType objectType &&
69
- definition is ObjectTypeDefinition objectTypeDefinition )
69
+ configuration is ObjectTypeConfiguration objectTypeCfg )
70
70
{
71
71
ApplyMethodLevelReferenceResolvers (
72
72
objectType ,
73
- objectTypeDefinition ) ;
73
+ objectTypeCfg ) ;
74
74
75
75
AddToUnionIfHasTypeLevelKeyDirective (
76
76
objectType ,
77
- objectTypeDefinition ) ;
77
+ objectTypeCfg ) ;
78
78
79
79
AggregatePropertyLevelKeyDirectives (
80
80
objectType ,
81
- objectTypeDefinition ,
81
+ objectTypeCfg ,
82
82
discoveryContext ) ;
83
83
}
84
84
}
@@ -114,40 +114,40 @@ public override IEnumerable<TypeReference> RegisterMoreTypes(
114
114
115
115
public override void OnBeforeCompleteName (
116
116
ITypeCompletionContext completionContext ,
117
- DefinitionBase definition )
117
+ TypeSystemConfiguration configuration )
118
118
{
119
- if ( definition is SchemaTypeDefinition schemaDef )
119
+ if ( configuration is SchemaTypeConfiguration schemaCfg )
120
120
{
121
121
_schemaType = ( RegisteredType ) completionContext ;
122
- _schemaTypeDefinition = schemaDef ;
122
+ _schemaTypeCfg = schemaCfg ;
123
123
}
124
124
}
125
125
126
126
public override void OnAfterCompleteName (
127
127
ITypeCompletionContext completionContext ,
128
- DefinitionBase definition )
128
+ TypeSystemConfiguration configuration )
129
129
{
130
130
if ( _context . GetFederationVersion ( ) == FederationVersion . Federation10
131
- || definition is not ITypeDefinition and not DirectiveTypeDefinition )
131
+ || configuration is not ITypeConfiguration and not DirectiveTypeConfiguration )
132
132
{
133
133
return ;
134
134
}
135
135
136
136
// if we find a PagingInfo we will make all fields sharable.
137
- if ( definition is ObjectTypeDefinition typeDef
138
- && typeDef . Name . Equals ( PageInfoType . Names . PageInfo ) )
137
+ if ( configuration is ObjectTypeConfiguration typeCfg
138
+ && typeCfg . Name . Equals ( PageInfoType . Names . PageInfo ) )
139
139
{
140
- foreach ( var fieldDef in typeDef . Fields )
140
+ foreach ( var fieldCfg in typeCfg . Fields )
141
141
{
142
- if ( fieldDef . Directives . All ( t => t . Value is not ShareableDirective ) )
142
+ if ( fieldCfg . Directives . All ( t => t . Value is not ShareableDirective ) )
143
143
{
144
144
var typeRef = TypeReference . CreateDirective ( _typeInspector . GetType ( typeof ( ShareableDirective ) ) ) ;
145
- fieldDef . Directives . Add ( new DirectiveDefinition ( ShareableDirective . Default , typeRef ) ) ;
145
+ fieldCfg . Directives . Add ( new DirectiveConfiguration ( ShareableDirective . Default , typeRef ) ) ;
146
146
}
147
147
}
148
148
}
149
149
150
- var hasRuntimeType = ( IHasRuntimeType ) definition ;
150
+ var hasRuntimeType = ( IHasRuntimeType ) configuration ;
151
151
var type = hasRuntimeType . RuntimeType ;
152
152
153
153
if ( type != typeof ( object ) &&
@@ -259,8 +259,8 @@ private void RegisterImports()
259
259
TypeDependencyFulfilled . Completed ) ;
260
260
_schemaType . Dependencies . Add ( dependency ) ;
261
261
262
- _schemaTypeDefinition
263
- . GetLegacyDefinition ( )
262
+ _schemaTypeCfg
263
+ . GetLegacyConfiguration ( )
264
264
. AddDirective (
265
265
new LinkDirective ( version . ToUrl ( ) , federationTypes ) ,
266
266
_typeInspector ) ;
@@ -272,8 +272,8 @@ private void RegisterImports()
272
272
continue ;
273
273
}
274
274
275
- _schemaTypeDefinition
276
- . GetLegacyDefinition ( )
275
+ _schemaTypeCfg
276
+ . GetLegacyConfiguration ( )
277
277
. AddDirective (
278
278
new LinkDirective ( import . Key , import . Value ) ,
279
279
_typeInspector ) ;
@@ -307,16 +307,16 @@ private void RegisterExportedDirectives()
307
307
308
308
foreach ( var directive in composeDirectives )
309
309
{
310
- _schemaTypeDefinition
311
- . GetLegacyDefinition ( )
310
+ _schemaTypeCfg
311
+ . GetLegacyConfiguration ( )
312
312
. AddDirective ( directive , _typeInspector ) ;
313
313
}
314
314
}
315
315
}
316
316
317
317
public override void OnAfterResolveRootType (
318
318
ITypeCompletionContext completionContext ,
319
- ObjectTypeDefinition definition ,
319
+ ObjectTypeConfiguration configuration ,
320
320
OperationType operationType )
321
321
{
322
322
if ( operationType is OperationType . Query )
@@ -327,44 +327,44 @@ public override void OnAfterResolveRootType(
327
327
328
328
public override void OnBeforeCompleteType (
329
329
ITypeCompletionContext completionContext ,
330
- DefinitionBase definition )
330
+ TypeSystemConfiguration configuration )
331
331
{
332
332
AddMemberTypesToTheEntityUnionType (
333
333
completionContext ,
334
- definition ) ;
334
+ configuration ) ;
335
335
336
336
AddServiceTypeToQueryType (
337
337
completionContext ,
338
- definition ) ;
338
+ configuration ) ;
339
339
}
340
340
341
341
public override void OnAfterMakeExecutable (
342
342
ITypeCompletionContext completionContext ,
343
- DefinitionBase definition )
343
+ TypeSystemConfiguration configuration )
344
344
{
345
345
if ( completionContext . Type is ObjectType type &&
346
- definition is ObjectTypeDefinition typeDef )
346
+ configuration is ObjectTypeConfiguration typeCfg )
347
347
{
348
- CompleteExternalFieldSetters ( type , typeDef ) ;
349
- CompleteReferenceResolver ( typeDef ) ;
348
+ CompleteExternalFieldSetters ( type , typeCfg ) ;
349
+ CompleteReferenceResolver ( typeCfg ) ;
350
350
}
351
351
}
352
352
353
- private void CompleteExternalFieldSetters ( ObjectType type , ObjectTypeDefinition typeDef )
354
- => ExternalSetterExpressionHelper . TryAddExternalSetter ( type , typeDef ) ;
353
+ private void CompleteExternalFieldSetters ( ObjectType type , ObjectTypeConfiguration typeCfg )
354
+ => ExternalSetterExpressionHelper . TryAddExternalSetter ( type , typeCfg ) ;
355
355
356
- private void CompleteReferenceResolver ( ObjectTypeDefinition typeDef )
356
+ private void CompleteReferenceResolver ( ObjectTypeConfiguration typeCfg )
357
357
{
358
- IReadOnlyList < ReferenceResolverDefinition > resolvers ;
358
+ IReadOnlyList < ReferenceResolverConfiguration > resolvers ;
359
359
{
360
- var contextData = typeDef . GetContextData ( ) ;
360
+ var contextData = typeCfg . GetContextData ( ) ;
361
361
362
362
if ( ! contextData . TryGetValue ( EntityResolver , out var resolversObject ) )
363
363
{
364
364
return ;
365
365
}
366
366
367
- if ( resolversObject is not IReadOnlyList < ReferenceResolverDefinition > r )
367
+ if ( resolversObject is not IReadOnlyList < ReferenceResolverConfiguration > r )
368
368
{
369
369
return ;
370
370
}
@@ -374,7 +374,7 @@ private void CompleteReferenceResolver(ObjectTypeDefinition typeDef)
374
374
375
375
if ( resolvers . Count == 1 )
376
376
{
377
- typeDef . ContextData [ EntityResolver ] = resolvers [ 0 ] . Resolver ;
377
+ typeCfg . ContextData [ EntityResolver ] = resolvers [ 0 ] . Resolver ;
378
378
}
379
379
else
380
380
{
@@ -404,38 +404,38 @@ private void CompleteReferenceResolver(ObjectTypeDefinition typeDef)
404
404
405
405
current = Expression . Block ( new [ ] { variable , } , current , variable ) ;
406
406
407
- typeDef . ContextData [ EntityResolver ] =
407
+ typeCfg . ContextData [ EntityResolver ] =
408
408
Expression . Lambda < FieldResolverDelegate > ( current , context ) . Compile ( ) ;
409
409
}
410
410
}
411
411
412
412
private void AddServiceTypeToQueryType (
413
413
ITypeCompletionContext completionContext ,
414
- DefinitionBase ? definition )
414
+ TypeSystemConfiguration ? definition )
415
415
{
416
416
if ( ! ReferenceEquals ( completionContext . Type , _queryType ) )
417
417
{
418
418
return ;
419
419
}
420
420
421
- var objectTypeDefinition = ( ObjectTypeDefinition ) definition ! ;
422
- objectTypeDefinition . Fields . Add ( ServerFields . CreateServiceField ( _context ) ) ;
421
+ var objectTypeCfg = ( ObjectTypeConfiguration ) definition ! ;
422
+ objectTypeCfg . Fields . Add ( ServerFields . CreateServiceField ( _context ) ) ;
423
423
if ( _entityTypes . Count > 0 )
424
424
{
425
- objectTypeDefinition . Fields . Add ( ServerFields . CreateEntitiesField ( _context ) ) ;
425
+ objectTypeCfg . Fields . Add ( ServerFields . CreateEntitiesField ( _context ) ) ;
426
426
}
427
427
}
428
428
429
429
private void ApplyMethodLevelReferenceResolvers (
430
430
ObjectType objectType ,
431
- ObjectTypeDefinition objectTypeDefinition )
431
+ ObjectTypeConfiguration objectTypeCfg )
432
432
{
433
433
if ( objectType . RuntimeType == typeof ( object ) )
434
434
{
435
435
return ;
436
436
}
437
437
438
- var descriptor = ObjectTypeDescriptor . From ( _context , objectTypeDefinition ) ;
438
+ var descriptor = ObjectTypeDescriptor . From ( _context , objectTypeCfg ) ;
439
439
440
440
// Static methods won't end up in the schema as fields.
441
441
// The default initialization system only considers instance methods,
@@ -460,21 +460,21 @@ private void ApplyMethodLevelReferenceResolvers(
460
460
}
461
461
462
462
// This seems to re-detect the entity resolver and save it into the context data.
463
- descriptor . CreateDefinition ( ) ;
463
+ descriptor . CreateConfiguration ( ) ;
464
464
}
465
465
466
466
private void AddToUnionIfHasTypeLevelKeyDirective (
467
467
ObjectType objectType ,
468
- ObjectTypeDefinition objectTypeDefinition )
468
+ ObjectTypeConfiguration objectTypeCfg )
469
469
{
470
- if ( objectTypeDefinition . Directives . FirstOrDefault ( d => d . Value is KeyDirective ) is { } keyDirective &&
470
+ if ( objectTypeCfg . Directives . FirstOrDefault ( d => d . Value is KeyDirective ) is { } keyDirective &&
471
471
( ( KeyDirective ) keyDirective . Value ) . Resolvable )
472
472
{
473
473
_entityTypes . Add ( objectType ) ;
474
474
return ;
475
475
}
476
476
477
- if ( objectTypeDefinition . Fields . Any ( f => f . ContextData . TryGetValue ( KeyMarker , out var resolvable ) &&
477
+ if ( objectTypeCfg . Fields . Any ( f => f . ContextData . TryGetValue ( KeyMarker , out var resolvable ) &&
478
478
resolvable is true ) )
479
479
{
480
480
_entityTypes . Add ( objectType ) ;
@@ -483,21 +483,21 @@ private void AddToUnionIfHasTypeLevelKeyDirective(
483
483
484
484
private void AggregatePropertyLevelKeyDirectives (
485
485
ObjectType objectType ,
486
- ObjectTypeDefinition objectTypeDefinition ,
486
+ ObjectTypeConfiguration objectTypeCfg ,
487
487
ITypeDiscoveryContext discoveryContext )
488
488
{
489
489
// if we find key markers on our fields, we need to construct the key directive
490
490
// from the annotated fields.
491
491
{
492
- var foundMarkers = objectTypeDefinition . Fields . Any ( f => f . ContextData . ContainsKey ( KeyMarker ) ) ;
492
+ var foundMarkers = objectTypeCfg . Fields . Any ( f => f . ContextData . ContainsKey ( KeyMarker ) ) ;
493
493
494
494
if ( ! foundMarkers )
495
495
{
496
496
return ;
497
497
}
498
498
}
499
499
500
- IReadOnlyList < ObjectFieldDefinition > fields = objectTypeDefinition . Fields ;
500
+ IReadOnlyList < ObjectFieldConfiguration > fields = objectTypeCfg . Fields ;
501
501
var fieldSet = new StringBuilder ( ) ;
502
502
bool ? resolvable = null ;
503
503
@@ -525,11 +525,11 @@ private void AggregatePropertyLevelKeyDirectives(
525
525
}
526
526
527
527
// add the key directive with the dynamically generated field set.
528
- AddKeyDirective ( objectTypeDefinition , fieldSet . ToString ( ) , resolvable ?? true ) ;
528
+ AddKeyDirective ( objectTypeCfg , fieldSet . ToString ( ) , resolvable ?? true ) ;
529
529
530
530
// register dependency to the key directive so that it is completed before
531
531
// we complete this type.
532
- foreach ( var directiveDefinition in objectTypeDefinition . Directives )
532
+ foreach ( var directiveDefinition in objectTypeCfg . Directives )
533
533
{
534
534
discoveryContext . Dependencies . Add (
535
535
new TypeDependency (
@@ -549,25 +549,25 @@ private void AggregatePropertyLevelKeyDirectives(
549
549
550
550
private void AddMemberTypesToTheEntityUnionType (
551
551
ITypeCompletionContext completionContext ,
552
- DefinitionBase ? definition )
552
+ TypeSystemConfiguration ? definition )
553
553
{
554
554
if ( completionContext . Type is _EntityType &&
555
- definition is UnionTypeDefinition unionTypeDefinition )
555
+ definition is UnionTypeConfiguration unionTypeCfg )
556
556
{
557
557
foreach ( var objectType in _entityTypes )
558
558
{
559
- unionTypeDefinition . Types . Add ( TypeReference . Create ( objectType ) ) ;
559
+ unionTypeCfg . Types . Add ( TypeReference . Create ( objectType ) ) ;
560
560
}
561
561
}
562
562
}
563
563
564
564
private void AddKeyDirective (
565
- ObjectTypeDefinition objectTypeDefinition ,
565
+ ObjectTypeConfiguration objectTypeCfg ,
566
566
string fieldSet ,
567
567
bool resolvable )
568
568
{
569
- objectTypeDefinition . Directives . Add (
570
- new DirectiveDefinition (
569
+ objectTypeCfg . Directives . Add (
570
+ new DirectiveConfiguration (
571
571
new KeyDirective ( fieldSet , resolvable ) ,
572
572
_keyDirectiveReference ) ) ;
573
573
}
0 commit comments