UNPKG

merge-graphql-schemas

Version:

A utility library to facilitate merging of modularized GraphQL schemas and resolver objects.

32 lines (28 loc) 1.26 kB
import { loadFiles } from '@graphql-toolkit/file-loading'; import { mergeTypeDefs } from '@graphql-toolkit/schema-merging'; export { mergeResolvers } from '@graphql-toolkit/schema-merging'; const DEFAULT_EXTENSIONS = ['ts', 'js', 'gql', 'graphql', 'graphqls']; const DEFAULT_IGNORED_EXTENSIONS = ['spec', 'test', 'd', 'map']; const fileLoader = (path, { recursive = false, extensions = DEFAULT_EXTENSIONS, ignoreIndex = true, ignoredExtensions = DEFAULT_IGNORED_EXTENSIONS, ...options } = {}) => { return loadFiles(path, { extensions: extensions.map(e => e.startsWith('.') ? e.substr(1, e.length - 1) : e).filter(e => DEFAULT_EXTENSIONS.includes(e)), recursive, ignoreIndex, ignoredExtensions, ...options, }); }; const mergeTypes = (types, options) => { const schemaDefinition = options && typeof options.schemaDefinition === 'boolean' ? options.schemaDefinition : true; return mergeTypeDefs(types, { useSchemaDefinition: schemaDefinition, forceSchemaDefinition: schemaDefinition, throwOnConflict: true, commentDescriptions: true, reverseDirectives: true, ...options, }); }; export { fileLoader, mergeTypes };