Method: GraphQL::Analysis.analyze_multiplex
- Defined in:
- lib/graphql/analysis.rb
.analyze_multiplex(multiplex, analyzers) ⇒ Array<Any>
Analyze a multiplex, and all queries within. Multiplex analyzers are ran for all queries, keeping state. Query analyzers are ran per query, without carrying state between queries.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/graphql/analysis.rb', line 27 def analyze_multiplex(multiplex, analyzers) multiplex_analyzers = analyzers.map { |analyzer| analyzer.new(multiplex) } multiplex.current_trace.analyze_multiplex(multiplex: multiplex) do query_results = multiplex.queries.map do |query| if query.valid? analyze_query( query, query.analyzers, multiplex_analyzers: multiplex_analyzers ) else [] end end multiplex_results = multiplex_analyzers.map(&:result) multiplex_errors = analysis_errors(multiplex_results) multiplex.queries.each_with_index do |query, idx| query.analysis_errors = multiplex_errors + analysis_errors(query_results[idx]) end multiplex_results end end |