UNPKG

graphql-import

Version:

![IMPORT_1](https://user-images.githubusercontent.com/25294569/76310705-fc621b00-62d7-11ea-9643-1670cfe6be18.gif) # graphql-import

64 lines (59 loc) 2.33 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); const core = require('@graphql-toolkit/core'); const urlLoader = require('@graphql-toolkit/url-loader'); const jsonFileLoader = require('@graphql-toolkit/json-file-loader'); const graphqlFileLoader = require('@graphql-toolkit/graphql-file-loader'); const codeFileLoader = require('@graphql-toolkit/code-file-loader'); const gitLoader = require('@graphql-toolkit/git-loader'); const githubLoader = require('@graphql-toolkit/github-loader'); const apolloEngineLoader = require('@graphql-toolkit/apollo-engine-loader'); const prismaLoader = require('@graphql-toolkit/prisma-loader'); const graphql = require('graphql'); const schemaMerging = require('@graphql-toolkit/schema-merging'); const DEFAULT_SCHEMA_LOADERS = [ new urlLoader.UrlLoader(), new jsonFileLoader.JsonFileLoader(), new graphqlFileLoader.GraphQLFileLoader(), new codeFileLoader.CodeFileLoader(), new gitLoader.GitLoader(), new githubLoader.GithubLoader(), new apolloEngineLoader.ApolloEngineLoader(), new prismaLoader.PrismaLoader() ]; async function importSchema(pointerOrPointers, options = {}) { const allOptions = { loaders: DEFAULT_SCHEMA_LOADERS, filterKinds: core.OPERATION_KINDS, sort: false, forceGraphQLImport: true, useSchemaDefinition: false, ...options, }; const out = options.out; if (out === 'GraphQLSchema') { return core.loadSchema(pointerOrPointers, allOptions); } else { const results = await core.loadTypedefs(pointerOrPointers, allOptions); const mergedDocuments = schemaMerging.mergeTypeDefs(results.map(r => r.document), allOptions); if (out === 'DocumentNode') { if (typeof mergedDocuments === 'string') { return graphql.parse(mergedDocuments); } else { return mergedDocuments; } } else { if (typeof mergedDocuments === 'string') { return mergedDocuments; } else if (mergedDocuments) { return graphql.print(mergedDocuments); } return ''; } } } exports.importSchema = importSchema;