UNPKG

@graphql-tools/node-require

Version:

A set of utils for faster development of GraphQL tools

23 lines (22 loc) 914 B
/* eslint-disable @typescript-eslint/triple-slash-reference */ /* eslint-disable spaced-comment */ ///<reference path="declarations.d.ts" /> import { concatAST } from 'graphql'; import { GraphQLFileLoader } from '@graphql-tools/graphql-file-loader'; import { loadTypedefsSync } from '@graphql-tools/load'; import { isSome } from '@graphql-tools/utils'; const VALID_EXTENSIONS = ['graphql', 'graphqls', 'gql', 'gqls']; export function handleModule(m, filename) { const sources = loadTypedefsSync(filename, { loaders: [new GraphQLFileLoader()], }); const documents = sources.map(source => source.document).filter(isSome); const mergedDoc = concatAST(documents); m.exports = mergedDoc; } export function registerGraphQLExtensions(nodeRequire) { for (const ext of VALID_EXTENSIONS) { nodeRequire.extensions[`.${ext}`] = handleModule; } } registerGraphQLExtensions(require);