UNPKG

1.57 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.mergeSchemas = void 0;
4const utils_1 = require("@graphql-tools/utils");
5const makeExecutableSchema_js_1 = require("./makeExecutableSchema.js");
6/**
7 * Synchronously merges multiple schemas, typeDefinitions and/or resolvers into a single schema.
8 * @param config Configuration object
9 */
10function mergeSchemas(config) {
11 const extractedTypeDefs = [];
12 const extractedResolvers = [];
13 const extractedSchemaExtensions = [];
14 if (config.schemas != null) {
15 for (const schema of config.schemas) {
16 extractedTypeDefs.push(schema);
17 extractedResolvers.push((0, utils_1.getResolversFromSchema)(schema));
18 extractedSchemaExtensions.push((0, utils_1.extractExtensionsFromSchema)(schema));
19 }
20 }
21 if (config.typeDefs != null) {
22 extractedTypeDefs.push(config.typeDefs);
23 }
24 if (config.resolvers != null) {
25 const additionalResolvers = (0, utils_1.asArray)(config.resolvers);
26 extractedResolvers.push(...additionalResolvers);
27 }
28 if (config.schemaExtensions != null) {
29 const additionalSchemaExtensions = (0, utils_1.asArray)(config.schemaExtensions);
30 extractedSchemaExtensions.push(...additionalSchemaExtensions);
31 }
32 return (0, makeExecutableSchema_js_1.makeExecutableSchema)({
33 ...config,
34 typeDefs: extractedTypeDefs,
35 resolvers: extractedResolvers,
36 schemaExtensions: extractedSchemaExtensions,
37 });
38}
39exports.mergeSchemas = mergeSchemas;