UNPKG

graphql-document-collector

Version:

Load up smartly, in one location, all of the GraphQL queries/mutations/subscriptions of your project

19 lines (16 loc) 527 B
import {DocumentNode} from 'graphql'; import {DocumentDirectory} from './ast'; export interface DocumentFlatMap { [docPath: string]: DocumentNode; } export function flattenDirectoryStructure( dir: DocumentDirectory, flatMap: DocumentFlatMap = {}, cwd: string[] = [] ): DocumentFlatMap { dir.documents.forEach(doc => { flatMap[[...cwd, (doc as any).name.value].join('/')] = doc; }); dir.directories.forEach(dir => { flattenDirectoryStructure(dir, flatMap, [...cwd, dir.name.value]) }); return flatMap; }