private bool AllowFragmentDeferral( CompilerContext context, InlineFragmentNode fragment) { if (context.Optimizers.Count == 0) { return(true); } var optimizerContext = new SelectionOptimizerContext ( _schema, context.Path, context.Type, context.SelectionSet, context.Fields, CreateFieldMiddleware ); if (context.Optimizers.Count == 1) { return(context.Optimizers[0].AllowFragmentDeferral(optimizerContext, fragment)); } for (var i = 0; i < context.Optimizers.Count; i++) { if (!context.Optimizers[i].AllowFragmentDeferral(optimizerContext, fragment)) { return(false); } } return(true); }
private void OptimizeSelectionSet(CompilerContext context) { if (context.Optimizers.Count == 0) { return; } var optimizerContext = new SelectionOptimizerContext ( _schema, context.Path, context.Type, context.SelectionSet, context.Fields, CreateFieldMiddleware ); if (context.Optimizers.Count == 1) { context.Optimizers[0].OptimizeSelectionSet(optimizerContext); return; } for (var i = 0; i < context.Optimizers.Count; i++) { context.Optimizers[i].OptimizeSelectionSet(optimizerContext); } }
private bool AllowFragmentDeferral( CompilerContext context, FragmentSpreadNode fragmentSpread, FragmentDefinitionNode fragmentDefinition) { if (context.Optimizers.Count == 0) { return(true); } var optimizerContext = new SelectionOptimizerContext(this, context); if (context.Optimizers.Count == 1) { return(context.Optimizers[0].AllowFragmentDeferral( optimizerContext, fragmentSpread, fragmentDefinition)); } for (var i = 0; i < context.Optimizers.Count; i++) { if (!context.Optimizers[i].AllowFragmentDeferral( optimizerContext, fragmentSpread, fragmentDefinition)) { return(false); } } return(true); }
private void OptimizeSelectionSet(CompilerContext context) { if (context.Optimizers.Count == 0) { return; } var optimizerContext = new SelectionOptimizerContext(this, context); if (context.Optimizers.Count == 1) { context.Optimizers[0].OptimizeSelectionSet(optimizerContext); return; } for (var i = 0; i < context.Optimizers.Count; i++) { context.Optimizers[i].OptimizeSelectionSet(optimizerContext); } }
public void OptimizeSelectionSet(SelectionOptimizerContext context) { if (!context.Path.IsEmpty && context.Path.Peek() is { Name : { Value : "bar" } })
public bool AllowFragmentDeferral( SelectionOptimizerContext context, FragmentSpreadNode fragmentSpread, FragmentDefinitionNode fragmentDefinition) => true;
public bool AllowFragmentDeferral( SelectionOptimizerContext context, InlineFragmentNode fragment) => true;
public void OptimizeSelectionSet(SelectionOptimizerContext context) { }