1 | import { extractExtensionsFromSchema } from '@graphql-tools/merge';
|
2 | import { asArray, getResolversFromSchema } from '@graphql-tools/utils';
|
3 | import { makeExecutableSchema } from './makeExecutableSchema.js';
|
4 |
|
5 |
|
6 |
|
7 |
|
8 | export function mergeSchemas(config) {
|
9 | const extractedTypeDefs = asArray(config.typeDefs || []);
|
10 | const extractedResolvers = asArray(config.resolvers || []);
|
11 | const extractedSchemaExtensions = asArray(config.schemaExtensions || []);
|
12 | const schemas = config.schemas || [];
|
13 | for (const schema of schemas) {
|
14 | extractedTypeDefs.push(schema);
|
15 | extractedResolvers.push(getResolversFromSchema(schema, true));
|
16 | extractedSchemaExtensions.push(extractExtensionsFromSchema(schema));
|
17 | }
|
18 | return makeExecutableSchema({
|
19 | parseOptions: config,
|
20 | ...config,
|
21 | typeDefs: extractedTypeDefs,
|
22 | resolvers: extractedResolvers,
|
23 | schemaExtensions: extractedSchemaExtensions,
|
24 | });
|
25 | }
|