UNPKG

merge-graphql-schemas

Version:

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

42 lines (36 loc) 1.47 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); const fileLoading = require('@graphql-toolkit/file-loading'); const schemaMerging = require('@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 fileLoading.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 schemaMerging.mergeTypeDefs(types, { useSchemaDefinition: schemaDefinition, forceSchemaDefinition: schemaDefinition, throwOnConflict: true, commentDescriptions: true, reverseDirectives: true, ...options, }); }; Object.defineProperty(exports, 'mergeResolvers', { enumerable: true, get: function () { return schemaMerging.mergeResolvers; } }); exports.fileLoader = fileLoader; exports.mergeTypes = mergeTypes;