1 | import { concatAST, extendSchema } from 'graphql';
|
2 | import { loadTypedefs } from '@graphql-toolkit/core';
|
3 | import { GraphQLFileLoader } from '@graphql-toolkit/graphql-file-loader';
|
4 | import { CodeFileLoader } from '@graphql-toolkit/code-file-loader';
|
5 |
|
6 | const extendTransform = async ({ schema, config, }) => {
|
7 | try {
|
8 | const sources = await loadTypedefs(config, {
|
9 | loaders: [new GraphQLFileLoader(), new CodeFileLoader()],
|
10 | assumeValid: true,
|
11 | assumeValidSDL: true,
|
12 | });
|
13 | const mergedDefinitions = concatAST(sources.map(source => source.document));
|
14 | return extendSchema(schema, mergedDefinitions);
|
15 | }
|
16 | catch (e) {
|
17 | throw new Error(`'extend' transform requires a valid SDL string!`);
|
18 | }
|
19 | };
|
20 |
|
21 | export default extendTransform;
|
22 |
|