Example #1
0
        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);
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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);
        }
Example #4
0
        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);
            }
        }
Example #5
0
 public void OptimizeSelectionSet(SelectionOptimizerContext context)
 {
     if (!context.Path.IsEmpty && context.Path.Peek() is { Name : { Value : "bar" } })
Example #6
0
 public bool AllowFragmentDeferral(
     SelectionOptimizerContext context,
     FragmentSpreadNode fragmentSpread,
     FragmentDefinitionNode fragmentDefinition) => true;
Example #7
0
 public bool AllowFragmentDeferral(
     SelectionOptimizerContext context,
     InlineFragmentNode fragment) => true;
Example #8
0
 public void OptimizeSelectionSet(SelectionOptimizerContext context)
 {
 }