UNPKG

@graphql-tools/external-fragment-loader

Version:

A GraphQL loader that resolves cross-package fragment dependencies from external packages

33 lines (32 loc) • 1.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ExternalFragmentLoader = void 0; exports.default = externalFragmentLoader; const graphql_1 = require("graphql"); const resolve_js_1 = require("./resolve.js"); function mergeResolvedDocuments(resolvedFiles) { return (0, graphql_1.concatAST)(resolvedFiles.flatMap(file => file.sources.map(source => source.document))); } function externalFragmentLoader(_pointer, options) { if (options.async === true) { return (0, resolve_js_1.resolveExternalFragmentsWithSources)(options).then(mergeResolvedDocuments); } return mergeResolvedDocuments((0, resolve_js_1.resolveExternalFragmentsSyncWithSources)(options)); } class ExternalFragmentLoader { async load(_pointer, options) { const resolvedFiles = await (0, resolve_js_1.resolveExternalFragmentsWithSources)(options); return resolvedFiles.flatMap(file => file.sources.map(source => ({ location: file.filePath, ...source, }))); } loadSync(_pointer, options) { const resolvedFiles = (0, resolve_js_1.resolveExternalFragmentsSyncWithSources)(options); return resolvedFiles.flatMap(file => file.sources.map(source => ({ location: file.filePath, ...source, }))); } } exports.ExternalFragmentLoader = ExternalFragmentLoader;