UNPKG

29.2 kBSource Map (JSON)View Raw
1{"version":3,"file":"index.esm.js","sources":["../../../dist-es5/batch-execute/src/prefix.js","../../../dist-es5/batch-execute/src/mergeExecutionParams.js","../../../dist-es5/batch-execute/src/splitResult.js","../../../dist-es5/batch-execute/src/createBatchingExecutor.js","../../../dist-es5/batch-execute/src/memoize.js","../../../dist-es5/batch-execute/src/getBatchingExecutor.js"],"sourcesContent":["// adapted from https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-source-graphql/src/batching/merge-queries.js\nexport function createPrefix(index) {\n return \"graphqlTools\" + index + \"_\";\n}\nexport function parseKey(prefixedKey) {\n var match = /^graphqlTools([\\d]+)_(.*)$/.exec(prefixedKey);\n if (match && match.length === 3 && !isNaN(Number(match[1])) && match[2]) {\n return { index: Number(match[1]), originalKey: match[2] };\n }\n return null;\n}\n//# sourceMappingURL=prefix.js.map","// adapted from https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-source-graphql/src/batching/merge-queries.js\nimport { __assign, __read, __spread } from \"tslib\";\nimport { visit, Kind, } from 'graphql';\nimport { createPrefix } from './prefix';\n/**\n * Merge multiple queries into a single query in such a way that query results\n * can be split and transformed as if they were obtained by running original queries.\n *\n * Merging algorithm involves several transformations:\n * 1. Replace top-level fragment spreads with inline fragments (... on Query {})\n * 2. Add unique aliases to all top-level query fields (including those on inline fragments)\n * 3. Prefix all variable definitions and variable usages\n * 4. Prefix names (and spreads) of fragments\n *\n * i.e transform:\n * [\n * `query Foo($id: ID!) { foo, bar(id: $id), ...FooQuery }\n * fragment FooQuery on Query { baz }`,\n *\n * `query Bar($id: ID!) { foo: baz, bar(id: $id), ... on Query { baz } }`\n * ]\n * to:\n * query (\n * $graphqlTools1_id: ID!\n * $graphqlTools2_id: ID!\n * ) {\n * graphqlTools1_foo: foo,\n * graphqlTools1_bar: bar(id: $graphqlTools1_id)\n * ... on Query {\n * graphqlTools1__baz: baz\n * }\n * graphqlTools1__foo: baz\n * graphqlTools1__bar: bar(id: $graphqlTools1__id)\n * ... on Query {\n * graphqlTools1__baz: baz\n * }\n * }\n */\nexport function mergeExecutionParams(execs, extensionsReducer) {\n var mergedVariables = Object.create(null);\n var mergedVariableDefinitions = [];\n var mergedSelections = [];\n var mergedFragmentDefinitions = [];\n var mergedExtensions = Object.create(null);\n var operation;\n execs.forEach(function (executionParams, index) {\n var prefixedExecutionParams = prefixExecutionParams(createPrefix(index), executionParams);\n prefixedExecutionParams.document.definitions.forEach(function (def) {\n var _a;\n if (isOperationDefinition(def)) {\n operation = def.operation;\n mergedSelections.push.apply(mergedSelections, __spread(def.selectionSet.selections));\n mergedVariableDefinitions.push.apply(mergedVariableDefinitions, __spread(((_a = def.variableDefinitions) !== null && _a !== void 0 ? _a : [])));\n }\n if (isFragmentDefinition(def)) {\n mergedFragmentDefinitions.push(def);\n }\n });\n Object.assign(mergedVariables, prefixedExecutionParams.variables);\n mergedExtensions = extensionsReducer(mergedExtensions, executionParams);\n });\n var mergedOperationDefinition = {\n kind: Kind.OPERATION_DEFINITION,\n operation: operation,\n variableDefinitions: mergedVariableDefinitions,\n selectionSet: {\n kind: Kind.SELECTION_SET,\n selections: mergedSelections,\n },\n };\n return {\n document: {\n kind: Kind.DOCUMENT,\n definitions: __spread([mergedOperationDefinition], mergedFragmentDefinitions),\n },\n variables: mergedVariables,\n extensions: mergedExtensions,\n context: execs[0].context,\n info: execs[0].info,\n };\n}\nfunction prefixExecutionParams(prefix, executionParams) {\n var _a;\n var document = aliasTopLevelFields(prefix, executionParams.document);\n var variableNames = Object.keys(executionParams.variables);\n if (variableNames.length === 0) {\n return __assign(__assign({}, executionParams), { document: document });\n }\n document = visit(document, (_a = {},\n _a[Kind.VARIABLE] = function (node) { return prefixNodeName(node, prefix); },\n _a[Kind.FRAGMENT_DEFINITION] = function (node) { return prefixNodeName(node, prefix); },\n _a[Kind.FRAGMENT_SPREAD] = function (node) { return prefixNodeName(node, prefix); },\n _a));\n var prefixedVariables = variableNames.reduce(function (acc, name) {\n acc[prefix + name] = executionParams.variables[name];\n return acc;\n }, Object.create(null));\n return {\n document: document,\n variables: prefixedVariables,\n };\n}\n/**\n * Adds prefixed aliases to top-level fields of the query.\n *\n * @see aliasFieldsInSelection for implementation details\n */\nfunction aliasTopLevelFields(prefix, document) {\n var _a, _b;\n var transformer = (_a = {},\n _a[Kind.OPERATION_DEFINITION] = function (def) {\n var selections = def.selectionSet.selections;\n return __assign(__assign({}, def), { selectionSet: __assign(__assign({}, def.selectionSet), { selections: aliasFieldsInSelection(prefix, selections, document) }) });\n },\n _a);\n return visit(document, transformer, (_b = {}, _b[Kind.DOCUMENT] = [\"definitions\"], _b));\n}\n/**\n * Add aliases to fields of the selection, including top-level fields of inline fragments.\n * Fragment spreads are converted to inline fragments and their top-level fields are also aliased.\n *\n * Note that this method is shallow. It adds aliases only to the top-level fields and doesn't\n * descend to field sub-selections.\n *\n * For example, transforms:\n * {\n * foo\n * ... on Query { foo }\n * ...FragmentWithBarField\n * }\n * To:\n * {\n * graphqlTools1_foo: foo\n * ... on Query { graphqlTools1_foo: foo }\n * ... on Query { graphqlTools1_bar: bar }\n * }\n */\nfunction aliasFieldsInSelection(prefix, selections, document) {\n return selections.map(function (selection) {\n switch (selection.kind) {\n case Kind.INLINE_FRAGMENT:\n return aliasFieldsInInlineFragment(prefix, selection, document);\n case Kind.FRAGMENT_SPREAD: {\n var inlineFragment = inlineFragmentSpread(selection, document);\n return aliasFieldsInInlineFragment(prefix, inlineFragment, document);\n }\n case Kind.FIELD:\n default:\n return aliasField(selection, prefix);\n }\n });\n}\n/**\n * Add aliases to top-level fields of the inline fragment.\n * Returns new inline fragment node.\n *\n * For Example, transforms:\n * ... on Query { foo, ... on Query { bar: foo } }\n * To\n * ... on Query { graphqlTools1_foo: foo, ... on Query { graphqlTools1_bar: foo } }\n */\nfunction aliasFieldsInInlineFragment(prefix, fragment, document) {\n var selections = fragment.selectionSet.selections;\n return __assign(__assign({}, fragment), { selectionSet: __assign(__assign({}, fragment.selectionSet), { selections: aliasFieldsInSelection(prefix, selections, document) }) });\n}\n/**\n * Replaces fragment spread with inline fragment\n *\n * Example:\n * query { ...Spread }\n * fragment Spread on Query { bar }\n *\n * Transforms to:\n * query { ... on Query { bar } }\n */\nfunction inlineFragmentSpread(spread, document) {\n var fragment = document.definitions.find(function (def) { return isFragmentDefinition(def) && def.name.value === spread.name.value; });\n if (!fragment) {\n throw new Error(\"Fragment \" + spread.name.value + \" does not exist\");\n }\n var typeCondition = fragment.typeCondition, selectionSet = fragment.selectionSet;\n return {\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: typeCondition,\n selectionSet: selectionSet,\n directives: spread.directives,\n };\n}\nfunction prefixNodeName(namedNode, prefix) {\n return __assign(__assign({}, namedNode), { name: __assign(__assign({}, namedNode.name), { value: prefix + namedNode.name.value }) });\n}\n/**\n * Returns a new FieldNode with prefixed alias\n *\n * Example. Given prefix === \"graphqlTools1_\" transforms:\n * { foo } -> { graphqlTools1_foo: foo }\n * { foo: bar } -> { graphqlTools1_foo: bar }\n */\nfunction aliasField(field, aliasPrefix) {\n var aliasNode = field.alias ? field.alias : field.name;\n return __assign(__assign({}, field), { alias: __assign(__assign({}, aliasNode), { value: aliasPrefix + aliasNode.value }) });\n}\nfunction isOperationDefinition(def) {\n return def.kind === Kind.OPERATION_DEFINITION;\n}\nfunction isFragmentDefinition(def) {\n return def.kind === Kind.FRAGMENT_DEFINITION;\n}\n//# sourceMappingURL=mergeExecutionParams.js.map","// adapted from https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-source-graphql/src/batching/merge-queries.js\nimport { __read, __spread } from \"tslib\";\nimport { relocatedError } from '@graphql-tools/utils';\nimport { parseKey } from './prefix';\n/**\n * Split and transform result of the query produced by the `merge` function\n */\nexport function splitResult(mergedResult, numResults) {\n var splitResults = [];\n for (var i = 0; i < numResults; i++) {\n splitResults.push({});\n }\n var data = mergedResult.data;\n if (data) {\n Object.keys(data).forEach(function (prefixedKey) {\n var _a;\n var _b = parseKey(prefixedKey), index = _b.index, originalKey = _b.originalKey;\n if (!splitResults[index].data) {\n splitResults[index].data = (_a = {}, _a[originalKey] = data[prefixedKey], _a);\n }\n else {\n splitResults[index].data[originalKey] = data[prefixedKey];\n }\n });\n }\n var errors = mergedResult.errors;\n if (errors) {\n var newErrors_1 = Object.create(null);\n errors.forEach(function (error) {\n if (error.path) {\n var parsedKey = parseKey(error.path[0]);\n if (parsedKey) {\n var index = parsedKey.index, originalKey = parsedKey.originalKey;\n var newError = relocatedError(error, __spread([originalKey], error.path.slice(1)));\n if (!newErrors_1[index]) {\n newErrors_1[index] = [newError];\n }\n else {\n newErrors_1[index].push(newError);\n }\n return;\n }\n }\n splitResults.forEach(function (_splitResult, index) {\n if (!newErrors_1[index]) {\n newErrors_1[index] = [error];\n }\n else {\n newErrors_1[index].push(error);\n }\n });\n });\n Object.keys(newErrors_1).forEach(function (index) {\n splitResults[index].errors = newErrors_1[index];\n });\n }\n return splitResults;\n}\n//# sourceMappingURL=splitResult.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { getOperationAST } from 'graphql';\nimport isPromise from 'is-promise';\nimport DataLoader from 'dataloader';\nimport { mergeExecutionParams } from './mergeExecutionParams';\nimport { splitResult } from './splitResult';\nexport function createBatchingExecutor(executor, dataLoaderOptions, extensionsReducer) {\n var loader = new DataLoader(createLoadFn(executor, extensionsReducer !== null && extensionsReducer !== void 0 ? extensionsReducer : defaultExtensionsReducer), dataLoaderOptions);\n return function (executionParams) { return loader.load(executionParams); };\n}\nfunction createLoadFn(executor, extensionsReducer) {\n var _this = this;\n return function (execs) { return __awaiter(_this, void 0, void 0, function () {\n var execBatches, index, exec, currentBatch, operationType, currentOperationType, containsPromises, executionResults, results;\n return __generator(this, function (_a) {\n execBatches = [];\n index = 0;\n exec = execs[index];\n currentBatch = [exec];\n execBatches.push(currentBatch);\n operationType = getOperationAST(exec.document, undefined).operation;\n while (++index < execs.length) {\n currentOperationType = getOperationAST(execs[index].document, undefined).operation;\n if (operationType === currentOperationType) {\n currentBatch.push(execs[index]);\n }\n else {\n currentBatch = [execs[index]];\n execBatches.push(currentBatch);\n }\n }\n containsPromises = false;\n executionResults = [];\n execBatches.forEach(function (execBatch) {\n var mergedExecutionParams = mergeExecutionParams(execBatch, extensionsReducer);\n var executionResult = executor(mergedExecutionParams);\n if (isPromise(executionResult)) {\n containsPromises = true;\n }\n executionResults.push(executionResult);\n });\n if (containsPromises) {\n return [2 /*return*/, Promise.all(executionResults).then(function (resultBatches) {\n var results = [];\n resultBatches.forEach(function (resultBatch, index) {\n results = results.concat(splitResult(resultBatch, execBatches[index].length));\n });\n return results;\n })];\n }\n results = [];\n executionResults.forEach(function (resultBatch, index) {\n results = results.concat(splitResult(resultBatch, execBatches[index].length));\n });\n return [2 /*return*/, results];\n });\n }); };\n}\nfunction defaultExtensionsReducer(mergedExtensions, executionParams) {\n var newExtensions = executionParams.extensions;\n if (newExtensions != null) {\n Object.assign(mergedExtensions, newExtensions);\n }\n return mergedExtensions;\n}\n//# sourceMappingURL=createBatchingExecutor.js.map","export function memoize2of4(fn) {\n var cache1;\n function memoized(a1, a2, a3, a4) {\n if (!cache1) {\n cache1 = new WeakMap();\n var cache2_1 = new WeakMap();\n cache1.set(a1, cache2_1);\n var newValue = fn(a1, a2, a3, a4);\n cache2_1.set(a2, newValue);\n return newValue;\n }\n var cache2 = cache1.get(a1);\n if (!cache2) {\n cache2 = new WeakMap();\n cache1.set(a1, cache2);\n var newValue = fn(a1, a2, a3, a4);\n cache2.set(a2, newValue);\n return newValue;\n }\n var cachedValue = cache2.get(a2);\n if (cachedValue === undefined) {\n var newValue = fn(a1, a2, a3, a4);\n cache2.set(a2, newValue);\n return newValue;\n }\n return cachedValue;\n }\n return memoized;\n}\n//# sourceMappingURL=memoize.js.map","import { createBatchingExecutor } from './createBatchingExecutor';\nimport { memoize2of4 } from './memoize';\nexport var getBatchingExecutor = memoize2of4(function (_context, executor, dataLoaderOptions, extensionsReducer) {\n var _a;\n if (_context === void 0) { _context = (_a = self !== null && self !== void 0 ? self : window) !== null && _a !== void 0 ? _a : global; }\n return createBatchingExecutor(executor, dataLoaderOptions, extensionsReducer);\n});\n//# sourceMappingURL=getBatchingExecutor.js.map"],"names":[],"mappings":"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"}
\No newline at end of file