concatAST.js.flow 525 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
// @flow strict

import flatMap from '../polyfills/flatMap';

import { type DocumentNode } from '../language/ast';

/**
 * Provided a collection of ASTs, presumably each from different files,
 * concatenate the ASTs together into batched AST, useful for validating many
 * GraphQL source files which together represent one conceptual application.
 */
export function concatAST(asts: $ReadOnlyArray<DocumentNode>): DocumentNode {
  return {
    kind: 'Document',
    definitions: flatMap(asts, ast => ast.definitions),
  };
}