merge-graphql-schemas
Version:
A utility library to facilitate merging of modularized GraphQL schemas and resolver objects.
42 lines (36 loc) • 1.47 kB
JavaScript
;
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;