UNPKG

apollo-schema-extend

Version:

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

18 lines (17 loc) 1.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.mergeTypeDefs = void 0; const apollo_server_express_1 = require("apollo-server-express"); const graphql_1 = require("graphql"); const mergeTypeDefs = (original, external) => { const internal = Array.isArray(original) ? original : [original]; const mergedSchema = (0, apollo_server_express_1.mergeSchemas)({ schemas: [...internal, external] }); const mergedTypeDefs = (0, graphql_1.parse)((0, graphql_1.printSchema)(mergedSchema)); return withoutApolloTypes(mergedTypeDefs); }; exports.mergeTypeDefs = mergeTypeDefs; const apolloTypes = [ { name: 'CacheControlScope', kind: graphql_1.Kind.ENUM_TYPE_DEFINITION }, { name: 'Upload', kind: graphql_1.Kind.SCALAR_TYPE_DEFINITION }, ]; const withoutApolloTypes = (typeDefs) => (Object.assign(Object.assign({}, typeDefs), { definitions: typeDefs.definitions.filter(definition => !apolloTypes.some(type => definition.kind === type.kind && definition.name.value === type.name)) }));