UNPKG

apollo-schema-extend

Version:

Extends your Apollo Server Express based graphql server with an external graphql source

22 lines (21 loc) 1.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.withExternalSchema = void 0; const mergeResolvers_1 = require("./mergeResolvers"); const mergeTypeDefs_1 = require("./mergeTypeDefs"); const withExternalSchema = (schema, options) => (config) => { if (!isSupportedConfig(config)) { throw new Error('This config is not supported'); } const { dataSource } = options; const dataSources = () => { const sources = config.dataSources(); return Object.assign(Object.assign({}, sources), { [dataSource.name]: dataSource.factory(sources) }); }; return Object.assign(Object.assign({}, config), { typeDefs: (0, mergeTypeDefs_1.mergeTypeDefs)(config.typeDefs, schema), resolvers: (0, mergeResolvers_1.mergeResolvers)(config.resolvers, schema, options), dataSources }); }; exports.withExternalSchema = withExternalSchema; const isSupportedConfig = (config) => { const requiredFieldsProvided = !!config.resolvers && !!config.typeDefs && !!config.dataSources; return requiredFieldsProvided && !Array.isArray(config.resolvers); };