@apollo/client 3.7.0-beta.6 → 3.7.0-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/README.md +2 -0
  2. package/apollo-client.cjs +522 -188
  3. package/apollo-client.cjs.map +1 -1
  4. package/apollo-client.min.cjs +1 -1
  5. package/cache/cache.cjs +175 -48
  6. package/cache/cache.cjs.map +1 -1
  7. package/cache/cache.cjs.native.js +175 -48
  8. package/cache/core/cache.d.ts +1 -1
  9. package/cache/core/cache.d.ts.map +1 -1
  10. package/cache/core/cache.js +3 -3
  11. package/cache/core/cache.js.map +1 -1
  12. package/cache/core/types/common.d.ts +1 -1
  13. package/cache/core/types/common.d.ts.map +1 -1
  14. package/cache/core/types/common.js +16 -11
  15. package/cache/core/types/common.js.map +1 -1
  16. package/cache/index.d.ts +2 -1
  17. package/cache/index.d.ts.map +1 -1
  18. package/cache/index.js +1 -0
  19. package/cache/index.js.map +1 -1
  20. package/cache/inmemory/fragmentRegistry.d.ts +8 -0
  21. package/cache/inmemory/fragmentRegistry.d.ts.map +1 -0
  22. package/cache/inmemory/fragmentRegistry.js +113 -0
  23. package/cache/inmemory/fragmentRegistry.js.map +1 -0
  24. package/cache/inmemory/helpers.d.ts +9 -3
  25. package/cache/inmemory/helpers.d.ts.map +1 -1
  26. package/cache/inmemory/helpers.js +23 -6
  27. package/cache/inmemory/helpers.js.map +1 -1
  28. package/cache/inmemory/inMemoryCache.d.ts +1 -0
  29. package/cache/inmemory/inMemoryCache.d.ts.map +1 -1
  30. package/cache/inmemory/inMemoryCache.js +9 -1
  31. package/cache/inmemory/inMemoryCache.js.map +1 -1
  32. package/cache/inmemory/readFromStore.d.ts +2 -1
  33. package/cache/inmemory/readFromStore.d.ts.map +1 -1
  34. package/cache/inmemory/readFromStore.js +10 -14
  35. package/cache/inmemory/readFromStore.js.map +1 -1
  36. package/cache/inmemory/types.d.ts +2 -0
  37. package/cache/inmemory/types.d.ts.map +1 -1
  38. package/cache/inmemory/types.js.map +1 -1
  39. package/cache/inmemory/writeToStore.d.ts +5 -3
  40. package/cache/inmemory/writeToStore.d.ts.map +1 -1
  41. package/cache/inmemory/writeToStore.js +12 -19
  42. package/cache/inmemory/writeToStore.js.map +1 -1
  43. package/core/ApolloClient.js +2 -2
  44. package/core/LocalState.js +1 -1
  45. package/core/ObservableQuery.d.ts.map +1 -1
  46. package/core/ObservableQuery.js +2 -2
  47. package/core/ObservableQuery.js.map +1 -1
  48. package/core/QueryInfo.d.ts +1 -1
  49. package/core/QueryInfo.d.ts.map +1 -1
  50. package/core/QueryInfo.js +26 -4
  51. package/core/QueryInfo.js.map +1 -1
  52. package/core/QueryManager.d.ts.map +1 -1
  53. package/core/QueryManager.js +36 -23
  54. package/core/QueryManager.js.map +1 -1
  55. package/core/core.cjs +70 -33
  56. package/core/core.cjs.map +1 -1
  57. package/core/core.cjs.native.js +70 -33
  58. package/core/types.d.ts.map +1 -1
  59. package/core/types.js.map +1 -1
  60. package/invariantErrorCodes.js +59 -49
  61. package/link/batch-http/batch-http.cjs +2 -2
  62. package/link/batch-http/batch-http.cjs.map +1 -1
  63. package/link/batch-http/batch-http.cjs.native.js +2 -2
  64. package/link/batch-http/batchHttpLink.d.ts.map +1 -1
  65. package/link/batch-http/batchHttpLink.js +2 -2
  66. package/link/batch-http/batchHttpLink.js.map +1 -1
  67. package/link/core/ApolloLink.js +1 -1
  68. package/link/core/core.cjs +1 -1
  69. package/link/core/core.cjs.map +1 -1
  70. package/link/core/core.cjs.native.js +1 -1
  71. package/link/core/types.d.ts +30 -5
  72. package/link/core/types.d.ts.map +1 -1
  73. package/link/core/types.js +0 -1
  74. package/link/core/types.js.map +1 -1
  75. package/link/http/checkFetcher.js +1 -1
  76. package/link/http/createHttpLink.d.ts.map +1 -1
  77. package/link/http/createHttpLink.js +16 -19
  78. package/link/http/createHttpLink.js.map +1 -1
  79. package/link/http/http.cjs +335 -55
  80. package/link/http/http.cjs.map +1 -1
  81. package/link/http/http.cjs.native.js +335 -55
  82. package/link/http/iterators/async.d.ts +2 -0
  83. package/link/http/iterators/async.d.ts.map +1 -0
  84. package/link/http/iterators/async.js +14 -0
  85. package/link/http/iterators/async.js.map +1 -0
  86. package/link/http/iterators/nodeStream.d.ts +4 -0
  87. package/link/http/iterators/nodeStream.d.ts.map +1 -0
  88. package/link/http/iterators/nodeStream.js +71 -0
  89. package/link/http/iterators/nodeStream.js.map +1 -0
  90. package/link/http/iterators/promise.d.ts +2 -0
  91. package/link/http/iterators/promise.d.ts.map +1 -0
  92. package/link/http/iterators/promise.js +28 -0
  93. package/link/http/iterators/promise.js.map +1 -0
  94. package/link/http/iterators/reader.d.ts +2 -0
  95. package/link/http/iterators/reader.d.ts.map +1 -0
  96. package/link/http/iterators/reader.js +15 -0
  97. package/link/http/iterators/reader.js.map +1 -0
  98. package/link/http/parseAndCheckHttpResponse.d.ts +7 -1
  99. package/link/http/parseAndCheckHttpResponse.d.ts.map +1 -1
  100. package/link/http/parseAndCheckHttpResponse.js +131 -27
  101. package/link/http/parseAndCheckHttpResponse.js.map +1 -1
  102. package/link/http/responseIterator.d.ts +3 -0
  103. package/link/http/responseIterator.d.ts.map +1 -0
  104. package/link/http/responseIterator.js +23 -0
  105. package/link/http/responseIterator.js.map +1 -0
  106. package/link/http/selectHttpOptionsAndBody.d.ts +2 -0
  107. package/link/http/selectHttpOptionsAndBody.d.ts.map +1 -1
  108. package/link/http/selectHttpOptionsAndBody.js +17 -7
  109. package/link/http/selectHttpOptionsAndBody.js.map +1 -1
  110. package/link/http/serializeFetchParameter.js +1 -1
  111. package/link/persisted-queries/index.js +2 -2
  112. package/link/persisted-queries/persisted-queries.cjs +2 -2
  113. package/link/persisted-queries/persisted-queries.cjs.map +1 -1
  114. package/link/persisted-queries/persisted-queries.cjs.native.js +2 -2
  115. package/link/utils/utils.cjs +1 -1
  116. package/link/utils/utils.cjs.map +1 -1
  117. package/link/utils/utils.cjs.native.js +1 -1
  118. package/link/utils/validateOperation.js +1 -1
  119. package/package.json +40 -29
  120. package/react/context/ApolloConsumer.js +1 -1
  121. package/react/context/ApolloProvider.js +1 -1
  122. package/react/context/context.cjs +2 -2
  123. package/react/context/context.cjs.map +1 -1
  124. package/react/context/context.cjs.native.js +2 -2
  125. package/react/hoc/hoc-utils.js +1 -1
  126. package/react/hoc/hoc.cjs +2 -2
  127. package/react/hoc/hoc.cjs.map +1 -1
  128. package/react/hoc/hoc.cjs.native.js +2 -2
  129. package/react/hoc/withApollo.js +1 -1
  130. package/react/hooks/hooks.cjs +19 -12
  131. package/react/hooks/hooks.cjs.map +1 -1
  132. package/react/hooks/hooks.cjs.native.js +19 -12
  133. package/react/hooks/useApolloClient.js +1 -1
  134. package/react/hooks/useFragment.d.ts +2 -4
  135. package/react/hooks/useFragment.d.ts.map +1 -1
  136. package/react/hooks/useFragment.js +6 -3
  137. package/react/hooks/useFragment.js.map +1 -1
  138. package/react/hooks/useMutation.d.ts.map +1 -1
  139. package/react/hooks/useMutation.js +8 -6
  140. package/react/hooks/useMutation.js.map +1 -1
  141. package/react/hooks/useQuery.d.ts.map +1 -1
  142. package/react/hooks/useQuery.js +1 -1
  143. package/react/hooks/useQuery.js.map +1 -1
  144. package/react/hooks/useSubscription.d.ts.map +1 -1
  145. package/react/hooks/useSubscription.js +2 -0
  146. package/react/hooks/useSubscription.js.map +1 -1
  147. package/react/parser/index.js +5 -5
  148. package/react/parser/parser.cjs +5 -5
  149. package/react/parser/parser.cjs.map +1 -1
  150. package/react/parser/parser.cjs.native.js +5 -5
  151. package/react/types/types.d.ts +3 -3
  152. package/react/types/types.d.ts.map +1 -1
  153. package/react/types/types.js.map +1 -1
  154. package/testing/core/core.cjs +2 -2
  155. package/testing/core/core.cjs.map +1 -1
  156. package/testing/core/core.cjs.native.js +2 -2
  157. package/testing/core/itAsync.d.ts +3 -3
  158. package/testing/core/itAsync.d.ts.map +1 -1
  159. package/testing/core/mocking/mockLink.js +2 -2
  160. package/testing/core/mocking/mockLink.js.map +1 -1
  161. package/testing/core/subscribeAndCount.d.ts +2 -3
  162. package/testing/core/subscribeAndCount.d.ts.map +1 -1
  163. package/testing/core/subscribeAndCount.js.map +1 -1
  164. package/utilities/common/canUse.d.ts +1 -0
  165. package/utilities/common/canUse.d.ts.map +1 -1
  166. package/utilities/common/canUse.js +1 -0
  167. package/utilities/common/canUse.js.map +1 -1
  168. package/utilities/common/incrementalResult.d.ts +3 -0
  169. package/utilities/common/incrementalResult.d.ts.map +1 -0
  170. package/utilities/common/incrementalResult.js +4 -0
  171. package/utilities/common/incrementalResult.js.map +1 -0
  172. package/utilities/common/responseIterator.d.ts +10 -0
  173. package/utilities/common/responseIterator.d.ts.map +1 -0
  174. package/utilities/common/responseIterator.js +21 -0
  175. package/utilities/common/responseIterator.js.map +1 -0
  176. package/utilities/globals/globals.cjs +1 -1
  177. package/utilities/globals/globals.cjs.map +1 -1
  178. package/utilities/globals/globals.cjs.native.js +1 -1
  179. package/utilities/globals/index.js +1 -1
  180. package/utilities/graphql/directives.d.ts +3 -1
  181. package/utilities/graphql/directives.d.ts.map +1 -1
  182. package/utilities/graphql/directives.js +20 -10
  183. package/utilities/graphql/directives.js.map +1 -1
  184. package/utilities/graphql/fragments.d.ts +2 -1
  185. package/utilities/graphql/fragments.d.ts.map +1 -1
  186. package/utilities/graphql/fragments.js +9 -5
  187. package/utilities/graphql/fragments.js.map +1 -1
  188. package/utilities/graphql/getFromAST.js +8 -8
  189. package/utilities/graphql/storeUtils.d.ts +1 -1
  190. package/utilities/graphql/storeUtils.d.ts.map +1 -1
  191. package/utilities/graphql/storeUtils.js +1 -1
  192. package/utilities/graphql/transform.d.ts.map +1 -1
  193. package/utilities/graphql/transform.js +3 -5
  194. package/utilities/graphql/transform.js.map +1 -1
  195. package/utilities/index.d.ts +2 -2
  196. package/utilities/index.d.ts.map +1 -1
  197. package/utilities/index.js +1 -1
  198. package/utilities/index.js.map +1 -1
  199. package/utilities/utilities.cjs +44 -28
  200. package/utilities/utilities.cjs.map +1 -1
  201. package/utilities/utilities.cjs.native.js +44 -28
  202. package/version.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"core.cjs","sources":["mocking/mockLink.js","mocking/mockSubscriptionLink.js","mocking/mockClient.js","subscribeAndCount.js","itAsync.js","withConsoleSpy.js"],"sourcesContent":["import { __extends } from \"tslib\";\nimport { invariant } from '../../../utilities/globals';\nimport { print } from 'graphql';\nimport { equal } from '@wry/equality';\nimport { ApolloLink, } from '../../../link/core';\nimport { Observable, addTypenameToDocument, removeClientSetsFromDocument, removeConnectionDirectiveFromDocument, cloneDeep, stringifyForDisplay, } from '../../../utilities';\nfunction requestToKey(request, addTypename) {\n var queryString = request.query &&\n print(addTypename ? addTypenameToDocument(request.query) : request.query);\n var requestKey = { query: queryString };\n return JSON.stringify(requestKey);\n}\nvar MockLink = (function (_super) {\n __extends(MockLink, _super);\n function MockLink(mockedResponses, addTypename) {\n if (addTypename === void 0) { addTypename = true; }\n var _this = _super.call(this) || this;\n _this.addTypename = true;\n _this.mockedResponsesByKey = {};\n _this.addTypename = addTypename;\n if (mockedResponses) {\n mockedResponses.forEach(function (mockedResponse) {\n _this.addMockedResponse(mockedResponse);\n });\n }\n return _this;\n }\n MockLink.prototype.addMockedResponse = function (mockedResponse) {\n var normalizedMockedResponse = this.normalizeMockedResponse(mockedResponse);\n var key = requestToKey(normalizedMockedResponse.request, this.addTypename);\n var mockedResponses = this.mockedResponsesByKey[key];\n if (!mockedResponses) {\n mockedResponses = [];\n this.mockedResponsesByKey[key] = mockedResponses;\n }\n mockedResponses.push(normalizedMockedResponse);\n };\n MockLink.prototype.request = function (operation) {\n var _this = this;\n this.operation = operation;\n var key = requestToKey(operation, this.addTypename);\n var unmatchedVars = [];\n var requestVariables = operation.variables || {};\n var mockedResponses = this.mockedResponsesByKey[key];\n var responseIndex = mockedResponses ? mockedResponses.findIndex(function (res, index) {\n var mockedResponseVars = res.request.variables || {};\n if (equal(requestVariables, mockedResponseVars)) {\n return true;\n }\n unmatchedVars.push(mockedResponseVars);\n return false;\n }) : -1;\n var response = responseIndex >= 0\n ? mockedResponses[responseIndex]\n : void 0;\n var configError;\n if (!response) {\n configError = new Error(\"No more mocked responses for the query: \".concat(print(operation.query), \"\\nExpected variables: \").concat(stringifyForDisplay(operation.variables), \"\\n\").concat(unmatchedVars.length > 0 ? \"\\nFailed to match \".concat(unmatchedVars.length, \" mock\").concat(unmatchedVars.length === 1 ? \"\" : \"s\", \" for this query, which had the following variables:\\n\").concat(unmatchedVars.map(function (d) { return \" \".concat(stringifyForDisplay(d)); }).join('\\n'), \"\\n\") : \"\"));\n }\n else {\n mockedResponses.splice(responseIndex, 1);\n var newData = response.newData;\n if (newData) {\n response.result = newData();\n mockedResponses.push(response);\n }\n if (!response.result && !response.error) {\n configError = new Error(\"Mocked response should contain either result or error: \".concat(key));\n }\n }\n return new Observable(function (observer) {\n var timer = setTimeout(function () {\n if (configError) {\n try {\n if (_this.onError(configError, observer) !== false) {\n throw configError;\n }\n }\n catch (error) {\n observer.error(error);\n }\n }\n else if (response) {\n if (response.error) {\n observer.error(response.error);\n }\n else {\n if (response.result) {\n observer.next(typeof response.result === 'function'\n ? response.result()\n : response.result);\n }\n observer.complete();\n }\n }\n }, response && response.delay || 0);\n return function () {\n clearTimeout(timer);\n };\n });\n };\n MockLink.prototype.normalizeMockedResponse = function (mockedResponse) {\n var newMockedResponse = cloneDeep(mockedResponse);\n var queryWithoutConnection = removeConnectionDirectiveFromDocument(newMockedResponse.request.query);\n __DEV__ ? invariant(queryWithoutConnection, \"query is required\") : invariant(queryWithoutConnection, 35);\n newMockedResponse.request.query = queryWithoutConnection;\n var query = removeClientSetsFromDocument(newMockedResponse.request.query);\n if (query) {\n newMockedResponse.request.query = query;\n }\n return newMockedResponse;\n };\n return MockLink;\n}(ApolloLink));\nexport { MockLink };\nexport function mockSingleLink() {\n var mockedResponses = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n mockedResponses[_i] = arguments[_i];\n }\n var maybeTypename = mockedResponses[mockedResponses.length - 1];\n var mocks = mockedResponses.slice(0, mockedResponses.length - 1);\n if (typeof maybeTypename !== 'boolean') {\n mocks = mockedResponses;\n maybeTypename = true;\n }\n return new MockLink(mocks, maybeTypename);\n}\n//# sourceMappingURL=mockLink.js.map","import { __extends } from \"tslib\";\nimport { Observable } from '../../../utilities';\nimport { ApolloLink } from '../../../link/core';\nvar MockSubscriptionLink = (function (_super) {\n __extends(MockSubscriptionLink, _super);\n function MockSubscriptionLink() {\n var _this = _super.call(this) || this;\n _this.unsubscribers = [];\n _this.setups = [];\n _this.observers = [];\n return _this;\n }\n MockSubscriptionLink.prototype.request = function (operation) {\n var _this = this;\n this.operation = operation;\n return new Observable(function (observer) {\n _this.setups.forEach(function (x) { return x(); });\n _this.observers.push(observer);\n return function () {\n _this.unsubscribers.forEach(function (x) { return x(); });\n };\n });\n };\n MockSubscriptionLink.prototype.simulateResult = function (result, complete) {\n var _this = this;\n if (complete === void 0) { complete = false; }\n setTimeout(function () {\n var observers = _this.observers;\n if (!observers.length)\n throw new Error('subscription torn down');\n observers.forEach(function (observer) {\n if (result.result && observer.next)\n observer.next(result.result);\n if (result.error && observer.error)\n observer.error(result.error);\n if (complete && observer.complete)\n observer.complete();\n });\n }, result.delay || 0);\n };\n MockSubscriptionLink.prototype.simulateComplete = function () {\n var observers = this.observers;\n if (!observers.length)\n throw new Error('subscription torn down');\n observers.forEach(function (observer) {\n if (observer.complete)\n observer.complete();\n });\n };\n MockSubscriptionLink.prototype.onSetup = function (listener) {\n this.setups = this.setups.concat([listener]);\n };\n MockSubscriptionLink.prototype.onUnsubscribe = function (listener) {\n this.unsubscribers = this.unsubscribers.concat([listener]);\n };\n return MockSubscriptionLink;\n}(ApolloLink));\nexport { MockSubscriptionLink };\nexport function mockObservableLink() {\n return new MockSubscriptionLink();\n}\n//# sourceMappingURL=mockSubscriptionLink.js.map","import { ApolloClient } from '../../../core';\nimport { InMemoryCache } from '../../../cache';\nimport { mockSingleLink } from './mockLink';\nexport function createMockClient(data, query, variables) {\n if (variables === void 0) { variables = {}; }\n return new ApolloClient({\n link: mockSingleLink({\n request: { query: query, variables: variables },\n result: { data: data },\n }).setOnError(function (error) { throw error; }),\n cache: new InMemoryCache({ addTypename: false }),\n });\n}\n//# sourceMappingURL=mockClient.js.map","import { asyncMap } from '../../utilities';\nexport default function subscribeAndCount(reject, observable, cb) {\n var queue = Promise.resolve();\n var handleCount = 0;\n var subscription = asyncMap(observable, function (result) {\n return queue = queue.then(function () {\n return cb(++handleCount, result);\n }).catch(error);\n }).subscribe({ error: error });\n function error(e) {\n subscription.unsubscribe();\n reject(e);\n }\n return subscription;\n}\n//# sourceMappingURL=subscribeAndCount.js.map","function wrap(key) {\n return function (message, callback, timeout) { return (key ? it[key] : it)(message, function () {\n var _this = this;\n return new Promise(function (resolve, reject) { return callback.call(_this, resolve, reject); });\n }, timeout); };\n}\nvar wrappedIt = wrap();\nexport var itAsync = Object.assign(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return wrappedIt.apply(this, args);\n}, {\n only: wrap(\"only\"),\n skip: wrap(\"skip\"),\n todo: wrap(\"todo\"),\n});\n//# sourceMappingURL=itAsync.js.map","function wrapTestFunction(fn, consoleMethodName) {\n return function () {\n var _this = this;\n var args = arguments;\n var spy = jest.spyOn(console, consoleMethodName);\n spy.mockImplementation(function () { });\n return new Promise(function (resolve) {\n resolve(fn === null || fn === void 0 ? void 0 : fn.apply(_this, args));\n }).finally(function () {\n expect(spy).toMatchSnapshot();\n spy.mockReset();\n });\n };\n}\nexport function withErrorSpy(it) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n args[1] = wrapTestFunction(args[1], \"error\");\n return it.apply(void 0, args);\n}\nexport function withWarningSpy(it) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n args[1] = wrapTestFunction(args[1], \"warn\");\n return it.apply(void 0, args);\n}\nexport function withLogSpy(it) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n args[1] = wrapTestFunction(args[1], \"log\");\n return it.apply(void 0, args);\n}\n//# sourceMappingURL=withConsoleSpy.js.map"],"names":["print","addTypenameToDocument","__extends","equal","stringifyForDisplay","Observable","cloneDeep","removeConnectionDirectiveFromDocument","invariant","removeClientSetsFromDocument","ApolloLink","ApolloClient","InMemoryCache","asyncMap"],"mappings":"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"}
1
+ {"version":3,"file":"core.cjs","sources":["mocking/mockLink.js","mocking/mockSubscriptionLink.js","mocking/mockClient.js","subscribeAndCount.js","itAsync.js","withConsoleSpy.js"],"sourcesContent":["import { __extends } from \"tslib\";\nimport { invariant } from '../../../utilities/globals';\nimport { print } from 'graphql';\nimport { equal } from '@wry/equality';\nimport { ApolloLink, } from '../../../link/core';\nimport { Observable, addTypenameToDocument, removeClientSetsFromDocument, removeConnectionDirectiveFromDocument, cloneDeep, stringifyForDisplay, } from '../../../utilities';\nfunction requestToKey(request, addTypename) {\n var queryString = request.query &&\n print(addTypename ? addTypenameToDocument(request.query) : request.query);\n var requestKey = { query: queryString };\n return JSON.stringify(requestKey);\n}\nvar MockLink = (function (_super) {\n __extends(MockLink, _super);\n function MockLink(mockedResponses, addTypename) {\n if (addTypename === void 0) { addTypename = true; }\n var _this = _super.call(this) || this;\n _this.addTypename = true;\n _this.mockedResponsesByKey = {};\n _this.addTypename = addTypename;\n if (mockedResponses) {\n mockedResponses.forEach(function (mockedResponse) {\n _this.addMockedResponse(mockedResponse);\n });\n }\n return _this;\n }\n MockLink.prototype.addMockedResponse = function (mockedResponse) {\n var normalizedMockedResponse = this.normalizeMockedResponse(mockedResponse);\n var key = requestToKey(normalizedMockedResponse.request, this.addTypename);\n var mockedResponses = this.mockedResponsesByKey[key];\n if (!mockedResponses) {\n mockedResponses = [];\n this.mockedResponsesByKey[key] = mockedResponses;\n }\n mockedResponses.push(normalizedMockedResponse);\n };\n MockLink.prototype.request = function (operation) {\n var _this = this;\n this.operation = operation;\n var key = requestToKey(operation, this.addTypename);\n var unmatchedVars = [];\n var requestVariables = operation.variables || {};\n var mockedResponses = this.mockedResponsesByKey[key];\n var responseIndex = mockedResponses ? mockedResponses.findIndex(function (res, index) {\n var mockedResponseVars = res.request.variables || {};\n if (equal(requestVariables, mockedResponseVars)) {\n return true;\n }\n unmatchedVars.push(mockedResponseVars);\n return false;\n }) : -1;\n var response = responseIndex >= 0\n ? mockedResponses[responseIndex]\n : void 0;\n var configError;\n if (!response) {\n configError = new Error(\"No more mocked responses for the query: \".concat(print(operation.query), \"\\nExpected variables: \").concat(stringifyForDisplay(operation.variables), \"\\n\").concat(unmatchedVars.length > 0 ? \"\\nFailed to match \".concat(unmatchedVars.length, \" mock\").concat(unmatchedVars.length === 1 ? \"\" : \"s\", \" for this query. The mocked response had the following variables:\\n\").concat(unmatchedVars.map(function (d) { return \" \".concat(stringifyForDisplay(d)); }).join('\\n'), \"\\n\") : \"\"));\n }\n else {\n mockedResponses.splice(responseIndex, 1);\n var newData = response.newData;\n if (newData) {\n response.result = newData();\n mockedResponses.push(response);\n }\n if (!response.result && !response.error) {\n configError = new Error(\"Mocked response should contain either result or error: \".concat(key));\n }\n }\n return new Observable(function (observer) {\n var timer = setTimeout(function () {\n if (configError) {\n try {\n if (_this.onError(configError, observer) !== false) {\n throw configError;\n }\n }\n catch (error) {\n observer.error(error);\n }\n }\n else if (response) {\n if (response.error) {\n observer.error(response.error);\n }\n else {\n if (response.result) {\n observer.next(typeof response.result === 'function'\n ? response.result()\n : response.result);\n }\n observer.complete();\n }\n }\n }, response && response.delay || 0);\n return function () {\n clearTimeout(timer);\n };\n });\n };\n MockLink.prototype.normalizeMockedResponse = function (mockedResponse) {\n var newMockedResponse = cloneDeep(mockedResponse);\n var queryWithoutConnection = removeConnectionDirectiveFromDocument(newMockedResponse.request.query);\n __DEV__ ? invariant(queryWithoutConnection, \"query is required\") : invariant(queryWithoutConnection, 37);\n newMockedResponse.request.query = queryWithoutConnection;\n var query = removeClientSetsFromDocument(newMockedResponse.request.query);\n if (query) {\n newMockedResponse.request.query = query;\n }\n return newMockedResponse;\n };\n return MockLink;\n}(ApolloLink));\nexport { MockLink };\nexport function mockSingleLink() {\n var mockedResponses = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n mockedResponses[_i] = arguments[_i];\n }\n var maybeTypename = mockedResponses[mockedResponses.length - 1];\n var mocks = mockedResponses.slice(0, mockedResponses.length - 1);\n if (typeof maybeTypename !== 'boolean') {\n mocks = mockedResponses;\n maybeTypename = true;\n }\n return new MockLink(mocks, maybeTypename);\n}\n//# sourceMappingURL=mockLink.js.map","import { __extends } from \"tslib\";\nimport { Observable } from '../../../utilities';\nimport { ApolloLink } from '../../../link/core';\nvar MockSubscriptionLink = (function (_super) {\n __extends(MockSubscriptionLink, _super);\n function MockSubscriptionLink() {\n var _this = _super.call(this) || this;\n _this.unsubscribers = [];\n _this.setups = [];\n _this.observers = [];\n return _this;\n }\n MockSubscriptionLink.prototype.request = function (operation) {\n var _this = this;\n this.operation = operation;\n return new Observable(function (observer) {\n _this.setups.forEach(function (x) { return x(); });\n _this.observers.push(observer);\n return function () {\n _this.unsubscribers.forEach(function (x) { return x(); });\n };\n });\n };\n MockSubscriptionLink.prototype.simulateResult = function (result, complete) {\n var _this = this;\n if (complete === void 0) { complete = false; }\n setTimeout(function () {\n var observers = _this.observers;\n if (!observers.length)\n throw new Error('subscription torn down');\n observers.forEach(function (observer) {\n if (result.result && observer.next)\n observer.next(result.result);\n if (result.error && observer.error)\n observer.error(result.error);\n if (complete && observer.complete)\n observer.complete();\n });\n }, result.delay || 0);\n };\n MockSubscriptionLink.prototype.simulateComplete = function () {\n var observers = this.observers;\n if (!observers.length)\n throw new Error('subscription torn down');\n observers.forEach(function (observer) {\n if (observer.complete)\n observer.complete();\n });\n };\n MockSubscriptionLink.prototype.onSetup = function (listener) {\n this.setups = this.setups.concat([listener]);\n };\n MockSubscriptionLink.prototype.onUnsubscribe = function (listener) {\n this.unsubscribers = this.unsubscribers.concat([listener]);\n };\n return MockSubscriptionLink;\n}(ApolloLink));\nexport { MockSubscriptionLink };\nexport function mockObservableLink() {\n return new MockSubscriptionLink();\n}\n//# sourceMappingURL=mockSubscriptionLink.js.map","import { ApolloClient } from '../../../core';\nimport { InMemoryCache } from '../../../cache';\nimport { mockSingleLink } from './mockLink';\nexport function createMockClient(data, query, variables) {\n if (variables === void 0) { variables = {}; }\n return new ApolloClient({\n link: mockSingleLink({\n request: { query: query, variables: variables },\n result: { data: data },\n }).setOnError(function (error) { throw error; }),\n cache: new InMemoryCache({ addTypename: false }),\n });\n}\n//# sourceMappingURL=mockClient.js.map","import { asyncMap } from '../../utilities';\nexport default function subscribeAndCount(reject, observable, cb) {\n var queue = Promise.resolve();\n var handleCount = 0;\n var subscription = asyncMap(observable, function (result) {\n return queue = queue.then(function () {\n return cb(++handleCount, result);\n }).catch(error);\n }).subscribe({ error: error });\n function error(e) {\n subscription.unsubscribe();\n reject(e);\n }\n return subscription;\n}\n//# sourceMappingURL=subscribeAndCount.js.map","function wrap(key) {\n return function (message, callback, timeout) { return (key ? it[key] : it)(message, function () {\n var _this = this;\n return new Promise(function (resolve, reject) { return callback.call(_this, resolve, reject); });\n }, timeout); };\n}\nvar wrappedIt = wrap();\nexport var itAsync = Object.assign(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return wrappedIt.apply(this, args);\n}, {\n only: wrap(\"only\"),\n skip: wrap(\"skip\"),\n todo: wrap(\"todo\"),\n});\n//# sourceMappingURL=itAsync.js.map","function wrapTestFunction(fn, consoleMethodName) {\n return function () {\n var _this = this;\n var args = arguments;\n var spy = jest.spyOn(console, consoleMethodName);\n spy.mockImplementation(function () { });\n return new Promise(function (resolve) {\n resolve(fn === null || fn === void 0 ? void 0 : fn.apply(_this, args));\n }).finally(function () {\n expect(spy).toMatchSnapshot();\n spy.mockReset();\n });\n };\n}\nexport function withErrorSpy(it) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n args[1] = wrapTestFunction(args[1], \"error\");\n return it.apply(void 0, args);\n}\nexport function withWarningSpy(it) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n args[1] = wrapTestFunction(args[1], \"warn\");\n return it.apply(void 0, args);\n}\nexport function withLogSpy(it) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n args[1] = wrapTestFunction(args[1], \"log\");\n return it.apply(void 0, args);\n}\n//# sourceMappingURL=withConsoleSpy.js.map"],"names":["print","addTypenameToDocument","__extends","equal","stringifyForDisplay","Observable","cloneDeep","removeConnectionDirectiveFromDocument","invariant","removeClientSetsFromDocument","ApolloLink","ApolloClient","InMemoryCache","asyncMap"],"mappings":"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"}
@@ -62,7 +62,7 @@ var MockLink = (function (_super) {
62
62
  : void 0;
63
63
  var configError;
64
64
  if (!response) {
65
- configError = new Error("No more mocked responses for the query: ".concat(graphql.print(operation.query), "\nExpected variables: ").concat(utilities.stringifyForDisplay(operation.variables), "\n").concat(unmatchedVars.length > 0 ? "\nFailed to match ".concat(unmatchedVars.length, " mock").concat(unmatchedVars.length === 1 ? "" : "s", " for this query, which had the following variables:\n").concat(unmatchedVars.map(function (d) { return " ".concat(utilities.stringifyForDisplay(d)); }).join('\n'), "\n") : ""));
65
+ configError = new Error("No more mocked responses for the query: ".concat(graphql.print(operation.query), "\nExpected variables: ").concat(utilities.stringifyForDisplay(operation.variables), "\n").concat(unmatchedVars.length > 0 ? "\nFailed to match ".concat(unmatchedVars.length, " mock").concat(unmatchedVars.length === 1 ? "" : "s", " for this query. The mocked response had the following variables:\n").concat(unmatchedVars.map(function (d) { return " ".concat(utilities.stringifyForDisplay(d)); }).join('\n'), "\n") : ""));
66
66
  }
67
67
  else {
68
68
  mockedResponses.splice(responseIndex, 1);
@@ -109,7 +109,7 @@ var MockLink = (function (_super) {
109
109
  MockLink.prototype.normalizeMockedResponse = function (mockedResponse) {
110
110
  var newMockedResponse = utilities.cloneDeep(mockedResponse);
111
111
  var queryWithoutConnection = utilities.removeConnectionDirectiveFromDocument(newMockedResponse.request.query);
112
- __DEV__ ? globals.invariant(queryWithoutConnection, "query is required") : globals.invariant(queryWithoutConnection, 35);
112
+ __DEV__ ? globals.invariant(queryWithoutConnection, "query is required") : globals.invariant(queryWithoutConnection, 37);
113
113
  newMockedResponse.request.query = queryWithoutConnection;
114
114
  var query = utilities.removeClientSetsFromDocument(newMockedResponse.request.query);
115
115
  if (query) {
@@ -1,6 +1,6 @@
1
1
  export declare const itAsync: ((message: string, callback: (resolve: (result?: any) => void, reject: (reason?: any) => void) => any, timeout?: number | undefined) => any) & {
2
- only: (message: string, callback: (resolve: (result?: any) => void, reject: (reason?: any) => void) => any, timeout?: number | undefined) => void;
3
- skip: (message: string, callback: (resolve: (result?: any) => void, reject: (reason?: any) => void) => any, timeout?: number | undefined) => void;
4
- todo: (message: string, callback: (resolve: (result?: any) => void, reject: (reason?: any) => void) => any, timeout?: number | undefined) => void;
2
+ only: (message: string, callback: (resolve: (result?: any) => void, reject: (reason?: any) => void) => any, timeout?: number) => void;
3
+ skip: (message: string, callback: (resolve: (result?: any) => void, reject: (reason?: any) => void) => any, timeout?: number) => void;
4
+ todo: (message: string, callback: (resolve: (result?: any) => void, reject: (reason?: any) => void) => any, timeout?: number) => void;
5
5
  };
6
6
  //# sourceMappingURL=itAsync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"itAsync.d.ts","sourceRoot":"","sources":["../../../src/testing/core/itAsync.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,OAAO,mDAbK,GAAG,KAAK,IAAI,oBACb,GAAG,KAAK,IAAI,KAC3B,GAAG;oBAJC,MAAM,gCAEM,GAAG,KAAK,IAAI,oBACb,GAAG,KAAK,IAAI,KAC3B,GAAG;oBAJC,MAAM,gCAEM,GAAG,KAAK,IAAI,oBACb,GAAG,KAAK,IAAI,KAC3B,GAAG;oBAJC,MAAM,gCAEM,GAAG,KAAK,IAAI,oBACb,GAAG,KAAK,IAAI,KAC3B,GAAG;CAmBV,CAAC"}
1
+ {"version":3,"file":"itAsync.d.ts","sourceRoot":"","sources":["../../../src/testing/core/itAsync.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,OAAO,mDAbK,GAAG,KAAK,IAAI,oBACb,GAAG,KAAK,IAAI,KAC3B,GAAG;oBAJC,MAAM,gCAEM,GAAG,KAAK,IAAI,oBACb,GAAG,KAAK,IAAI,KAC3B,GAAG,YACE,MAAM;oBALP,MAAM,gCAEM,GAAG,KAAK,IAAI,oBACb,GAAG,KAAK,IAAI,KAC3B,GAAG,YACE,MAAM;oBALP,MAAM,gCAEM,GAAG,KAAK,IAAI,oBACb,GAAG,KAAK,IAAI,KAC3B,GAAG,YACE,MAAM;CAkBlB,CAAC"}
@@ -55,7 +55,7 @@ var MockLink = (function (_super) {
55
55
  : void 0;
56
56
  var configError;
57
57
  if (!response) {
58
- configError = new Error("No more mocked responses for the query: ".concat(print(operation.query), "\nExpected variables: ").concat(stringifyForDisplay(operation.variables), "\n").concat(unmatchedVars.length > 0 ? "\nFailed to match ".concat(unmatchedVars.length, " mock").concat(unmatchedVars.length === 1 ? "" : "s", " for this query, which had the following variables:\n").concat(unmatchedVars.map(function (d) { return " ".concat(stringifyForDisplay(d)); }).join('\n'), "\n") : ""));
58
+ configError = new Error("No more mocked responses for the query: ".concat(print(operation.query), "\nExpected variables: ").concat(stringifyForDisplay(operation.variables), "\n").concat(unmatchedVars.length > 0 ? "\nFailed to match ".concat(unmatchedVars.length, " mock").concat(unmatchedVars.length === 1 ? "" : "s", " for this query. The mocked response had the following variables:\n").concat(unmatchedVars.map(function (d) { return " ".concat(stringifyForDisplay(d)); }).join('\n'), "\n") : ""));
59
59
  }
60
60
  else {
61
61
  mockedResponses.splice(responseIndex, 1);
@@ -102,7 +102,7 @@ var MockLink = (function (_super) {
102
102
  MockLink.prototype.normalizeMockedResponse = function (mockedResponse) {
103
103
  var newMockedResponse = cloneDeep(mockedResponse);
104
104
  var queryWithoutConnection = removeConnectionDirectiveFromDocument(newMockedResponse.request.query);
105
- __DEV__ ? invariant(queryWithoutConnection, "query is required") : invariant(queryWithoutConnection, 35);
105
+ __DEV__ ? invariant(queryWithoutConnection, "query is required") : invariant(queryWithoutConnection, 37);
106
106
  newMockedResponse.request.query = queryWithoutConnection;
107
107
  var query = removeClientSetsFromDocument(newMockedResponse.request.query);
108
108
  if (query) {
@@ -1 +1 @@
1
- {"version":3,"file":"mockLink.js","sourceRoot":"","sources":["../../../../src/testing/core/mocking/mockLink.ts"],"names":[],"mappings":"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","sourcesContent":["import { invariant } from '../../../utilities/globals';\n\nimport { print } from 'graphql';\nimport { equal } from '@wry/equality';\n\nimport {\n ApolloLink,\n Operation,\n GraphQLRequest,\n FetchResult,\n} from '../../../link/core';\n\nimport {\n Observable,\n addTypenameToDocument,\n removeClientSetsFromDocument,\n removeConnectionDirectiveFromDocument,\n cloneDeep,\n stringifyForDisplay,\n} from '../../../utilities';\n\nexport type ResultFunction<T> = () => T;\n\nexport interface MockedResponse<TData = Record<string, any>> {\n request: GraphQLRequest;\n result?: FetchResult<TData> | ResultFunction<FetchResult<TData>>;\n error?: Error;\n delay?: number;\n newData?: ResultFunction<FetchResult>;\n}\n\nfunction requestToKey(request: GraphQLRequest, addTypename: Boolean): string {\n const queryString =\n request.query &&\n print(addTypename ? addTypenameToDocument(request.query) : request.query);\n const requestKey = { query: queryString };\n return JSON.stringify(requestKey);\n}\n\nexport class MockLink extends ApolloLink {\n public operation: Operation;\n public addTypename: Boolean = true;\n private mockedResponsesByKey: { [key: string]: MockedResponse[] } = {};\n\n constructor(\n mockedResponses: ReadonlyArray<MockedResponse>,\n addTypename: Boolean = true\n ) {\n super();\n this.addTypename = addTypename;\n if (mockedResponses) {\n mockedResponses.forEach(mockedResponse => {\n this.addMockedResponse(mockedResponse);\n });\n }\n }\n\n public addMockedResponse(mockedResponse: MockedResponse) {\n const normalizedMockedResponse = this.normalizeMockedResponse(\n mockedResponse\n );\n const key = requestToKey(\n normalizedMockedResponse.request,\n this.addTypename\n );\n let mockedResponses = this.mockedResponsesByKey[key];\n if (!mockedResponses) {\n mockedResponses = [];\n this.mockedResponsesByKey[key] = mockedResponses;\n }\n mockedResponses.push(normalizedMockedResponse);\n }\n\n public request(operation: Operation): Observable<FetchResult> | null {\n this.operation = operation;\n const key = requestToKey(operation, this.addTypename);\n const unmatchedVars: Array<Record<string, any>> = [];\n const requestVariables = operation.variables || {};\n const mockedResponses = this.mockedResponsesByKey[key];\n const responseIndex = mockedResponses ? mockedResponses.findIndex((res, index) => {\n const mockedResponseVars = res.request.variables || {};\n if (equal(requestVariables, mockedResponseVars)) {\n return true;\n }\n unmatchedVars.push(mockedResponseVars);\n return false;\n }) : -1;\n\n const response = responseIndex >= 0\n ? mockedResponses[responseIndex]\n : void 0;\n\n let configError: Error;\n\n if (!response) {\n configError = new Error(\n`No more mocked responses for the query: ${print(operation.query)}\nExpected variables: ${stringifyForDisplay(operation.variables)}\n${unmatchedVars.length > 0 ? `\nFailed to match ${unmatchedVars.length} mock${\n unmatchedVars.length === 1 ? \"\" : \"s\"\n} for this query, which had the following variables:\n${unmatchedVars.map(d => ` ${stringifyForDisplay(d)}`).join('\\n')}\n` : \"\"}`);\n } else {\n mockedResponses.splice(responseIndex, 1);\n\n const { newData } = response;\n if (newData) {\n response.result = newData();\n mockedResponses.push(response);\n }\n\n if (!response.result && !response.error) {\n configError = new Error(\n `Mocked response should contain either result or error: ${key}`\n );\n }\n }\n\n return new Observable(observer => {\n const timer = setTimeout(() => {\n if (configError) {\n try {\n // The onError function can return false to indicate that\n // configError need not be passed to observer.error. For\n // example, the default implementation of onError calls\n // observer.error(configError) and then returns false to\n // prevent this extra (harmless) observer.error call.\n if (this.onError(configError, observer) !== false) {\n throw configError;\n }\n } catch (error) {\n observer.error(error);\n }\n } else if (response) {\n if (response.error) {\n observer.error(response.error);\n } else {\n if (response.result) {\n observer.next(\n typeof response.result === 'function'\n ? (response.result as ResultFunction<FetchResult>)()\n : response.result\n );\n }\n observer.complete();\n }\n }\n }, response && response.delay || 0);\n\n return () => {\n clearTimeout(timer);\n };\n });\n }\n\n private normalizeMockedResponse(\n mockedResponse: MockedResponse\n ): MockedResponse {\n const newMockedResponse = cloneDeep(mockedResponse);\n const queryWithoutConnection = removeConnectionDirectiveFromDocument(\n newMockedResponse.request.query\n );\n invariant(queryWithoutConnection, \"query is required\");\n newMockedResponse.request.query = queryWithoutConnection!;\n const query = removeClientSetsFromDocument(newMockedResponse.request.query);\n if (query) {\n newMockedResponse.request.query = query;\n }\n return newMockedResponse;\n }\n}\n\nexport interface MockApolloLink extends ApolloLink {\n operation?: Operation;\n}\n\n// Pass in multiple mocked responses, so that you can test flows that end up\n// making multiple queries to the server.\n// NOTE: The last arg can optionally be an `addTypename` arg.\nexport function mockSingleLink(\n ...mockedResponses: Array<any>\n): MockApolloLink {\n // To pull off the potential typename. If this isn't a boolean, we'll just\n // set it true later.\n let maybeTypename = mockedResponses[mockedResponses.length - 1];\n let mocks = mockedResponses.slice(0, mockedResponses.length - 1);\n\n if (typeof maybeTypename !== 'boolean') {\n mocks = mockedResponses;\n maybeTypename = true;\n }\n\n return new MockLink(mocks, maybeTypename);\n}\n"]}
1
+ {"version":3,"file":"mockLink.js","sourceRoot":"","sources":["../../../../src/testing/core/mocking/mockLink.ts"],"names":[],"mappings":"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","sourcesContent":["import { invariant } from '../../../utilities/globals';\n\nimport { print } from 'graphql';\nimport { equal } from '@wry/equality';\n\nimport {\n ApolloLink,\n Operation,\n GraphQLRequest,\n FetchResult,\n} from '../../../link/core';\n\nimport {\n Observable,\n addTypenameToDocument,\n removeClientSetsFromDocument,\n removeConnectionDirectiveFromDocument,\n cloneDeep,\n stringifyForDisplay,\n} from '../../../utilities';\n\nexport type ResultFunction<T> = () => T;\n\nexport interface MockedResponse<TData = Record<string, any>> {\n request: GraphQLRequest;\n result?: FetchResult<TData> | ResultFunction<FetchResult<TData>>;\n error?: Error;\n delay?: number;\n newData?: ResultFunction<FetchResult>;\n}\n\nfunction requestToKey(request: GraphQLRequest, addTypename: Boolean): string {\n const queryString =\n request.query &&\n print(addTypename ? addTypenameToDocument(request.query) : request.query);\n const requestKey = { query: queryString };\n return JSON.stringify(requestKey);\n}\n\nexport class MockLink extends ApolloLink {\n public operation: Operation;\n public addTypename: Boolean = true;\n private mockedResponsesByKey: { [key: string]: MockedResponse[] } = {};\n\n constructor(\n mockedResponses: ReadonlyArray<MockedResponse>,\n addTypename: Boolean = true\n ) {\n super();\n this.addTypename = addTypename;\n if (mockedResponses) {\n mockedResponses.forEach(mockedResponse => {\n this.addMockedResponse(mockedResponse);\n });\n }\n }\n\n public addMockedResponse(mockedResponse: MockedResponse) {\n const normalizedMockedResponse = this.normalizeMockedResponse(\n mockedResponse\n );\n const key = requestToKey(\n normalizedMockedResponse.request,\n this.addTypename\n );\n let mockedResponses = this.mockedResponsesByKey[key];\n if (!mockedResponses) {\n mockedResponses = [];\n this.mockedResponsesByKey[key] = mockedResponses;\n }\n mockedResponses.push(normalizedMockedResponse);\n }\n\n public request(operation: Operation): Observable<FetchResult> | null {\n this.operation = operation;\n const key = requestToKey(operation, this.addTypename);\n const unmatchedVars: Array<Record<string, any>> = [];\n const requestVariables = operation.variables || {};\n const mockedResponses = this.mockedResponsesByKey[key];\n const responseIndex = mockedResponses ? mockedResponses.findIndex((res, index) => {\n const mockedResponseVars = res.request.variables || {};\n if (equal(requestVariables, mockedResponseVars)) {\n return true;\n }\n unmatchedVars.push(mockedResponseVars);\n return false;\n }) : -1;\n\n const response = responseIndex >= 0\n ? mockedResponses[responseIndex]\n : void 0;\n\n let configError: Error;\n\n if (!response) {\n configError = new Error(\n`No more mocked responses for the query: ${print(operation.query)}\nExpected variables: ${stringifyForDisplay(operation.variables)}\n${unmatchedVars.length > 0 ? `\nFailed to match ${unmatchedVars.length} mock${\n unmatchedVars.length === 1 ? \"\" : \"s\"\n} for this query. The mocked response had the following variables:\n${unmatchedVars.map(d => ` ${stringifyForDisplay(d)}`).join('\\n')}\n` : \"\"}`);\n } else {\n mockedResponses.splice(responseIndex, 1);\n\n const { newData } = response;\n if (newData) {\n response.result = newData();\n mockedResponses.push(response);\n }\n\n if (!response.result && !response.error) {\n configError = new Error(\n `Mocked response should contain either result or error: ${key}`\n );\n }\n }\n\n return new Observable(observer => {\n const timer = setTimeout(() => {\n if (configError) {\n try {\n // The onError function can return false to indicate that\n // configError need not be passed to observer.error. For\n // example, the default implementation of onError calls\n // observer.error(configError) and then returns false to\n // prevent this extra (harmless) observer.error call.\n if (this.onError(configError, observer) !== false) {\n throw configError;\n }\n } catch (error) {\n observer.error(error);\n }\n } else if (response) {\n if (response.error) {\n observer.error(response.error);\n } else {\n if (response.result) {\n observer.next(\n typeof response.result === 'function'\n ? (response.result as ResultFunction<FetchResult>)()\n : response.result\n );\n }\n observer.complete();\n }\n }\n }, response && response.delay || 0);\n\n return () => {\n clearTimeout(timer);\n };\n });\n }\n\n private normalizeMockedResponse(\n mockedResponse: MockedResponse\n ): MockedResponse {\n const newMockedResponse = cloneDeep(mockedResponse);\n const queryWithoutConnection = removeConnectionDirectiveFromDocument(\n newMockedResponse.request.query\n );\n invariant(queryWithoutConnection, \"query is required\");\n newMockedResponse.request.query = queryWithoutConnection!;\n const query = removeClientSetsFromDocument(newMockedResponse.request.query);\n if (query) {\n newMockedResponse.request.query = query;\n }\n return newMockedResponse;\n }\n}\n\nexport interface MockApolloLink extends ApolloLink {\n operation?: Operation;\n}\n\n// Pass in multiple mocked responses, so that you can test flows that end up\n// making multiple queries to the server.\n// NOTE: The last arg can optionally be an `addTypename` arg.\nexport function mockSingleLink(\n ...mockedResponses: Array<any>\n): MockApolloLink {\n // To pull off the potential typename. If this isn't a boolean, we'll just\n // set it true later.\n let maybeTypename = mockedResponses[mockedResponses.length - 1];\n let mocks = mockedResponses.slice(0, mockedResponses.length - 1);\n\n if (typeof maybeTypename !== 'boolean') {\n mocks = mockedResponses;\n maybeTypename = true;\n }\n\n return new MockLink(mocks, maybeTypename);\n}\n"]}
@@ -1,4 +1,3 @@
1
- import { ObservableQuery, ApolloQueryResult, OperationVariables } from '../../core';
2
- import { ObservableSubscription } from '../../utilities';
3
- export default function subscribeAndCount<TData, TVariables = OperationVariables>(reject: (reason: any) => any, observable: ObservableQuery<TData, TVariables>, cb: (handleCount: number, result: ApolloQueryResult<TData>) => any): ObservableSubscription;
1
+ import { ObservableSubscription, Observable } from '../../utilities';
2
+ export default function subscribeAndCount<TResult>(reject: (reason: any) => any, observable: Observable<TResult>, cb: (handleCount: number, result: TResult) => any): ObservableSubscription;
4
3
  //# sourceMappingURL=subscribeAndCount.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscribeAndCount.d.ts","sourceRoot":"","sources":["../../../src/testing/core/subscribeAndCount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAY,MAAM,iBAAiB,CAAC;AAEnE,MAAM,CAAC,OAAO,UAAU,iBAAiB,CACvC,KAAK,EACL,UAAU,GAAG,kBAAkB,EAE/B,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,EAC5B,UAAU,EAAE,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,EAC9C,EAAE,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAC,KAAK,GAAG,GACjE,sBAAsB,CAsBxB"}
1
+ {"version":3,"file":"subscribeAndCount.d.ts","sourceRoot":"","sources":["../../../src/testing/core/subscribeAndCount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAY,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE/E,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,OAAO,EAC/C,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,EAC5B,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,EAC/B,EAAE,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,GAAG,GAChD,sBAAsB,CAmBxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"subscribeAndCount.js","sourceRoot":"","sources":["../../../src/testing/core/subscribeAndCount.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEnE,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAIvC,MAA4B,EAC5B,UAA8C,EAC9C,EAAkE;IAGlE,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAC9B,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,IAAM,YAAY,GAAG,QAAQ,CAC3B,UAAU,EACV,UAAC,MAAgC;QAG/B,OAAO,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;YACxB,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC,CACF,CAAC,SAAS,CAAC,EAAE,KAAK,OAAA,EAAE,CAAC,CAAC;IAEvB,SAAS,KAAK,CAAC,CAAM;QACnB,YAAY,CAAC,WAAW,EAAE,CAAC;QAC3B,MAAM,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC","sourcesContent":["import { ObservableQuery, ApolloQueryResult, OperationVariables } from '../../core';\nimport { ObservableSubscription, asyncMap } from '../../utilities';\n\nexport default function subscribeAndCount<\n TData,\n TVariables = OperationVariables,\n>(\n reject: (reason: any) => any,\n observable: ObservableQuery<TData, TVariables>,\n cb: (handleCount: number, result: ApolloQueryResult<TData>) => any,\n): ObservableSubscription {\n // Use a Promise queue to prevent callbacks from being run out of order.\n let queue = Promise.resolve();\n let handleCount = 0;\n\n const subscription = asyncMap(\n observable,\n (result: ApolloQueryResult<TData>) => {\n // All previous asynchronous callbacks must complete before cb can\n // be invoked with this result.\n return queue = queue.then(() => {\n return cb(++handleCount, result);\n }).catch(error);\n },\n ).subscribe({ error });\n\n function error(e: any) {\n subscription.unsubscribe();\n reject(e);\n }\n\n return subscription;\n}\n"]}
1
+ {"version":3,"file":"subscribeAndCount.js","sourceRoot":"","sources":["../../../src/testing/core/subscribeAndCount.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,QAAQ,EAAc,MAAM,iBAAiB,CAAC;AAE/E,MAAM,CAAC,OAAO,UAAU,iBAAiB,CACvC,MAA4B,EAC5B,UAA+B,EAC/B,EAAiD;IAGjD,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAC9B,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,IAAM,YAAY,GAAG,QAAQ,CAAC,UAAU,EAAE,UAAA,MAAM;QAG9C,OAAO,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;YACxB,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,OAAA,EAAE,CAAC,CAAC;IAExB,SAAS,KAAK,CAAC,CAAM;QACnB,YAAY,CAAC,WAAW,EAAE,CAAC;QAC3B,MAAM,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC","sourcesContent":["import { ObservableSubscription, asyncMap, Observable } from '../../utilities';\n\nexport default function subscribeAndCount<TResult>(\n reject: (reason: any) => any,\n observable: Observable<TResult>,\n cb: (handleCount: number, result: TResult) => any,\n): ObservableSubscription {\n // Use a Promise queue to prevent callbacks from being run out of order.\n let queue = Promise.resolve();\n let handleCount = 0;\n\n const subscription = asyncMap(observable, result => {\n // All previous asynchronous callbacks must complete before cb can\n // be invoked with this result.\n return queue = queue.then(() => {\n return cb(++handleCount, result);\n }).catch(error);\n }).subscribe({ error });\n\n function error(e: any) {\n subscription.unsubscribe();\n reject(e);\n }\n\n return subscription;\n}\n"]}
@@ -1,6 +1,7 @@
1
1
  export declare const canUseWeakMap: boolean;
2
2
  export declare const canUseWeakSet: boolean;
3
3
  export declare const canUseSymbol: boolean;
4
+ export declare const canUseAsyncIteratorSymbol: false | typeof Symbol.asyncIterator;
4
5
  export declare const canUseDOM: boolean;
5
6
  export declare const canUseLayoutEffect: boolean;
6
7
  //# sourceMappingURL=canUse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"canUse.d.ts","sourceRoot":"","sources":["../../../src/utilities/common/canUse.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,SAEwB,CAAC;AAEnD,eAAO,MAAM,aAAa,SAAgC,CAAC;AAE3D,eAAO,MAAM,YAAY,SAES,CAAC;AAEnC,eAAO,MAAM,SAAS,SAC4C,CAAC;AAmBnE,eAAO,MAAM,kBAAkB,SAA2B,CAAC"}
1
+ {"version":3,"file":"canUse.d.ts","sourceRoot":"","sources":["../../../src/utilities/common/canUse.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,SAEwB,CAAC;AAEnD,eAAO,MAAM,aAAa,SAAgC,CAAC;AAE3D,eAAO,MAAM,YAAY,SAES,CAAC;AAEnC,eAAO,MAAM,yBAAyB,qCAAuC,CAAC;AAE9E,eAAO,MAAM,SAAS,SAC4C,CAAC;AAmBnE,eAAO,MAAM,kBAAkB,SAA2B,CAAC"}
@@ -4,6 +4,7 @@ export var canUseWeakMap = typeof WeakMap === 'function' &&
4
4
  export var canUseWeakSet = typeof WeakSet === 'function';
5
5
  export var canUseSymbol = typeof Symbol === 'function' &&
6
6
  typeof Symbol.for === 'function';
7
+ export var canUseAsyncIteratorSymbol = canUseSymbol && Symbol.asyncIterator;
7
8
  export var canUseDOM = typeof maybe(function () { return window.document.createElement; }) === "function";
8
9
  var usingJSDOM = maybe(function () { return navigator.userAgent.indexOf("jsdom") >= 0; }) || false;
9
10
  export var canUseLayoutEffect = canUseDOM && !usingJSDOM;
@@ -1 +1 @@
1
- {"version":3,"file":"canUse.js","sourceRoot":"","sources":["../../../src/utilities/common/canUse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,CAAC,IAAM,aAAa,GACxB,OAAO,OAAO,KAAK,UAAU;IAC7B,KAAK,CAAC,cAAM,OAAA,SAAS,CAAC,OAAO,EAAjB,CAAiB,CAAC,KAAK,aAAa,CAAC;AAEnD,MAAM,CAAC,IAAM,aAAa,GAAG,OAAO,OAAO,KAAK,UAAU,CAAC;AAE3D,MAAM,CAAC,IAAM,YAAY,GACvB,OAAO,MAAM,KAAK,UAAU;IAC5B,OAAO,MAAM,CAAC,GAAG,KAAK,UAAU,CAAC;AAEnC,MAAM,CAAC,IAAM,SAAS,GACpB,OAAO,KAAK,CAAC,cAAM,OAAA,MAAM,CAAC,QAAQ,CAAC,aAAa,EAA7B,CAA6B,CAAC,KAAK,UAAU,CAAC;AAEnE,IAAM,UAAU,GASd,KAAK,CAAC,cAAM,OAAA,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAzC,CAAyC,CAAC,IAAI,KAAK,CAAC;AAQlE,MAAM,CAAC,IAAM,kBAAkB,GAAG,SAAS,IAAI,CAAC,UAAU,CAAC","sourcesContent":["import { maybe } from \"../globals\";\n\nexport const canUseWeakMap =\n typeof WeakMap === 'function' &&\n maybe(() => navigator.product) !== 'ReactNative';\n\nexport const canUseWeakSet = typeof WeakSet === 'function';\n\nexport const canUseSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.for === 'function';\n\nexport const canUseDOM =\n typeof maybe(() => window.document.createElement) === \"function\";\n\nconst usingJSDOM: boolean =\n // Following advice found in this comment from @domenic (maintainer of jsdom):\n // https://github.com/jsdom/jsdom/issues/1537#issuecomment-229405327\n //\n // Since we control the version of Jest and jsdom used when running Apollo\n // Client tests, and that version is recent enought to include \" jsdom/x.y.z\"\n // at the end of the user agent string, I believe this case is all we need to\n // check. Testing for \"Node.js\" was recommended for backwards compatibility\n // with older version of jsdom, but we don't have that problem.\n maybe(() => navigator.userAgent.indexOf(\"jsdom\") >= 0) || false;\n\n// Our tests should all continue to pass if we remove this !usingJSDOM\n// condition, thereby allowing useLayoutEffect when using jsdom. Unfortunately,\n// if we allow useLayoutEffect, then useSyncExternalStore generates many\n// warnings about useLayoutEffect doing nothing on the server. While these\n// warnings are harmless, this !usingJSDOM condition seems to be the best way to\n// prevent them (i.e. skipping useLayoutEffect when using jsdom).\nexport const canUseLayoutEffect = canUseDOM && !usingJSDOM;\n"]}
1
+ {"version":3,"file":"canUse.js","sourceRoot":"","sources":["../../../src/utilities/common/canUse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,CAAC,IAAM,aAAa,GACxB,OAAO,OAAO,KAAK,UAAU;IAC7B,KAAK,CAAC,cAAM,OAAA,SAAS,CAAC,OAAO,EAAjB,CAAiB,CAAC,KAAK,aAAa,CAAC;AAEnD,MAAM,CAAC,IAAM,aAAa,GAAG,OAAO,OAAO,KAAK,UAAU,CAAC;AAE3D,MAAM,CAAC,IAAM,YAAY,GACvB,OAAO,MAAM,KAAK,UAAU;IAC5B,OAAO,MAAM,CAAC,GAAG,KAAK,UAAU,CAAC;AAEnC,MAAM,CAAC,IAAM,yBAAyB,GAAG,YAAY,IAAI,MAAM,CAAC,aAAa,CAAC;AAE9E,MAAM,CAAC,IAAM,SAAS,GACpB,OAAO,KAAK,CAAC,cAAM,OAAA,MAAM,CAAC,QAAQ,CAAC,aAAa,EAA7B,CAA6B,CAAC,KAAK,UAAU,CAAC;AAEnE,IAAM,UAAU,GASd,KAAK,CAAC,cAAM,OAAA,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAzC,CAAyC,CAAC,IAAI,KAAK,CAAC;AAQlE,MAAM,CAAC,IAAM,kBAAkB,GAAG,SAAS,IAAI,CAAC,UAAU,CAAC","sourcesContent":["import { maybe } from \"../globals\";\n\nexport const canUseWeakMap =\n typeof WeakMap === 'function' &&\n maybe(() => navigator.product) !== 'ReactNative';\n\nexport const canUseWeakSet = typeof WeakSet === 'function';\n\nexport const canUseSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.for === 'function';\n\nexport const canUseAsyncIteratorSymbol = canUseSymbol && Symbol.asyncIterator;\n\nexport const canUseDOM =\n typeof maybe(() => window.document.createElement) === \"function\";\n\nconst usingJSDOM: boolean =\n // Following advice found in this comment from @domenic (maintainer of jsdom):\n // https://github.com/jsdom/jsdom/issues/1537#issuecomment-229405327\n //\n // Since we control the version of Jest and jsdom used when running Apollo\n // Client tests, and that version is recent enought to include \" jsdom/x.y.z\"\n // at the end of the user agent string, I believe this case is all we need to\n // check. Testing for \"Node.js\" was recommended for backwards compatibility\n // with older version of jsdom, but we don't have that problem.\n maybe(() => navigator.userAgent.indexOf(\"jsdom\") >= 0) || false;\n\n// Our tests should all continue to pass if we remove this !usingJSDOM\n// condition, thereby allowing useLayoutEffect when using jsdom. Unfortunately,\n// if we allow useLayoutEffect, then useSyncExternalStore generates many\n// warnings about useLayoutEffect doing nothing on the server. While these\n// warnings are harmless, this !usingJSDOM condition seems to be the best way to\n// prevent them (i.e. skipping useLayoutEffect when using jsdom).\nexport const canUseLayoutEffect = canUseDOM && !usingJSDOM;\n"]}
@@ -0,0 +1,3 @@
1
+ import { ExecutionPatchIncrementalResult } from '../../link/core';
2
+ export declare function isExecutionPatchIncrementalResult(value: any): value is ExecutionPatchIncrementalResult;
3
+ //# sourceMappingURL=incrementalResult.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"incrementalResult.d.ts","sourceRoot":"","sources":["../../../src/utilities/common/incrementalResult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AAElE,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,+BAA+B,CAEtG"}
@@ -0,0 +1,4 @@
1
+ export function isExecutionPatchIncrementalResult(value) {
2
+ return !!value.incremental;
3
+ }
4
+ //# sourceMappingURL=incrementalResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"incrementalResult.js","sourceRoot":"","sources":["../../../src/utilities/common/incrementalResult.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,iCAAiC,CAAC,KAAU;IAC1D,OAAO,CAAC,CAAE,KAAyC,CAAC,WAAW,CAAC;AAClE,CAAC","sourcesContent":["import { ExecutionPatchIncrementalResult } from '../../link/core';\n\nexport function isExecutionPatchIncrementalResult(value: any): value is ExecutionPatchIncrementalResult {\n return !!(value as ExecutionPatchIncrementalResult).incremental;\n}\n"]}
@@ -0,0 +1,10 @@
1
+ /// <reference types="node" />
2
+ import { Response as NodeResponse } from "node-fetch";
3
+ import { Readable as NodeReadableStream } from "stream";
4
+ export declare function isNodeResponse(value: any): value is NodeResponse;
5
+ export declare function isReadableStream(value: any): value is ReadableStream<any>;
6
+ export declare function isAsyncIterableIterator(value: any): value is AsyncIterableIterator<any>;
7
+ export declare function isStreamableBlob(value: any): value is Blob;
8
+ export declare function isBlob(value: any): value is Blob;
9
+ export declare function isNodeReadableStream(value: any): value is NodeReadableStream;
10
+ //# sourceMappingURL=responseIterator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responseIterator.d.ts","sourceRoot":"","sources":["../../../src/utilities/common/responseIterator.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAGxD,wBAAgB,cAAc,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,YAAY,CAEhE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,cAAc,CAAC,GAAG,CAAC,CAEzE;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,GAAG,GACT,KAAK,IAAI,qBAAqB,CAAC,GAAG,CAAC,CAKrC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,IAAI,CAE1D;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,IAAI,CAEhD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,kBAAkB,CAE5E"}
@@ -0,0 +1,21 @@
1
+ import { canUseAsyncIteratorSymbol } from "./canUse.js";
2
+ export function isNodeResponse(value) {
3
+ return !!value.body;
4
+ }
5
+ export function isReadableStream(value) {
6
+ return !!value.getReader;
7
+ }
8
+ export function isAsyncIterableIterator(value) {
9
+ return !!(canUseAsyncIteratorSymbol &&
10
+ value[Symbol.asyncIterator]);
11
+ }
12
+ export function isStreamableBlob(value) {
13
+ return !!value.stream;
14
+ }
15
+ export function isBlob(value) {
16
+ return !!value.arrayBuffer;
17
+ }
18
+ export function isNodeReadableStream(value) {
19
+ return !!value.pipe;
20
+ }
21
+ //# sourceMappingURL=responseIterator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responseIterator.js","sourceRoot":"","sources":["../../../src/utilities/common/responseIterator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAErD,MAAM,UAAU,cAAc,CAAC,KAAU;IACvC,OAAO,CAAC,CAAE,KAAsB,CAAC,IAAI,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAU;IACzC,OAAO,CAAC,CAAE,KAA6B,CAAC,SAAS,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAAU;IAEV,OAAO,CAAC,CAAC,CACP,yBAAyB;QACxB,KAAoC,CAAC,MAAM,CAAC,aAAa,CAAC,CAC5D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAU;IACzC,OAAO,CAAC,CAAE,KAAc,CAAC,MAAM,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAU;IAC/B,OAAO,CAAC,CAAE,KAAc,CAAC,WAAW,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAU;IAC7C,OAAO,CAAC,CAAE,KAA4B,CAAC,IAAI,CAAC;AAC9C,CAAC","sourcesContent":["import { Response as NodeResponse } from \"node-fetch\";\nimport { Readable as NodeReadableStream } from \"stream\";\nimport { canUseAsyncIteratorSymbol } from \"./canUse\";\n\nexport function isNodeResponse(value: any): value is NodeResponse {\n return !!(value as NodeResponse).body;\n}\n\nexport function isReadableStream(value: any): value is ReadableStream<any> {\n return !!(value as ReadableStream<any>).getReader;\n}\n\nexport function isAsyncIterableIterator(\n value: any\n): value is AsyncIterableIterator<any> {\n return !!(\n canUseAsyncIteratorSymbol &&\n (value as AsyncIterableIterator<any>)[Symbol.asyncIterator]\n );\n}\n\nexport function isStreamableBlob(value: any): value is Blob {\n return !!(value as Blob).stream;\n}\n\nexport function isBlob(value: any): value is Blob {\n return !!(value as Blob).arrayBuffer;\n}\n\nexport function isNodeReadableStream(value: any): value is NodeReadableStream {\n return !!(value as NodeReadableStream).pipe;\n}\n"]}
@@ -42,7 +42,7 @@ function removeTemporaryGlobals() {
42
42
  }
43
43
 
44
44
  function checkDEV() {
45
- __DEV__ ? tsInvariant.invariant("boolean" === typeof DEV, DEV) : tsInvariant.invariant("boolean" === typeof DEV, 36);
45
+ __DEV__ ? tsInvariant.invariant("boolean" === typeof DEV, DEV) : tsInvariant.invariant("boolean" === typeof DEV, 38);
46
46
  }
47
47
  removeTemporaryGlobals();
48
48
  checkDEV();
@@ -1 +1 @@
1
- {"version":3,"file":"globals.cjs","sources":["maybe.js","global.js","DEV.js","fix-graphql.js","index.js"],"sourcesContent":["export function maybe(thunk) {\n try {\n return thunk();\n }\n catch (_a) { }\n}\n//# sourceMappingURL=maybe.js.map","import { maybe } from \"./maybe\";\nexport default (maybe(function () { return globalThis; }) ||\n maybe(function () { return window; }) ||\n maybe(function () { return self; }) ||\n maybe(function () { return global; }) ||\n maybe(function () { return maybe.constructor(\"return this\")(); }));\n//# sourceMappingURL=global.js.map","import global from \"./global\";\nimport { maybe } from \"./maybe\";\nvar __ = \"__\";\nvar GLOBAL_KEY = [__, __].join(\"DEV\");\nfunction getDEV() {\n try {\n return Boolean(__DEV__);\n }\n catch (_a) {\n Object.defineProperty(global, GLOBAL_KEY, {\n value: maybe(function () { return process.env.NODE_ENV; }) !== \"production\",\n enumerable: false,\n configurable: true,\n writable: true,\n });\n return global[GLOBAL_KEY];\n }\n}\nexport default getDEV();\n//# sourceMappingURL=DEV.js.map","import { remove } from 'ts-invariant/process';\nimport { Source } from 'graphql';\nexport function removeTemporaryGlobals() {\n return typeof Source === \"function\" ? remove() : remove();\n}\n//# sourceMappingURL=fix-graphql.js.map","import { invariant, InvariantError } from \"ts-invariant\";\nimport DEV from \"./DEV\";\nexport { DEV };\nexport function checkDEV() {\n __DEV__ ? invariant(\"boolean\" === typeof DEV, DEV) : invariant(\"boolean\" === typeof DEV, 36);\n}\nimport { removeTemporaryGlobals } from \"./fix-graphql\";\nremoveTemporaryGlobals();\nexport { maybe } from \"./maybe\";\nexport { default as global } from \"./global\";\nexport { invariant, InvariantError };\ncheckDEV();\n//# sourceMappingURL=index.js.map"],"names":["global","Source","remove","invariant"],"mappings":";;;;;;;;AAAO,SAAS,KAAK,CAAC,KAAK,EAAE;AAC7B,IAAI,IAAI;AACR,QAAQ,OAAO,KAAK,EAAE,CAAC;AACvB,KAAK;AACL,IAAI,OAAO,EAAE,EAAE,GAAG;AAClB;;ACJA,eAAe,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,UAAU,CAAC,EAAE,CAAC;AACzD,IAAI,KAAK,CAAC,YAAY,EAAE,OAAO,MAAM,CAAC,EAAE,CAAC;AACzC,IAAI,KAAK,CAAC,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;AACvC,IAAI,KAAK,CAAC,YAAY,EAAE,OAAO,MAAM,CAAC,EAAE,CAAC;AACzC,IAAI,KAAK,CAAC,YAAY,EAAE,OAAO,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC;;ACHrE,IAAI,EAAE,GAAG,IAAI,CAAC;AACd,IAAI,UAAU,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtC,SAAS,MAAM,GAAG;AAClB,IAAI,IAAI;AACR,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;AAChC,KAAK;AACL,IAAI,OAAO,EAAE,EAAE;AACf,QAAQ,MAAM,CAAC,cAAc,CAACA,QAAM,EAAE,UAAU,EAAE;AAClD,YAAY,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,YAAY;AACvF,YAAY,UAAU,EAAE,KAAK;AAC7B,YAAY,YAAY,EAAE,IAAI;AAC9B,YAAY,QAAQ,EAAE,IAAI;AAC1B,SAAS,CAAC,CAAC;AACX,QAAQ,OAAOA,QAAM,CAAC,UAAU,CAAC,CAAC;AAClC,KAAK;AACL,CAAC;AACD,UAAe,MAAM,EAAE;;AChBhB,SAAS,sBAAsB,GAAG;AACzC,IAAI,OAAO,OAAOC,cAAM,KAAK,UAAU,GAAGC,gBAAM,EAAE,GAAGA,gBAAM,EAAE,CAAC;AAC9D;;ACDO,SAAS,QAAQ,GAAG;AAC3B,IAAI,OAAO,GAAGC,qBAAS,CAAC,SAAS,KAAK,OAAO,GAAG,EAAE,GAAG,CAAC,GAAGA,qBAAS,CAAC,SAAS,KAAK,OAAO,GAAG,EAAE,EAAE,CAAC,CAAC;AACjG,CAAC;AAED,sBAAsB,EAAE,CAAC;AAIzB,QAAQ,EAAE;;;;;;;;;"}
1
+ {"version":3,"file":"globals.cjs","sources":["maybe.js","global.js","DEV.js","fix-graphql.js","index.js"],"sourcesContent":["export function maybe(thunk) {\n try {\n return thunk();\n }\n catch (_a) { }\n}\n//# sourceMappingURL=maybe.js.map","import { maybe } from \"./maybe\";\nexport default (maybe(function () { return globalThis; }) ||\n maybe(function () { return window; }) ||\n maybe(function () { return self; }) ||\n maybe(function () { return global; }) ||\n maybe(function () { return maybe.constructor(\"return this\")(); }));\n//# sourceMappingURL=global.js.map","import global from \"./global\";\nimport { maybe } from \"./maybe\";\nvar __ = \"__\";\nvar GLOBAL_KEY = [__, __].join(\"DEV\");\nfunction getDEV() {\n try {\n return Boolean(__DEV__);\n }\n catch (_a) {\n Object.defineProperty(global, GLOBAL_KEY, {\n value: maybe(function () { return process.env.NODE_ENV; }) !== \"production\",\n enumerable: false,\n configurable: true,\n writable: true,\n });\n return global[GLOBAL_KEY];\n }\n}\nexport default getDEV();\n//# sourceMappingURL=DEV.js.map","import { remove } from 'ts-invariant/process';\nimport { Source } from 'graphql';\nexport function removeTemporaryGlobals() {\n return typeof Source === \"function\" ? remove() : remove();\n}\n//# sourceMappingURL=fix-graphql.js.map","import { invariant, InvariantError } from \"ts-invariant\";\nimport DEV from \"./DEV\";\nexport { DEV };\nexport function checkDEV() {\n __DEV__ ? invariant(\"boolean\" === typeof DEV, DEV) : invariant(\"boolean\" === typeof DEV, 38);\n}\nimport { removeTemporaryGlobals } from \"./fix-graphql\";\nremoveTemporaryGlobals();\nexport { maybe } from \"./maybe\";\nexport { default as global } from \"./global\";\nexport { invariant, InvariantError };\ncheckDEV();\n//# sourceMappingURL=index.js.map"],"names":["global","Source","remove","invariant"],"mappings":";;;;;;;;AAAO,SAAS,KAAK,CAAC,KAAK,EAAE;AAC7B,IAAI,IAAI;AACR,QAAQ,OAAO,KAAK,EAAE,CAAC;AACvB,KAAK;AACL,IAAI,OAAO,EAAE,EAAE,GAAG;AAClB;;ACJA,eAAe,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,UAAU,CAAC,EAAE,CAAC;AACzD,IAAI,KAAK,CAAC,YAAY,EAAE,OAAO,MAAM,CAAC,EAAE,CAAC;AACzC,IAAI,KAAK,CAAC,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;AACvC,IAAI,KAAK,CAAC,YAAY,EAAE,OAAO,MAAM,CAAC,EAAE,CAAC;AACzC,IAAI,KAAK,CAAC,YAAY,EAAE,OAAO,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC;;ACHrE,IAAI,EAAE,GAAG,IAAI,CAAC;AACd,IAAI,UAAU,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtC,SAAS,MAAM,GAAG;AAClB,IAAI,IAAI;AACR,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;AAChC,KAAK;AACL,IAAI,OAAO,EAAE,EAAE;AACf,QAAQ,MAAM,CAAC,cAAc,CAACA,QAAM,EAAE,UAAU,EAAE;AAClD,YAAY,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,YAAY;AACvF,YAAY,UAAU,EAAE,KAAK;AAC7B,YAAY,YAAY,EAAE,IAAI;AAC9B,YAAY,QAAQ,EAAE,IAAI;AAC1B,SAAS,CAAC,CAAC;AACX,QAAQ,OAAOA,QAAM,CAAC,UAAU,CAAC,CAAC;AAClC,KAAK;AACL,CAAC;AACD,UAAe,MAAM,EAAE;;AChBhB,SAAS,sBAAsB,GAAG;AACzC,IAAI,OAAO,OAAOC,cAAM,KAAK,UAAU,GAAGC,gBAAM,EAAE,GAAGA,gBAAM,EAAE,CAAC;AAC9D;;ACDO,SAAS,QAAQ,GAAG;AAC3B,IAAI,OAAO,GAAGC,qBAAS,CAAC,SAAS,KAAK,OAAO,GAAG,EAAE,GAAG,CAAC,GAAGA,qBAAS,CAAC,SAAS,KAAK,OAAO,GAAG,EAAE,EAAE,CAAC,CAAC;AACjG,CAAC;AAED,sBAAsB,EAAE,CAAC;AAIzB,QAAQ,EAAE;;;;;;;;;"}
@@ -42,7 +42,7 @@ function removeTemporaryGlobals() {
42
42
  }
43
43
 
44
44
  function checkDEV() {
45
- __DEV__ ? tsInvariant.invariant("boolean" === typeof DEV, DEV) : tsInvariant.invariant("boolean" === typeof DEV, 36);
45
+ __DEV__ ? tsInvariant.invariant("boolean" === typeof DEV, DEV) : tsInvariant.invariant("boolean" === typeof DEV, 38);
46
46
  }
47
47
  removeTemporaryGlobals();
48
48
  checkDEV();
@@ -2,7 +2,7 @@ import { invariant, InvariantError } from "ts-invariant";
2
2
  import DEV from "./DEV.js";
3
3
  export { DEV };
4
4
  export function checkDEV() {
5
- __DEV__ ? invariant("boolean" === typeof DEV, DEV) : invariant("boolean" === typeof DEV, 36);
5
+ __DEV__ ? invariant("boolean" === typeof DEV, DEV) : invariant("boolean" === typeof DEV, 38);
6
6
  }
7
7
  import { removeTemporaryGlobals } from "./fix-graphql.js";
8
8
  removeTemporaryGlobals();
@@ -6,7 +6,9 @@ export declare type DirectiveInfo = {
6
6
  };
7
7
  export declare function shouldInclude({ directives }: SelectionNode, variables?: Record<string, any>): boolean;
8
8
  export declare function getDirectiveNames(root: ASTNode): string[];
9
- export declare function hasDirectives(names: string[], root: ASTNode): boolean;
9
+ export declare const hasAnyDirectives: (names: string[], root: ASTNode) => boolean;
10
+ export declare const hasAllDirectives: (names: string[], root: ASTNode) => boolean;
11
+ export declare function hasDirectives(names: string[], root: ASTNode, all?: boolean): boolean;
10
12
  export declare function hasClientExports(document: DocumentNode): boolean;
11
13
  export declare type InclusionDirectives = Array<{
12
14
  directive: DirectiveNode;
@@ -1 +1 @@
1
- {"version":3,"file":"directives.d.ts","sourceRoot":"","sources":["../../../src/utilities/graphql/directives.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,aAAa,EAGb,aAAa,EACb,YAAY,EACZ,YAAY,EAEZ,OAAO,EAER,MAAM,SAAS,CAAC;AAEjB,oBAAY,aAAa,GAAG;IAC1B,CAAC,SAAS,EAAE,MAAM,GAAG;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;CACjD,CAAC;AAEF,wBAAgB,aAAa,CAC3B,EAAE,UAAU,EAAE,EAAE,aAAa,EAC7B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC9B,OAAO,CAmBT;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,YAU9C;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,WAI3D;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,WAMtD;AAED,oBAAY,mBAAmB,GAAG,KAAK,CAAC;IACtC,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,YAAY,CAAC;CAC1B,CAAC,CAAC;AAMH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,aAAa,CAAC,aAAa,CAAC,GACvC,mBAAmB,CAmCrB"}
1
+ {"version":3,"file":"directives.d.ts","sourceRoot":"","sources":["../../../src/utilities/graphql/directives.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,aAAa,EAGb,aAAa,EACb,YAAY,EACZ,YAAY,EAEZ,OAAO,EAGR,MAAM,SAAS,CAAC;AAEjB,oBAAY,aAAa,GAAG;IAC1B,CAAC,SAAS,EAAE,MAAM,GAAG;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;CACjD,CAAC;AAEF,wBAAgB,aAAa,CAC3B,EAAE,UAAU,EAAE,EAAE,aAAa,EAC7B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC9B,OAAO,CAmBT;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,YAU9C;AAED,eAAO,MAAM,gBAAgB,UACpB,MAAM,EAAE,QACT,OAAO,YACuB,CAAC;AAEvC,eAAO,MAAM,gBAAgB,UACpB,MAAM,EAAE,QACT,OAAO,YACsB,CAAC;AAEtC,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EAAE,EACf,IAAI,EAAE,OAAO,EACb,GAAG,CAAC,EAAE,OAAO,WAmBd;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,WAEtD;AAED,oBAAY,mBAAmB,GAAG,KAAK,CAAC;IACtC,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,YAAY,CAAC;CAC1B,CAAC,CAAC;AAMH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,aAAa,CAAC,aAAa,CAAC,GACvC,mBAAmB,CAmCrB"}
@@ -1,5 +1,5 @@
1
1
  import { invariant } from "../globals/index.js";
2
- import { visit, } from 'graphql';
2
+ import { visit, BREAK, } from 'graphql';
3
3
  export function shouldInclude(_a, variables) {
4
4
  var directives = _a.directives;
5
5
  if (!directives || !directives.length) {
@@ -10,7 +10,7 @@ export function shouldInclude(_a, variables) {
10
10
  var evaledValue = false;
11
11
  if (ifArgument.value.kind === 'Variable') {
12
12
  evaledValue = variables && variables[ifArgument.value.name.value];
13
- __DEV__ ? invariant(evaledValue !== void 0, "Invalid variable referenced in @".concat(directive.name.value, " directive.")) : invariant(evaledValue !== void 0, 37);
13
+ __DEV__ ? invariant(evaledValue !== void 0, "Invalid variable referenced in @".concat(directive.name.value, " directive.")) : invariant(evaledValue !== void 0, 39);
14
14
  }
15
15
  else {
16
16
  evaledValue = ifArgument.value.value;
@@ -27,13 +27,23 @@ export function getDirectiveNames(root) {
27
27
  });
28
28
  return names;
29
29
  }
30
- export function hasDirectives(names, root) {
31
- return getDirectiveNames(root).some(function (name) { return names.indexOf(name) > -1; });
30
+ export var hasAnyDirectives = function (names, root) { return hasDirectives(names, root, false); };
31
+ export var hasAllDirectives = function (names, root) { return hasDirectives(names, root, true); };
32
+ export function hasDirectives(names, root, all) {
33
+ var nameSet = new Set(names);
34
+ var uniqueCount = nameSet.size;
35
+ visit(root, {
36
+ Directive: function (node) {
37
+ if (nameSet.delete(node.name.value) &&
38
+ (!all || !nameSet.size)) {
39
+ return BREAK;
40
+ }
41
+ },
42
+ });
43
+ return all ? !nameSet.size : nameSet.size < uniqueCount;
32
44
  }
33
45
  export function hasClientExports(document) {
34
- return (document &&
35
- hasDirectives(['client'], document) &&
36
- hasDirectives(['export'], document));
46
+ return document && hasDirectives(['client', 'export'], document, true);
37
47
  }
38
48
  function isInclusionDirective(_a) {
39
49
  var value = _a.name.value;
@@ -47,13 +57,13 @@ export function getInclusionDirectives(directives) {
47
57
  return;
48
58
  var directiveArguments = directive.arguments;
49
59
  var directiveName = directive.name.value;
50
- __DEV__ ? invariant(directiveArguments && directiveArguments.length === 1, "Incorrect number of arguments for the @".concat(directiveName, " directive.")) : invariant(directiveArguments && directiveArguments.length === 1, 38);
60
+ __DEV__ ? invariant(directiveArguments && directiveArguments.length === 1, "Incorrect number of arguments for the @".concat(directiveName, " directive.")) : invariant(directiveArguments && directiveArguments.length === 1, 40);
51
61
  var ifArgument = directiveArguments[0];
52
- __DEV__ ? invariant(ifArgument.name && ifArgument.name.value === 'if', "Invalid argument for the @".concat(directiveName, " directive.")) : invariant(ifArgument.name && ifArgument.name.value === 'if', 39);
62
+ __DEV__ ? invariant(ifArgument.name && ifArgument.name.value === 'if', "Invalid argument for the @".concat(directiveName, " directive.")) : invariant(ifArgument.name && ifArgument.name.value === 'if', 41);
53
63
  var ifValue = ifArgument.value;
54
64
  __DEV__ ? invariant(ifValue &&
55
65
  (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), "Argument for the @".concat(directiveName, " directive must be a variable or a boolean value.")) : invariant(ifValue &&
56
- (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), 40);
66
+ (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), 42);
57
67
  result.push({ directive: directive, ifArgument: ifArgument });
58
68
  });
59
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"directives.js","sourceRoot":"","sources":["../../../src/utilities/graphql/directives.ts"],"names":[],"mappings":"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","sourcesContent":["import { invariant } from '../globals';\n\n// Provides the methods that allow QueryManager to handle the `skip` and\n// `include` directives within GraphQL.\nimport {\n SelectionNode,\n VariableNode,\n BooleanValueNode,\n DirectiveNode,\n DocumentNode,\n ArgumentNode,\n ValueNode,\n ASTNode,\n visit,\n} from 'graphql';\n\nexport type DirectiveInfo = {\n [fieldName: string]: { [argName: string]: any };\n};\n\nexport function shouldInclude(\n { directives }: SelectionNode,\n variables?: Record<string, any>,\n): boolean {\n if (!directives || !directives.length) {\n return true;\n }\n return getInclusionDirectives(\n directives\n ).every(({ directive, ifArgument }) => {\n let evaledValue: boolean = false;\n if (ifArgument.value.kind === 'Variable') {\n evaledValue = variables && variables[(ifArgument.value as VariableNode).name.value];\n invariant(\n evaledValue !== void 0,\n `Invalid variable referenced in @${directive.name.value} directive.`,\n );\n } else {\n evaledValue = (ifArgument.value as BooleanValueNode).value;\n }\n return directive.name.value === 'skip' ? !evaledValue : evaledValue;\n });\n}\n\nexport function getDirectiveNames(root: ASTNode) {\n const names: string[] = [];\n\n visit(root, {\n Directive(node: DirectiveNode) {\n names.push(node.name.value);\n },\n });\n\n return names;\n}\n\nexport function hasDirectives(names: string[], root: ASTNode) {\n return getDirectiveNames(root).some(\n (name: string) => names.indexOf(name) > -1,\n );\n}\n\nexport function hasClientExports(document: DocumentNode) {\n return (\n document &&\n hasDirectives(['client'], document) &&\n hasDirectives(['export'], document)\n );\n}\n\nexport type InclusionDirectives = Array<{\n directive: DirectiveNode;\n ifArgument: ArgumentNode;\n}>;\n\nfunction isInclusionDirective({ name: { value } }: DirectiveNode): boolean {\n return value === 'skip' || value === 'include';\n}\n\nexport function getInclusionDirectives(\n directives: ReadonlyArray<DirectiveNode>,\n): InclusionDirectives {\n const result: InclusionDirectives = [];\n\n if (directives && directives.length) {\n directives.forEach(directive => {\n if (!isInclusionDirective(directive)) return;\n\n const directiveArguments = directive.arguments;\n const directiveName = directive.name.value;\n\n invariant(\n directiveArguments && directiveArguments.length === 1,\n `Incorrect number of arguments for the @${directiveName} directive.`,\n );\n\n const ifArgument = directiveArguments![0];\n invariant(\n ifArgument.name && ifArgument.name.value === 'if',\n `Invalid argument for the @${directiveName} directive.`,\n );\n\n const ifValue: ValueNode = ifArgument.value;\n\n // means it has to be a variable value if this is a valid @skip or @include directive\n invariant(\n ifValue &&\n (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'),\n `Argument for the @${directiveName} directive must be a variable or a boolean value.`,\n );\n\n result.push({ directive, ifArgument });\n });\n }\n\n return result;\n}\n\n"]}
1
+ {"version":3,"file":"directives.js","sourceRoot":"","sources":["../../../src/utilities/graphql/directives.ts"],"names":[],"mappings":"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","sourcesContent":["import { invariant } from '../globals';\n\n// Provides the methods that allow QueryManager to handle the `skip` and\n// `include` directives within GraphQL.\nimport {\n SelectionNode,\n VariableNode,\n BooleanValueNode,\n DirectiveNode,\n DocumentNode,\n ArgumentNode,\n ValueNode,\n ASTNode,\n visit,\n BREAK,\n} from 'graphql';\n\nexport type DirectiveInfo = {\n [fieldName: string]: { [argName: string]: any };\n};\n\nexport function shouldInclude(\n { directives }: SelectionNode,\n variables?: Record<string, any>,\n): boolean {\n if (!directives || !directives.length) {\n return true;\n }\n return getInclusionDirectives(\n directives\n ).every(({ directive, ifArgument }) => {\n let evaledValue: boolean = false;\n if (ifArgument.value.kind === 'Variable') {\n evaledValue = variables && variables[(ifArgument.value as VariableNode).name.value];\n invariant(\n evaledValue !== void 0,\n `Invalid variable referenced in @${directive.name.value} directive.`,\n );\n } else {\n evaledValue = (ifArgument.value as BooleanValueNode).value;\n }\n return directive.name.value === 'skip' ? !evaledValue : evaledValue;\n });\n}\n\nexport function getDirectiveNames(root: ASTNode) {\n const names: string[] = [];\n\n visit(root, {\n Directive(node: DirectiveNode) {\n names.push(node.name.value);\n },\n });\n\n return names;\n}\n\nexport const hasAnyDirectives = (\n names: string[],\n root: ASTNode,\n) => hasDirectives(names, root, false);\n\nexport const hasAllDirectives = (\n names: string[],\n root: ASTNode,\n) => hasDirectives(names, root, true);\n\nexport function hasDirectives(\n names: string[],\n root: ASTNode,\n all?: boolean,\n) {\n const nameSet = new Set(names);\n const uniqueCount = nameSet.size;\n\n visit(root, {\n Directive(node) {\n if (\n nameSet.delete(node.name.value) &&\n (!all || !nameSet.size)\n ) {\n return BREAK;\n }\n },\n });\n\n // If we found all the names, nameSet will be empty. If we only care about\n // finding some of them, the < condition is sufficient.\n return all ? !nameSet.size : nameSet.size < uniqueCount;\n}\n\nexport function hasClientExports(document: DocumentNode) {\n return document && hasDirectives(['client', 'export'], document, true);\n}\n\nexport type InclusionDirectives = Array<{\n directive: DirectiveNode;\n ifArgument: ArgumentNode;\n}>;\n\nfunction isInclusionDirective({ name: { value } }: DirectiveNode): boolean {\n return value === 'skip' || value === 'include';\n}\n\nexport function getInclusionDirectives(\n directives: ReadonlyArray<DirectiveNode>,\n): InclusionDirectives {\n const result: InclusionDirectives = [];\n\n if (directives && directives.length) {\n directives.forEach(directive => {\n if (!isInclusionDirective(directive)) return;\n\n const directiveArguments = directive.arguments;\n const directiveName = directive.name.value;\n\n invariant(\n directiveArguments && directiveArguments.length === 1,\n `Incorrect number of arguments for the @${directiveName} directive.`,\n );\n\n const ifArgument = directiveArguments![0];\n invariant(\n ifArgument.name && ifArgument.name.value === 'if',\n `Invalid argument for the @${directiveName} directive.`,\n );\n\n const ifValue: ValueNode = ifArgument.value;\n\n // means it has to be a variable value if this is a valid @skip or @include directive\n invariant(\n ifValue &&\n (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'),\n `Argument for the @${directiveName} directive must be a variable or a boolean value.`,\n );\n\n result.push({ directive, ifArgument });\n });\n }\n\n return result;\n}\n\n"]}
@@ -3,6 +3,7 @@ export declare function getFragmentQueryDocument(document: DocumentNode, fragmen
3
3
  export interface FragmentMap {
4
4
  [fragmentName: string]: FragmentDefinitionNode;
5
5
  }
6
+ export declare type FragmentMapFunction = (fragmentName: string) => FragmentDefinitionNode | null;
6
7
  export declare function createFragmentMap(fragments?: FragmentDefinitionNode[]): FragmentMap;
7
- export declare function getFragmentFromSelection(selection: SelectionNode, fragmentMap?: FragmentMap): InlineFragmentNode | FragmentDefinitionNode | null;
8
+ export declare function getFragmentFromSelection(selection: SelectionNode, fragmentMap?: FragmentMap | FragmentMapFunction): InlineFragmentNode | FragmentDefinitionNode | null;
8
9
  //# sourceMappingURL=fragments.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fragments.d.ts","sourceRoot":"","sources":["../../../src/utilities/graphql/fragments.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,EACd,MAAM,SAAS,CAAC;AA2BjB,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,YAAY,EACtB,YAAY,CAAC,EAAE,MAAM,GACpB,YAAY,CAgEd;AAKD,MAAM,WAAW,WAAW;IAC1B,CAAC,YAAY,EAAE,MAAM,GAAG,sBAAsB,CAAC;CAChD;AAID,wBAAgB,iBAAiB,CAC/B,SAAS,GAAE,sBAAsB,EAAO,GACvC,WAAW,CAMb;AAED,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,aAAa,EACxB,WAAW,CAAC,EAAE,WAAW,GACxB,kBAAkB,GAAG,sBAAsB,GAAG,IAAI,CAYpD"}
1
+ {"version":3,"file":"fragments.d.ts","sourceRoot":"","sources":["../../../src/utilities/graphql/fragments.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,EACd,MAAM,SAAS,CAAC;AA2BjB,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,YAAY,EACtB,YAAY,CAAC,EAAE,MAAM,GACpB,YAAY,CAgEd;AAKD,MAAM,WAAW,WAAW;IAC1B,CAAC,YAAY,EAAE,MAAM,GAAG,sBAAsB,CAAC;CAChD;AAED,oBAAY,mBAAmB,GAC7B,CAAC,YAAY,EAAE,MAAM,KAAK,sBAAsB,GAAG,IAAI,CAAC;AAI1D,wBAAgB,iBAAiB,CAC/B,SAAS,GAAE,sBAAsB,EAAO,GACvC,WAAW,CAMb;AAED,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,aAAa,EACxB,WAAW,CAAC,EAAE,WAAW,GAAG,mBAAmB,GAC9C,kBAAkB,GAAG,sBAAsB,GAAG,IAAI,CAgBpD"}
@@ -6,14 +6,14 @@ export function getFragmentQueryDocument(document, fragmentName) {
6
6
  document.definitions.forEach(function (definition) {
7
7
  if (definition.kind === 'OperationDefinition') {
8
8
  throw __DEV__ ? new InvariantError("Found a ".concat(definition.operation, " operation").concat(definition.name ? " named '".concat(definition.name.value, "'") : '', ". ") +
9
- 'No operations are allowed when using a fragment as a query. Only fragments are allowed.') : new InvariantError(41);
9
+ 'No operations are allowed when using a fragment as a query. Only fragments are allowed.') : new InvariantError(43);
10
10
  }
11
11
  if (definition.kind === 'FragmentDefinition') {
12
12
  fragments.push(definition);
13
13
  }
14
14
  });
15
15
  if (typeof actualFragmentName === 'undefined') {
16
- __DEV__ ? invariant(fragments.length === 1, "Found ".concat(fragments.length, " fragments. `fragmentName` must be provided when there is not exactly 1 fragment.")) : invariant(fragments.length === 1, 42);
16
+ __DEV__ ? invariant(fragments.length === 1, "Found ".concat(fragments.length, " fragments. `fragmentName` must be provided when there is not exactly 1 fragment.")) : invariant(fragments.length === 1, 44);
17
17
  actualFragmentName = fragments[0].name.value;
18
18
  }
19
19
  var query = __assign(__assign({}, document), { definitions: __spreadArray([
@@ -49,9 +49,13 @@ export function getFragmentFromSelection(selection, fragmentMap) {
49
49
  case 'InlineFragment':
50
50
  return selection;
51
51
  case 'FragmentSpread': {
52
- var fragment = fragmentMap && fragmentMap[selection.name.value];
53
- __DEV__ ? invariant(fragment, "No fragment named ".concat(selection.name.value, ".")) : invariant(fragment, 43);
54
- return fragment;
52
+ var fragmentName = selection.name.value;
53
+ if (typeof fragmentMap === "function") {
54
+ return fragmentMap(fragmentName);
55
+ }
56
+ var fragment = fragmentMap && fragmentMap[fragmentName];
57
+ __DEV__ ? invariant(fragment, "No fragment named ".concat(fragmentName)) : invariant(fragment, 45);
58
+ return fragment || null;
55
59
  }
56
60
  default:
57
61
  return null;