@apollo/client 3.6.0-beta.7 → 3.6.0-rc.0
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.
- package/apollo-client.cjs +294 -199
- package/apollo-client.cjs.map +1 -1
- package/apollo-client.min.cjs +1 -1
- package/core/ApolloClient.d.ts +1 -1
- package/core/ApolloClient.d.ts.map +1 -1
- package/core/ApolloClient.js.map +1 -1
- package/core/ObservableQuery.d.ts +8 -3
- package/core/ObservableQuery.d.ts.map +1 -1
- package/core/ObservableQuery.js +84 -40
- package/core/ObservableQuery.js.map +1 -1
- package/core/QueryInfo.d.ts.map +1 -1
- package/core/QueryInfo.js +4 -2
- package/core/QueryInfo.js.map +1 -1
- package/core/QueryManager.d.ts.map +1 -1
- package/core/QueryManager.js +27 -8
- package/core/QueryManager.js.map +1 -1
- package/core/core.cjs +112 -50
- package/core/core.cjs.map +1 -1
- package/core/index.d.ts +1 -1
- package/core/index.d.ts.map +1 -1
- package/core/index.js +1 -1
- package/core/index.js.map +1 -1
- package/core/watchQueryOptions.d.ts +10 -1
- package/core/watchQueryOptions.d.ts.map +1 -1
- package/core/watchQueryOptions.js.map +1 -1
- package/invariantErrorCodes.js +1 -1
- package/package.json +15 -13
- package/react/hooks/hooks.cjs +181 -148
- package/react/hooks/hooks.cjs.map +1 -1
- package/react/hooks/index.d.ts +1 -1
- package/react/hooks/index.d.ts.map +1 -1
- package/react/hooks/index.js +1 -1
- package/react/hooks/index.js.map +1 -1
- package/react/hooks/useLazyQuery.d.ts +2 -2
- package/react/hooks/useLazyQuery.d.ts.map +1 -1
- package/react/hooks/useLazyQuery.js +37 -21
- package/react/hooks/useLazyQuery.js.map +1 -1
- package/react/hooks/useMutation.js.map +1 -1
- package/react/hooks/useQuery.d.ts +32 -1
- package/react/hooks/useQuery.d.ts.map +1 -1
- package/react/hooks/useQuery.js +152 -132
- package/react/hooks/useQuery.js.map +1 -1
- package/react/ssr/RenderPromises.d.ts +2 -1
- package/react/ssr/RenderPromises.d.ts.map +1 -1
- package/react/ssr/RenderPromises.js +23 -1
- package/react/ssr/RenderPromises.js.map +1 -1
- package/react/ssr/ssr.cjs +23 -1
- package/react/ssr/ssr.cjs.map +1 -1
- package/react/types/types.d.ts +9 -11
- package/react/types/types.d.ts.map +1 -1
- package/react/types/types.js.map +1 -1
- package/testing/core/mocking/mockFetch.js +1 -1
- package/testing/core/mocking/mockFetch.js.map +1 -1
- package/utilities/graphql/transform.d.ts +2 -2
- package/utilities/graphql/transform.d.ts.map +1 -1
- package/utilities/graphql/transform.js +1 -1
- package/utilities/graphql/transform.js.map +1 -1
- package/utilities/utilities.cjs +1 -1
- package/utilities/utilities.cjs.map +1 -1
- package/version.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQuery.js","sourceRoot":"","sources":["../../../src/react/hooks/useQuery.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n useContext, useEffect, useMemo, useRef, useState,\n} from 'react';\nimport { equal } from '@wry/equality';\nimport { OperationVariables } from '../../core';\nimport { ApolloContextValue, getApolloContext } from '../context';\nimport { ApolloError } from '../../errors';\nimport {\n ApolloClient,\n ApolloQueryResult,\n NetworkStatus,\n ObservableQuery,\n DocumentNode,\n TypedDocumentNode,\n WatchQueryOptions,\n} from '../../core';\nimport {\n QueryHookOptions,\n QueryResult,\n ObservableQueryFields,\n} from '../types/types';\n\nimport { DocumentType, verifyDocumentType } from '../parser';\nimport { useApolloClient } from './useApolloClient';\nimport { canUseWeakMap, isNonEmptyArray } from '../../utilities';\n\nconst {\n prototype: {\n hasOwnProperty,\n },\n} = Object;\n\nexport function useQuery<\n TData = any,\n TVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options?: QueryHookOptions<TData, TVariables>,\n): QueryResult<TData, TVariables> {\n return useInternalState(\n useApolloClient(options && options.client),\n query,\n ).useQuery(options);\n}\n\nfunction useInternalState<TData, TVariables>(\n client: ApolloClient<any>,\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n) {\n const stateRef = useRef<InternalState<TData, TVariables>>();\n if (\n !stateRef.current ||\n client !== stateRef.current.client ||\n query !== stateRef.current.query\n ) {\n stateRef.current = new InternalState(client, query);\n }\n const state = stateRef.current;\n\n // By default, InternalState.prototype.forceUpdate is an empty function, but\n // we replace it here (before anyone has had a chance to see this state yet)\n // with a function that unconditionally forces an update, using the latest\n // setTick function. Updating this state by calling state.forceUpdate is the\n // only way we trigger React component updates (no other useState calls within\n // the InternalState class).\n const [_tick, setTick] = useState(0);\n state.forceUpdate = () => {\n setTick(tick => tick + 1);\n };\n\n return state;\n}\n\nclass InternalState<TData, TVariables> {\n constructor(\n public readonly client: ReturnType<typeof useApolloClient>,\n public readonly query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n ) {\n verifyDocumentType(query, DocumentType.Query);\n }\n\n public forceUpdate() {\n // Replaced (in useInternalState) with a method that triggers an update.\n }\n\n // Methods beginning with use- should be called according to the standard\n // rules of React hooks: only at the top level of the calling function, and\n // without any dynamic conditional logic.\n public useQuery(options: undefined | QueryHookOptions<TData, TVariables>) {\n this.useOptions(options);\n\n const obsQuery = this.useObservableQuery();\n this.useSubscriptionEffect(obsQuery);\n\n const result = this.getCurrentResult();\n\n // TODO Remove this method when we remove support for options.partialRefetch.\n this.unsafeHandlePartialRefetch(result);\n\n return this.toQueryResult(result);\n }\n\n // These members are all populated by the useOptions method, which is called\n // unconditionally at the beginning of the useQuery method, so we can safely\n // use these members in other/later methods without worrying about the\n // possibility they might be undefined.\n private renderPromises: ApolloContextValue[\"renderPromises\"];\n private queryHookOptions: QueryHookOptions<TData, TVariables>;\n private watchQueryOptions: WatchQueryOptions<TVariables, TData>;\n private ssrDisabled: boolean;\n\n private useOptions(\n options: undefined | QueryHookOptions<TData, TVariables>,\n ) {\n this.renderPromises = useContext(getApolloContext()).renderPromises;\n\n const watchQueryOptions = this.createWatchQueryOptions(\n this.queryHookOptions = options || {},\n );\n // Update this.watchQueryOptions, but only when they have changed, which\n // allows us to depend on the referential stability of\n // this.watchQueryOptions elsewhere.\n if (!equal(watchQueryOptions, this.watchQueryOptions)) {\n this.watchQueryOptions = watchQueryOptions;\n }\n\n this.ssrDisabled = !!(options && (\n options.ssr === false ||\n options.skip\n ));\n\n // Make sure state.onCompleted and state.onError always reflect the latest\n // options.onCompleted and options.onError callbacks provided to useQuery,\n // since those functions are often recreated every time useQuery is called.\n // Like the forceUpdate method, the versions of these methods inherited from\n // InternalState.prototype are empty no-ops, but we can override them on the\n // base state object (without modifying the prototype).\n\n this.onCompleted = options\n && options.onCompleted\n || InternalState.prototype.onCompleted;\n\n this.onError = options\n && options.onError\n || InternalState.prototype.onError;\n }\n\n // A function to massage options before passing them to ObservableQuery.\n private createWatchQueryOptions<TData, TVariables>({\n skip,\n ssr,\n onCompleted,\n onError,\n displayName,\n // The above options are useQuery-specific, so this ...otherOptions spread\n // makes otherOptions almost a WatchQueryOptions object, except for the\n // query property that we add below.\n ...otherOptions\n }: QueryHookOptions<TData, TVariables> = {}): WatchQueryOptions<TVariables, TData> {\n // TODO: For some reason, we pass context, which is the React Apollo Context,\n // into observable queries, and test for that.\n const watchQueryOptions: WatchQueryOptions<TVariables, TData> =\n Object.assign(otherOptions, { query: this.query });\n\n if (skip) {\n watchQueryOptions.fetchPolicy = 'standby';\n } else if (\n watchQueryOptions.context?.renderPromises &&\n (\n watchQueryOptions.fetchPolicy === 'network-only' ||\n watchQueryOptions.fetchPolicy === 'cache-and-network'\n )\n ) {\n // this behavior was added to react-apollo without explanation in this PR\n // https://github.com/apollographql/react-apollo/pull/1579\n watchQueryOptions.fetchPolicy = 'cache-first';\n } else if (!watchQueryOptions.fetchPolicy) {\n const defaultOptions = this.client.defaultOptions.watchQuery;\n // cache-first is the default policy, but we explicitly assign it here so\n // the cache policies computed based on options can be cleared\n watchQueryOptions.fetchPolicy =\n defaultOptions && defaultOptions.fetchPolicy || 'cache-first';\n }\n\n if (!watchQueryOptions.variables) {\n watchQueryOptions.variables = {} as TVariables;\n }\n\n return watchQueryOptions;\n }\n\n // Defining these methods as no-ops on the prototype allows us to call\n // state.onCompleted and/or state.onError without worrying about whether a\n // callback was provided.\n private onCompleted(data: TData) {}\n private onError(error: ApolloError) {}\n\n private observable: ObservableQuery<TData, TVariables>;\n private obsQueryFields: Omit<\n ObservableQueryFields<TData, TVariables>,\n \"variables\"\n >;\n\n private useObservableQuery() {\n // See if there is an existing observable that was used to fetch the same\n // data and if so, use it instead since it will contain the proper queryId\n // to fetch the result set. This is used during SSR.\n const obsQuery = this.observable =\n this.renderPromises\n && this.renderPromises.getSSRObservable(this.watchQueryOptions)\n || this.observable // Reuse this.observable if possible (and not SSR)\n || this.client.watchQuery(this.watchQueryOptions);\n\n this.obsQueryFields = useMemo(() => ({\n refetch: obsQuery.refetch.bind(obsQuery),\n fetchMore: obsQuery.fetchMore.bind(obsQuery),\n updateQuery: obsQuery.updateQuery.bind(obsQuery),\n startPolling: obsQuery.startPolling.bind(obsQuery),\n stopPolling: obsQuery.stopPolling.bind(obsQuery),\n subscribeToMore: obsQuery.subscribeToMore.bind(obsQuery),\n }), [obsQuery]);\n\n if (this.renderPromises) {\n this.renderPromises.registerSSRObservable(obsQuery);\n\n if (!this.ssrDisabled && obsQuery.getCurrentResult().loading) {\n // TODO: This is a legacy API which could probably be cleaned up\n this.renderPromises.addQueryPromise({\n // The only options which seem to actually be used by the\n // RenderPromises class are query and variables.\n getOptions: () => obsQuery.options,\n fetchData: () => new Promise<void>((resolve) => {\n const sub = obsQuery.subscribe({\n next(result) {\n if (!result.loading) {\n resolve()\n sub.unsubscribe();\n }\n },\n error() {\n resolve();\n sub.unsubscribe();\n },\n complete() {\n resolve();\n },\n });\n }),\n },\n // This callback never seemed to do anything\n () => null);\n\n // TODO: This is a hack to make sure useLazyQuery executions update the\n // obsevable query options for ssr.\n obsQuery.setOptions(this.watchQueryOptions).catch(() => {});\n }\n }\n\n const prevOptionsRef = useRef({\n watchQueryOptions: this.watchQueryOptions,\n });\n\n // An effect to keep obsQuery.options up to date in case\n // state.watchQueryOptions changes.\n useEffect(() => {\n if (this.renderPromises) {\n // Do nothing during server rendering.\n } else if (\n // The useOptions method only updates this.watchQueryOptions if new new\n // watchQueryOptions are not deep-equal to the previous options, so we\n // only need a reference check (!==) here.\n this.watchQueryOptions !== prevOptionsRef.current.watchQueryOptions\n ) {\n obsQuery.setOptions(this.watchQueryOptions).catch(() => {});\n prevOptionsRef.current.watchQueryOptions = this.watchQueryOptions;\n this.setResult(obsQuery.getCurrentResult());\n }\n }, [obsQuery, this.watchQueryOptions]);\n\n return obsQuery;\n }\n\n private useSubscriptionEffect(\n // We could use this.observable and not pass this obsQuery parameter, but I\n // like the guarantee that obsQuery won't change, whereas this.observable\n // could change without warning (in theory).\n obsQuery: ObservableQuery<TData, TVariables>,\n ) {\n // An effect to subscribe to the current observable query\n useEffect(() => {\n if (this.renderPromises) {\n return;\n }\n\n const onNext = () => {\n const previousResult = this.result;\n // We use `getCurrentResult()` instead of the onNext argument because\n // the values differ slightly. Specifically, loading results will have\n // an empty object for data instead of `undefined` for some reason.\n const result = obsQuery.getCurrentResult();\n // Make sure we're not attempting to re-render similar results\n if (\n previousResult &&\n previousResult.loading === result.loading &&\n previousResult.networkStatus === result.networkStatus &&\n equal(previousResult.data, result.data)\n ) {\n return;\n }\n\n this.setResult(result);\n };\n\n const onError = (error: Error) => {\n const last = obsQuery[\"last\"];\n subscription.unsubscribe();\n // Unfortunately, if `lastError` is set in the current\n // `observableQuery` when the subscription is re-created,\n // the subscription will immediately receive the error, which will\n // cause it to terminate again. To avoid this, we first clear\n // the last error/result from the `observableQuery` before re-starting\n // the subscription, and restore it afterwards (so the subscription\n // has a chance to stay open).\n try {\n obsQuery.resetLastResults();\n subscription = obsQuery.subscribe(onNext, onError);\n } finally {\n obsQuery[\"last\"] = last;\n }\n\n if (!hasOwnProperty.call(error, 'graphQLErrors')) {\n // The error is not a GraphQL error\n throw error;\n }\n\n const previousResult = this.result;\n if (\n !previousResult ||\n (previousResult && previousResult.loading) ||\n !equal(error, previousResult.error)\n ) {\n this.setResult({\n data: (previousResult && previousResult.data) as TData,\n error: error as ApolloError,\n loading: false,\n networkStatus: NetworkStatus.error,\n });\n }\n };\n\n let subscription = obsQuery.subscribe(onNext, onError);\n\n return () => subscription.unsubscribe();\n }, [\n obsQuery,\n this.renderPromises,\n this.client.disableNetworkFetches,\n ]);\n }\n\n // These members are populated by getCurrentResult and setResult, and it's\n // okay/normal for them to be initially undefined.\n private result: undefined | ApolloQueryResult<TData>;\n private previousData: undefined | TData;\n\n private setResult(nextResult: ApolloQueryResult<TData>) {\n const previousResult = this.result;\n if (previousResult && previousResult.data) {\n this.previousData = previousResult.data;\n }\n this.result = nextResult;\n // Calling state.setResult always triggers an update, though some call sites\n // perform additional equality checks before committing to an update.\n this.forceUpdate();\n this.handleErrorOrCompleted(nextResult);\n }\n\n private handleErrorOrCompleted(result: ApolloQueryResult<TData>) {\n if (!result.loading) {\n if (result.error) {\n this.onError(result.error);\n } else if (result.data) {\n this.onCompleted(result.data);\n }\n }\n }\n\n private getCurrentResult(): ApolloQueryResult<TData> {\n let { result } = this;\n // Using this.result as a cache ensures getCurrentResult continues returning\n // the same (===) result object, unless state.setResult has been called, or\n // we're doing server rendering and therefore override the result below.\n if (!result) {\n result = this.result = this.observable.getCurrentResult();\n this.handleErrorOrCompleted(result);\n }\n\n if (\n (this.renderPromises || this.client.disableNetworkFetches) &&\n this.queryHookOptions.ssr === false\n ) {\n // If SSR has been explicitly disabled, and this function has been called\n // on the server side, return the default loading state.\n result = {\n loading: true,\n data: void 0 as unknown as TData,\n error: void 0,\n networkStatus: NetworkStatus.loading,\n };\n } else if (\n this.queryHookOptions.skip ||\n this.queryHookOptions.fetchPolicy === 'standby'\n ) {\n // When skipping a query (ie. we're not querying for data but still want to\n // render children), make sure the `data` is cleared out and `loading` is\n // set to `false` (since we aren't loading anything).\n //\n // NOTE: We no longer think this is the correct behavior. Skipping should\n // not automatically set `data` to `undefined`, but instead leave the\n // previous data in place. In other words, skipping should not mandate that\n // previously received data is all of a sudden removed. Unfortunately,\n // changing this is breaking, so we'll have to wait until Apollo Client 4.0\n // to address this.\n result = {\n loading: false,\n data: void 0 as unknown as TData,\n error: void 0,\n networkStatus: NetworkStatus.ready,\n };\n }\n\n return result;\n }\n\n // This cache allows the referential stability of this.result (as returned by\n // getCurrentResult) to translate into referential stability of the resulting\n // QueryResult object returned by toQueryResult.\n private toQueryResultCache = new (canUseWeakMap ? WeakMap : Map)<\n ApolloQueryResult<TData>,\n QueryResult<TData, TVariables>\n >();\n\n private toQueryResult(\n result: ApolloQueryResult<TData>,\n ): QueryResult<TData, TVariables> {\n let queryResult = this.toQueryResultCache.get(result);\n if (queryResult) return queryResult;\n\n const { data, partial, ...resultWithoutPartial } = result;\n this.toQueryResultCache.set(result, queryResult = {\n data, // Ensure always defined, even if result.data is missing.\n ...resultWithoutPartial,\n ...this.obsQueryFields,\n client: this.client,\n observable: this.observable,\n variables: this.observable.variables,\n called: true,\n previousData: this.previousData,\n });\n\n if (!queryResult.error && isNonEmptyArray(result.errors)) {\n // Until a set naming convention for networkError and graphQLErrors is\n // decided upon, we map errors (graphQLErrors) to the error options.\n // TODO: Is it possible for both result.error and result.errors to be\n // defined here?\n queryResult.error = new ApolloError({ graphQLErrors: result.errors });\n }\n\n return queryResult;\n }\n\n private unsafeHandlePartialRefetch(result: ApolloQueryResult<TData>) {\n // WARNING: SIDE-EFFECTS IN THE RENDER FUNCTION\n //\n // TODO: This code should be removed when the partialRefetch option is\n // removed. I was unable to get this hook to behave reasonably in certain\n // edge cases when this block was put in an effect.\n if (\n result.partial &&\n this.queryHookOptions.partialRefetch &&\n !result.loading &&\n (!result.data || Object.keys(result.data).length === 0) &&\n this.observable.options.fetchPolicy !== 'cache-only'\n ) {\n Object.assign(result, {\n loading: true,\n networkStatus: NetworkStatus.refetch,\n });\n this.observable.refetch();\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"useQuery.js","sourceRoot":"","sources":["../../../src/react/hooks/useQuery.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useSyncExternalStore } from 'use-sync-external-store/shim/index.js';\nimport { equal } from '@wry/equality';\n\nimport { mergeOptions, OperationVariables } from '../../core';\nimport { ApolloContextValue, getApolloContext } from '../context';\nimport { ApolloError } from '../../errors';\nimport {\n ApolloClient,\n ApolloQueryResult,\n NetworkStatus,\n ObservableQuery,\n DocumentNode,\n TypedDocumentNode,\n WatchQueryOptions,\n} from '../../core';\nimport {\n QueryHookOptions,\n QueryResult,\n ObservableQueryFields,\n} from '../types/types';\n\nimport { DocumentType, verifyDocumentType } from '../parser';\nimport { useApolloClient } from './useApolloClient';\nimport { canUseWeakMap, isNonEmptyArray, maybeDeepFreeze } from '../../utilities';\n\nconst {\n prototype: {\n hasOwnProperty,\n },\n} = Object;\n\nexport function useQuery<\n TData = any,\n TVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: QueryHookOptions<TData, TVariables> = Object.create(null),\n): QueryResult<TData, TVariables> {\n return useInternalState(\n useApolloClient(options.client),\n query,\n ).useQuery(options);\n}\n\nexport function useInternalState<TData, TVariables>(\n client: ApolloClient<any>,\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n): InternalState<TData, TVariables> {\n const stateRef = useRef<InternalState<TData, TVariables>>();\n if (\n !stateRef.current ||\n client !== stateRef.current.client ||\n query !== stateRef.current.query\n ) {\n stateRef.current = new InternalState(client, query);\n }\n const state = stateRef.current;\n\n // By default, InternalState.prototype.forceUpdate is an empty function, but\n // we replace it here (before anyone has had a chance to see this state yet)\n // with a function that unconditionally forces an update, using the latest\n // setTick function. Updating this state by calling state.forceUpdate is the\n // only way we trigger React component updates (no other useState calls within\n // the InternalState class).\n const [_tick, setTick] = useState(0);\n state.forceUpdate = () => {\n setTick(tick => tick + 1);\n };\n\n return state;\n}\n\nclass InternalState<TData, TVariables> {\n constructor(\n public readonly client: ReturnType<typeof useApolloClient>,\n public readonly query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n ) {\n verifyDocumentType(query, DocumentType.Query);\n }\n\n forceUpdate() {\n // Replaced (in useInternalState) with a method that triggers an update.\n }\n\n // Methods beginning with use- should be called according to the standard\n // rules of React hooks: only at the top level of the calling function, and\n // without any dynamic conditional logic.\n useQuery(options: QueryHookOptions<TData, TVariables>) {\n // The renderPromises field gets initialized here in the useQuery method, at\n // the beginning of everything (for a given component rendering, at least),\n // so we can safely use this.renderPromises in other/later InternalState\n // methods without worrying it might be uninitialized. Even after\n // initialization, this.renderPromises is usually undefined (unless SSR is\n // happening), but that's fine as long as it has been initialized that way,\n // rather than left uninitialized.\n this.renderPromises = useContext(getApolloContext()).renderPromises;\n\n this.useOptions(options);\n\n const obsQuery = this.useObservableQuery();\n\n const result = useSyncExternalStore(\n useCallback(() => {\n if (this.renderPromises) {\n return () => {};\n }\n\n const onNext = () => {\n const previousResult = this.result;\n // We use `getCurrentResult()` instead of the onNext argument because\n // the values differ slightly. Specifically, loading results will have\n // an empty object for data instead of `undefined` for some reason.\n const result = obsQuery.getCurrentResult();\n // Make sure we're not attempting to re-render similar results\n if (\n previousResult &&\n previousResult.loading === result.loading &&\n previousResult.networkStatus === result.networkStatus &&\n equal(previousResult.data, result.data)\n ) {\n return;\n }\n\n this.setResult(result);\n };\n\n const onError = (error: Error) => {\n const last = obsQuery[\"last\"];\n subscription.unsubscribe();\n // Unfortunately, if `lastError` is set in the current\n // `observableQuery` when the subscription is re-created,\n // the subscription will immediately receive the error, which will\n // cause it to terminate again. To avoid this, we first clear\n // the last error/result from the `observableQuery` before re-starting\n // the subscription, and restore it afterwards (so the subscription\n // has a chance to stay open).\n try {\n obsQuery.resetLastResults();\n subscription = obsQuery.subscribe(onNext, onError);\n } finally {\n obsQuery[\"last\"] = last;\n }\n\n if (!hasOwnProperty.call(error, 'graphQLErrors')) {\n // The error is not a GraphQL error\n throw error;\n }\n\n const previousResult = this.result;\n if (\n !previousResult ||\n (previousResult && previousResult.loading) ||\n !equal(error, previousResult.error)\n ) {\n this.setResult({\n data: (previousResult && previousResult.data) as TData,\n error: error as ApolloError,\n loading: false,\n networkStatus: NetworkStatus.error,\n });\n }\n };\n\n let subscription = obsQuery.subscribe(onNext, onError);\n\n return () => subscription.unsubscribe();\n }, [\n // We memoize the subscribe function using useCallback and the following\n // dependency keys, because the subscribe function reference is all that\n // useSyncExternalStore uses internally as a dependency key for the\n // useEffect ultimately responsible for the subscription, so we are\n // effectively passing this dependency array to that useEffect buried\n // inside useSyncExternalStore, as desired.\n obsQuery,\n this.renderPromises,\n this.client.disableNetworkFetches,\n ]),\n\n () => this.getCurrentResult(),\n );\n\n // TODO Remove this method when we remove support for options.partialRefetch.\n this.unsafeHandlePartialRefetch(result);\n\n return this.toQueryResult(result);\n }\n\n // These members (except for renderPromises) are all populated by the\n // useOptions method, which is called unconditionally at the beginning of the\n // useQuery method, so we can safely use these members in other/later methods\n // without worrying they might be uninitialized.\n private renderPromises: ApolloContextValue[\"renderPromises\"];\n private queryHookOptions: QueryHookOptions<TData, TVariables>;\n private watchQueryOptions: WatchQueryOptions<TVariables, TData>;\n private ssrDisabled: boolean;\n\n private useOptions(\n options: QueryHookOptions<TData, TVariables>,\n ) {\n const watchQueryOptions = this.createWatchQueryOptions(\n this.queryHookOptions = options,\n );\n\n // Update this.watchQueryOptions, but only when they have changed, which\n // allows us to depend on the referential stability of\n // this.watchQueryOptions elsewhere.\n const currentWatchQueryOptions = this.watchQueryOptions;\n let resolveFetchBlockingPromise: undefined | ((result: boolean) => any);\n\n if (!equal(watchQueryOptions, currentWatchQueryOptions)) {\n this.watchQueryOptions = watchQueryOptions;\n if (currentWatchQueryOptions && this.observable) {\n // Though it might be tempting to postpone this setOptions call to the\n // useEffect block, we need getCurrentResult to return an appropriate\n // loading:true result synchronously (later within the same call to\n // useQuery). Since we already have this.observable here (not true for\n // the very first call to useQuery), we are not initiating any new\n // subscriptions, though it does feel less than ideal that setOptions\n // (potentially) kicks off a network request (for example, when the\n // variables have changed). To prevent any risk of premature/unwanted\n // network traffic, we use a fetchBlockingPromise, which will only be\n // unblocked once the useEffect has fired.\n this.observable.reobserve({\n fetchBlockingPromise: new Promise<boolean>(resolve => {\n resolveFetchBlockingPromise = resolve;\n }),\n // If watchQueryOptions.fetchBlockingPromise is also defined, it takes\n // precedence over the fetchBlockingPromise we just created.\n ...watchQueryOptions,\n });\n\n this.previousData = this.result?.data || this.previousData;\n this.result = void 0;\n }\n }\n\n useUnblockFetchEffect(this.renderPromises, resolveFetchBlockingPromise);\n\n this.ssrDisabled = !!(\n options.ssr === false ||\n options.skip\n );\n\n // Make sure state.onCompleted and state.onError always reflect the latest\n // options.onCompleted and options.onError callbacks provided to useQuery,\n // since those functions are often recreated every time useQuery is called.\n // Like the forceUpdate method, the versions of these methods inherited from\n // InternalState.prototype are empty no-ops, but we can override them on the\n // base state object (without modifying the prototype).\n this.onCompleted = options.onCompleted || InternalState.prototype.onCompleted;\n this.onError = options.onError || InternalState.prototype.onError;\n\n if (\n (this.renderPromises || this.client.disableNetworkFetches) &&\n this.queryHookOptions.ssr === false\n ) {\n // If SSR has been explicitly disabled, and this function has been called\n // on the server side, return the default loading state.\n this.result = this.ssrDisabledResult;\n } else if (\n this.queryHookOptions.skip ||\n this.watchQueryOptions.fetchPolicy === 'standby'\n ) {\n // When skipping a query (ie. we're not querying for data but still want to\n // render children), make sure the `data` is cleared out and `loading` is\n // set to `false` (since we aren't loading anything).\n //\n // NOTE: We no longer think this is the correct behavior. Skipping should\n // not automatically set `data` to `undefined`, but instead leave the\n // previous data in place. In other words, skipping should not mandate that\n // previously received data is all of a sudden removed. Unfortunately,\n // changing this is breaking, so we'll have to wait until Apollo Client 4.0\n // to address this.\n this.result = this.skipStandbyResult;\n } else if (\n this.result === this.ssrDisabledResult ||\n this.result === this.skipStandbyResult\n ) {\n this.result = void 0;\n }\n }\n\n private ssrDisabledResult = maybeDeepFreeze({\n loading: true,\n data: void 0 as unknown as TData,\n error: void 0,\n networkStatus: NetworkStatus.loading,\n });\n\n private skipStandbyResult = maybeDeepFreeze({\n loading: false,\n data: void 0 as unknown as TData,\n error: void 0,\n networkStatus: NetworkStatus.ready,\n });\n\n // A function to massage options before passing them to ObservableQuery.\n private createWatchQueryOptions({\n skip,\n ssr,\n onCompleted,\n onError,\n displayName,\n defaultOptions,\n // The above options are useQuery-specific, so this ...otherOptions spread\n // makes otherOptions almost a WatchQueryOptions object, except for the\n // query property that we add below.\n ...otherOptions\n }: QueryHookOptions<TData, TVariables> = {}): WatchQueryOptions<TVariables, TData> {\n // We use the mergeOptions helper function (which uses compact(...) and\n // shallow-merges variables) to combine globalDefaults with any local\n // defaultOptions provided to useQuery.\n const toMerge: Partial<WatchQueryOptions<TVariables, TData>>[] = [];\n\n // Merge global client.watchQuery default options with the lowest priority.\n const globalDefaults = this.client.defaultOptions.watchQuery;\n if (globalDefaults) toMerge.push(globalDefaults);\n\n // Next, merge any defaultOptions passed directly to useQuery.\n if (defaultOptions) toMerge.push(defaultOptions);\n\n const latestOptions = this.observable && this.observable.options;\n if (latestOptions && toMerge.length) {\n // If we already have this.watchQueryOptions, those options should take\n // precedence over default options of the same name. It might be simpler\n // to do toMerge.push(this.watchQueryOptions), but that potentially\n // (re)injects unrelated/unwanted options. Passing Object.create(null) as\n // the second argument to toMerge.reduce ensures the result is a newly\n // created object, so we can safely modify it in the forEach loop below.\n const defaults = toMerge.reduce(mergeOptions, Object.create(null));\n\n // Compact the toMerge array to hold only the merged defaults. This is\n // equivalent to toMerge.splice(0, toMerge.length, defaults).\n toMerge.length = 1;\n toMerge[0] = defaults;\n\n Object.keys(defaults).forEach(\n (defaultOptionName: keyof WatchQueryOptions<TVariables, TData>) => {\n const currentOptionValue = latestOptions[defaultOptionName];\n if (\n hasOwnProperty.call(latestOptions, defaultOptionName) &&\n !equal(defaults[defaultOptionName], currentOptionValue)\n ) {\n // If you keep passing useQuery({ defaultOptions: { variables }}),\n // those default variables continue to provide their default values\n // every time, though in most cases this.watchQueryOptions.variables\n // will have a current value for every default variable name, so the\n // defaults don't matter. However, if a variable has been removed\n // from this.watchQueryOptions.variables, future useQuery calls can\n // restore its default value from defaultOptions.variables.\n defaults[defaultOptionName] = defaultOptionName === \"variables\"\n ? { ...defaults.variables, ...currentOptionValue }\n : currentOptionValue;\n }\n },\n );\n }\n\n // Give highest precedence to any non-default WatchQueryOptions passed\n // directly to useQuery.\n toMerge.push(otherOptions);\n\n const merged = toMerge.reduce(mergeOptions, Object.create(null));\n\n // This Object.assign is safe because merged is the fresh object created by\n // the Object.create(null) argument to toMerge.reduce.\n const watchQueryOptions: WatchQueryOptions<TVariables, TData> =\n Object.assign(merged, { query: this.query });\n\n if (\n this.renderPromises &&\n (\n watchQueryOptions.fetchPolicy === 'network-only' ||\n watchQueryOptions.fetchPolicy === 'cache-and-network'\n )\n ) {\n // this behavior was added to react-apollo without explanation in this PR\n // https://github.com/apollographql/react-apollo/pull/1579\n watchQueryOptions.fetchPolicy = 'cache-first';\n } else if (!watchQueryOptions.fetchPolicy) {\n // We applied all available fetchPolicy default values above (from\n // globalDefaults and defaultOptions), so, if fetchPolicy is still\n // undefined, fall back to the default default (no typo), cache-first.\n watchQueryOptions.fetchPolicy = 'cache-first';\n }\n\n if (skip) {\n const {\n // The watchQueryOptions.initialFetchPolicy field usually defaults to\n // watchQueryOptions.fetchPolicy, which has now been properly\n // defaulted/initialized. However, watchQueryOptions.initialFetchPolicy\n // can be provided explicitly instead, if more control is desired.\n initialFetchPolicy = watchQueryOptions.fetchPolicy,\n } = watchQueryOptions;\n\n // When skipping, we set watchQueryOptions.fetchPolicy initially to\n // \"standby\", but we also need/want to preserve the initial non-standby\n // fetchPolicy that would have been used if not skipping.\n Object.assign(watchQueryOptions, {\n initialFetchPolicy,\n fetchPolicy: 'standby',\n });\n }\n\n if (!watchQueryOptions.variables) {\n watchQueryOptions.variables = {} as TVariables;\n }\n\n return watchQueryOptions;\n }\n\n // Defining these methods as no-ops on the prototype allows us to call\n // state.onCompleted and/or state.onError without worrying about whether a\n // callback was provided.\n private onCompleted(data: TData) {}\n private onError(error: ApolloError) {}\n\n private observable: ObservableQuery<TData, TVariables>;\n private obsQueryFields: Omit<\n ObservableQueryFields<TData, TVariables>,\n \"variables\"\n >;\n\n private useObservableQuery() {\n let resolveFetchBlockingPromise: undefined | ((result: boolean) => any);\n\n // See if there is an existing observable that was used to fetch the same\n // data and if so, use it instead since it will contain the proper queryId\n // to fetch the result set. This is used during SSR.\n const obsQuery = this.observable =\n this.renderPromises\n && this.renderPromises.getSSRObservable(this.watchQueryOptions)\n || this.observable // Reuse this.observable if possible (and not SSR)\n || this.client.watchQuery({\n fetchBlockingPromise: new Promise<boolean>(resolve => {\n resolveFetchBlockingPromise = resolve;\n }),\n ...this.watchQueryOptions,\n });\n\n useUnblockFetchEffect(this.renderPromises, resolveFetchBlockingPromise);\n\n this.obsQueryFields = useMemo(() => ({\n refetch: obsQuery.refetch.bind(obsQuery),\n reobserve: obsQuery.reobserve.bind(obsQuery),\n fetchMore: obsQuery.fetchMore.bind(obsQuery),\n updateQuery: obsQuery.updateQuery.bind(obsQuery),\n startPolling: obsQuery.startPolling.bind(obsQuery),\n stopPolling: obsQuery.stopPolling.bind(obsQuery),\n subscribeToMore: obsQuery.subscribeToMore.bind(obsQuery),\n }), [obsQuery]);\n\n if (this.renderPromises) {\n this.renderPromises.registerSSRObservable(obsQuery);\n\n if (!this.ssrDisabled && obsQuery.getCurrentResult().loading) {\n // TODO: This is a legacy API which could probably be cleaned up\n this.renderPromises.addObservableQueryPromise(obsQuery);\n }\n }\n\n return obsQuery;\n }\n\n // These members are populated by getCurrentResult and setResult, and it's\n // okay/normal for them to be initially undefined.\n private result: undefined | ApolloQueryResult<TData>;\n private previousData: undefined | TData;\n\n private setResult(nextResult: ApolloQueryResult<TData>) {\n const previousResult = this.result;\n if (previousResult && previousResult.data) {\n this.previousData = previousResult.data;\n }\n this.result = nextResult;\n // Calling state.setResult always triggers an update, though some call sites\n // perform additional equality checks before committing to an update.\n this.forceUpdate();\n this.handleErrorOrCompleted(nextResult);\n }\n\n private handleErrorOrCompleted(result: ApolloQueryResult<TData>) {\n if (!result.loading) {\n if (result.error) {\n this.onError(result.error);\n } else if (result.data) {\n this.onCompleted(result.data);\n }\n }\n }\n\n private getCurrentResult(): ApolloQueryResult<TData> {\n // Using this.result as a cache ensures getCurrentResult continues returning\n // the same (===) result object, unless state.setResult has been called, or\n // we're doing server rendering and therefore override the result below.\n if (!this.result) {\n this.handleErrorOrCompleted(\n this.result = this.observable.getCurrentResult()\n );\n }\n return this.result;\n }\n\n // This cache allows the referential stability of this.result (as returned by\n // getCurrentResult) to translate into referential stability of the resulting\n // QueryResult object returned by toQueryResult.\n private toQueryResultCache = new (canUseWeakMap ? WeakMap : Map)<\n ApolloQueryResult<TData>,\n QueryResult<TData, TVariables>\n >();\n\n toQueryResult(\n result: ApolloQueryResult<TData>,\n ): QueryResult<TData, TVariables> {\n let queryResult = this.toQueryResultCache.get(result);\n if (queryResult) return queryResult;\n\n const { data, partial, ...resultWithoutPartial } = result;\n this.toQueryResultCache.set(result, queryResult = {\n data, // Ensure always defined, even if result.data is missing.\n ...resultWithoutPartial,\n ...this.obsQueryFields,\n client: this.client,\n observable: this.observable,\n variables: this.observable.variables,\n called: true,\n previousData: this.previousData,\n });\n\n if (!queryResult.error && isNonEmptyArray(result.errors)) {\n // Until a set naming convention for networkError and graphQLErrors is\n // decided upon, we map errors (graphQLErrors) to the error options.\n // TODO: Is it possible for both result.error and result.errors to be\n // defined here?\n queryResult.error = new ApolloError({ graphQLErrors: result.errors });\n }\n\n return queryResult;\n }\n\n private unsafeHandlePartialRefetch(result: ApolloQueryResult<TData>) {\n // WARNING: SIDE-EFFECTS IN THE RENDER FUNCTION\n //\n // TODO: This code should be removed when the partialRefetch option is\n // removed. I was unable to get this hook to behave reasonably in certain\n // edge cases when this block was put in an effect.\n if (\n result.partial &&\n this.queryHookOptions.partialRefetch &&\n !result.loading &&\n (!result.data || Object.keys(result.data).length === 0) &&\n this.observable.options.fetchPolicy !== 'cache-only'\n ) {\n Object.assign(result, {\n loading: true,\n networkStatus: NetworkStatus.refetch,\n });\n this.observable.refetch();\n }\n }\n}\n\nfunction useUnblockFetchEffect<TData, TVars>(\n renderPromises: ApolloContextValue[\"renderPromises\"],\n resolveFetchBlockingPromise?: (result: boolean) => any,\n) {\n if (resolveFetchBlockingPromise) {\n if (renderPromises) {\n // Since we're doing SSR, the useEffect callback will not be called, so we\n // must unblock the fetchBlockingPromise now.\n resolveFetchBlockingPromise(true);\n } else {\n // Otherwise, silently discard blocked fetches whose useEffect callbacks\n // have not fired within 5 seconds (more than enough time to mount).\n setTimeout(() => resolveFetchBlockingPromise(false), 5000);\n }\n }\n\n useEffect(() => {\n if (resolveFetchBlockingPromise) {\n resolveFetchBlockingPromise(true);\n }\n }, [resolveFetchBlockingPromise]);\n}\n"]}
|
|
@@ -12,7 +12,8 @@ export declare class RenderPromises {
|
|
|
12
12
|
stop(): void;
|
|
13
13
|
registerSSRObservable<TData, TVariables>(observable: ObservableQuery<any, TVariables>): void;
|
|
14
14
|
getSSRObservable<TData, TVariables>(props: QueryDataOptions<TData, TVariables>): ObservableQuery<any, TVariables> | null;
|
|
15
|
-
addQueryPromise(queryInstance: QueryData, finish
|
|
15
|
+
addQueryPromise(queryInstance: QueryData, finish?: () => React.ReactNode): React.ReactNode;
|
|
16
|
+
addObservableQueryPromise<TData, TVariables>(obsQuery: ObservableQuery<TData, TVariables>): import("react").ReactNode;
|
|
16
17
|
hasPromises(): boolean;
|
|
17
18
|
consumeAndAwaitPromises(): Promise<any[]>;
|
|
18
19
|
private lookupQueryInfo;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderPromises.d.ts","sourceRoot":"","sources":["../../../src/react/ssr/RenderPromises.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAIlD,UAAU,SAAS;IACjB,UAAU,IAAI,GAAG,CAAC;IAClB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAcD,qBAAa,cAAc;IAEzB,OAAO,CAAC,aAAa,CAAuD;IAM5E,OAAO,CAAC,aAAa,CAAmD;IAExE,OAAO,CAAC,OAAO,CAAS;IACjB,IAAI;IASJ,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAC5C,UAAU,EAAE,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC;IAOvC,gBAAgB,CAAC,KAAK,EAAE,UAAU,EACvC,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,GACzC,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,IAAI;IAInC,eAAe,CACpB,aAAa,EAAE,SAAS,EACxB,MAAM,EAAE,MAAM,KAAK,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"RenderPromises.d.ts","sourceRoot":"","sources":["../../../src/react/ssr/RenderPromises.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAIlD,UAAU,SAAS;IACjB,UAAU,IAAI,GAAG,CAAC;IAClB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAcD,qBAAa,cAAc;IAEzB,OAAO,CAAC,aAAa,CAAuD;IAM5E,OAAO,CAAC,aAAa,CAAmD;IAExE,OAAO,CAAC,OAAO,CAAS;IACjB,IAAI;IASJ,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAC5C,UAAU,EAAE,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC;IAOvC,gBAAgB,CAAC,KAAK,EAAE,UAAU,EACvC,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,GACzC,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,IAAI;IAInC,eAAe,CACpB,aAAa,EAAE,SAAS,EACxB,MAAM,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,GAC7B,KAAK,CAAC,SAAS;IAkBX,yBAAyB,CAAC,KAAK,EAAE,UAAU,EAChD,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC;IA0BvC,WAAW;IAIX,uBAAuB;IAmB9B,OAAO,CAAC,eAAe;CAYxB"}
|
|
@@ -35,7 +35,29 @@ var RenderPromises = (function () {
|
|
|
35
35
|
return null;
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
return finish();
|
|
38
|
+
return finish ? finish() : null;
|
|
39
|
+
};
|
|
40
|
+
RenderPromises.prototype.addObservableQueryPromise = function (obsQuery) {
|
|
41
|
+
return this.addQueryPromise({
|
|
42
|
+
getOptions: function () { return obsQuery.options; },
|
|
43
|
+
fetchData: function () { return new Promise(function (resolve) {
|
|
44
|
+
var sub = obsQuery.subscribe({
|
|
45
|
+
next: function (result) {
|
|
46
|
+
if (!result.loading) {
|
|
47
|
+
resolve();
|
|
48
|
+
sub.unsubscribe();
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
error: function () {
|
|
52
|
+
resolve();
|
|
53
|
+
sub.unsubscribe();
|
|
54
|
+
},
|
|
55
|
+
complete: function () {
|
|
56
|
+
resolve();
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
}); },
|
|
60
|
+
});
|
|
39
61
|
};
|
|
40
62
|
RenderPromises.prototype.hasPromises = function () {
|
|
41
63
|
return this.queryPromises.size > 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderPromises.js","sourceRoot":"","sources":["../../../src/react/ssr/RenderPromises.ts"],"names":[],"mappings":"AAiBA,SAAS,oBAAoB;IAC3B,OAAO;QACL,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,IAAI;KACjB,CAAC;AACJ,CAAC;AAED;IAAA;QAEU,kBAAa,GAAG,IAAI,GAAG,EAA4C,CAAC;QAMpE,kBAAa,GAAG,IAAI,GAAG,EAAwC,CAAC;QAEhE,YAAO,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"RenderPromises.js","sourceRoot":"","sources":["../../../src/react/ssr/RenderPromises.ts"],"names":[],"mappings":"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","sourcesContent":["import { DocumentNode } from 'graphql';\n\nimport { ObservableQuery } from '../../core';\nimport { QueryDataOptions } from '../types/types';\n\n// TODO: A vestigial interface from when hooks were implemented with utility\n// classes, which should be deleted in the future.\ninterface QueryData {\n getOptions(): any;\n fetchData(): Promise<void>;\n}\n\ntype QueryInfo = {\n seen: boolean;\n observable: ObservableQuery<any, any> | null;\n};\n\nfunction makeDefaultQueryInfo(): QueryInfo {\n return {\n seen: false,\n observable: null\n };\n}\n\nexport class RenderPromises {\n // Map from Query component instances to pending fetchData promises.\n private queryPromises = new Map<QueryDataOptions<any, any>, Promise<any>>();\n\n // Two-layered map from (query document, stringified variables) to QueryInfo\n // objects. These QueryInfo objects are intended to survive through the whole\n // getMarkupFromTree process, whereas specific Query instances do not survive\n // beyond a single call to renderToStaticMarkup.\n private queryInfoTrie = new Map<DocumentNode, Map<string, QueryInfo>>();\n\n private stopped = false;\n public stop() {\n if (!this.stopped) {\n this.queryPromises.clear();\n this.queryInfoTrie.clear();\n this.stopped = true;\n }\n }\n\n // Registers the server side rendered observable.\n public registerSSRObservable<TData, TVariables>(\n observable: ObservableQuery<any, TVariables>,\n ) {\n if (this.stopped) return;\n this.lookupQueryInfo(observable.options).observable = observable;\n }\n\n // Get's the cached observable that matches the SSR Query instances query and variables.\n public getSSRObservable<TData, TVariables>(\n props: QueryDataOptions<TData, TVariables>\n ): ObservableQuery<any, TVariables> | null {\n return this.lookupQueryInfo(props).observable;\n }\n\n public addQueryPromise(\n queryInstance: QueryData,\n finish?: () => React.ReactNode,\n ): React.ReactNode {\n if (!this.stopped) {\n const info = this.lookupQueryInfo(queryInstance.getOptions());\n if (!info.seen) {\n this.queryPromises.set(\n queryInstance.getOptions(),\n new Promise(resolve => {\n resolve(queryInstance.fetchData());\n })\n );\n // Render null to abandon this subtree for this rendering, so that we\n // can wait for the data to arrive.\n return null;\n }\n }\n return finish ? finish() : null;\n }\n\n public addObservableQueryPromise<TData, TVariables>(\n obsQuery: ObservableQuery<TData, TVariables>,\n ) {\n return this.addQueryPromise({\n // The only options which seem to actually be used by the\n // RenderPromises class are query and variables.\n getOptions: () => obsQuery.options,\n fetchData: () => new Promise<void>((resolve) => {\n const sub = obsQuery.subscribe({\n next(result) {\n if (!result.loading) {\n resolve()\n sub.unsubscribe();\n }\n },\n error() {\n resolve();\n sub.unsubscribe();\n },\n complete() {\n resolve();\n },\n });\n }),\n });\n }\n\n public hasPromises() {\n return this.queryPromises.size > 0;\n }\n\n public consumeAndAwaitPromises() {\n const promises: Promise<any>[] = [];\n this.queryPromises.forEach((promise, queryInstance) => {\n // Make sure we never try to call fetchData for this query document and\n // these variables again. Since the queryInstance objects change with\n // every rendering, deduplicating them by query and variables is the\n // best we can do. If a different Query component happens to have the\n // same query document and variables, it will be immediately rendered\n // by calling finish() in addQueryPromise, which could result in the\n // rendering of an unwanted loading state, but that's not nearly as bad\n // as getting stuck in an infinite rendering loop because we kept calling\n // queryInstance.fetchData for the same Query component indefinitely.\n this.lookupQueryInfo(queryInstance).seen = true;\n promises.push(promise);\n });\n this.queryPromises.clear();\n return Promise.all(promises);\n }\n\n private lookupQueryInfo<TData, TVariables>(\n props: QueryDataOptions<TData, TVariables>\n ): QueryInfo {\n const { queryInfoTrie } = this;\n const { query, variables } = props;\n const varMap = queryInfoTrie.get(query) || new Map<string, QueryInfo>();\n if (!queryInfoTrie.has(query)) queryInfoTrie.set(query, varMap);\n const variablesString = JSON.stringify(variables);\n const info = varMap.get(variablesString) || makeDefaultQueryInfo();\n if (!varMap.has(variablesString)) varMap.set(variablesString, info);\n return info;\n }\n}\n"]}
|
package/react/ssr/ssr.cjs
CHANGED
|
@@ -57,7 +57,29 @@ var RenderPromises = (function () {
|
|
|
57
57
|
return null;
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
-
return finish();
|
|
60
|
+
return finish ? finish() : null;
|
|
61
|
+
};
|
|
62
|
+
RenderPromises.prototype.addObservableQueryPromise = function (obsQuery) {
|
|
63
|
+
return this.addQueryPromise({
|
|
64
|
+
getOptions: function () { return obsQuery.options; },
|
|
65
|
+
fetchData: function () { return new Promise(function (resolve) {
|
|
66
|
+
var sub = obsQuery.subscribe({
|
|
67
|
+
next: function (result) {
|
|
68
|
+
if (!result.loading) {
|
|
69
|
+
resolve();
|
|
70
|
+
sub.unsubscribe();
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
error: function () {
|
|
74
|
+
resolve();
|
|
75
|
+
sub.unsubscribe();
|
|
76
|
+
},
|
|
77
|
+
complete: function () {
|
|
78
|
+
resolve();
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
}); },
|
|
82
|
+
});
|
|
61
83
|
};
|
|
62
84
|
RenderPromises.prototype.hasPromises = function () {
|
|
63
85
|
return this.queryPromises.size > 0;
|
package/react/ssr/ssr.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssr.cjs","sources":["RenderPromises.js","getDataFromTree.js","renderToStringWithData.js"],"sourcesContent":["function makeDefaultQueryInfo() {\n return {\n seen: false,\n observable: null\n };\n}\nvar RenderPromises = (function () {\n function RenderPromises() {\n this.queryPromises = new Map();\n this.queryInfoTrie = new Map();\n this.stopped = false;\n }\n RenderPromises.prototype.stop = function () {\n if (!this.stopped) {\n this.queryPromises.clear();\n this.queryInfoTrie.clear();\n this.stopped = true;\n }\n };\n RenderPromises.prototype.registerSSRObservable = function (observable) {\n if (this.stopped)\n return;\n this.lookupQueryInfo(observable.options).observable = observable;\n };\n RenderPromises.prototype.getSSRObservable = function (props) {\n return this.lookupQueryInfo(props).observable;\n };\n RenderPromises.prototype.addQueryPromise = function (queryInstance, finish) {\n if (!this.stopped) {\n var info = this.lookupQueryInfo(queryInstance.getOptions());\n if (!info.seen) {\n this.queryPromises.set(queryInstance.getOptions(), new Promise(function (resolve) {\n resolve(queryInstance.fetchData());\n }));\n return null;\n }\n }\n return finish();\n };\n RenderPromises.prototype.hasPromises = function () {\n return this.queryPromises.size > 0;\n };\n RenderPromises.prototype.consumeAndAwaitPromises = function () {\n var _this = this;\n var promises = [];\n this.queryPromises.forEach(function (promise, queryInstance) {\n _this.lookupQueryInfo(queryInstance).seen = true;\n promises.push(promise);\n });\n this.queryPromises.clear();\n return Promise.all(promises);\n };\n RenderPromises.prototype.lookupQueryInfo = function (props) {\n var queryInfoTrie = this.queryInfoTrie;\n var query = props.query, variables = props.variables;\n var varMap = queryInfoTrie.get(query) || new Map();\n if (!queryInfoTrie.has(query))\n queryInfoTrie.set(query, varMap);\n var variablesString = JSON.stringify(variables);\n var info = varMap.get(variablesString) || makeDefaultQueryInfo();\n if (!varMap.has(variablesString))\n varMap.set(variablesString, info);\n return info;\n };\n return RenderPromises;\n}());\nexport { RenderPromises };\n//# sourceMappingURL=RenderPromises.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { getApolloContext } from '../context';\nimport { RenderPromises } from './RenderPromises';\nexport function getDataFromTree(tree, context) {\n if (context === void 0) { context = {}; }\n return getMarkupFromTree({\n tree: tree,\n context: context,\n renderFunction: require('react-dom/server').renderToStaticMarkup\n });\n}\nexport function getMarkupFromTree(_a) {\n var tree = _a.tree, _b = _a.context, context = _b === void 0 ? {} : _b, _c = _a.renderFunction, renderFunction = _c === void 0 ? require('react-dom/server').renderToStaticMarkup : _c;\n var renderPromises = new RenderPromises();\n function process() {\n var ApolloContext = getApolloContext();\n return new Promise(function (resolve) {\n var element = React.createElement(ApolloContext.Provider, { value: __assign(__assign({}, context), { renderPromises: renderPromises }) }, tree);\n resolve(renderFunction(element));\n }).then(function (html) {\n return renderPromises.hasPromises()\n ? renderPromises.consumeAndAwaitPromises().then(process)\n : html;\n }).finally(function () {\n renderPromises.stop();\n });\n }\n return Promise.resolve().then(process);\n}\n//# sourceMappingURL=getDataFromTree.js.map","import { getMarkupFromTree } from './getDataFromTree';\nexport function renderToStringWithData(component) {\n return getMarkupFromTree({\n tree: component,\n renderFunction: require('react-dom/server').renderToString\n });\n}\n//# sourceMappingURL=renderToStringWithData.js.map"],"names":["context","getApolloContext","React","__assign"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ssr.cjs","sources":["RenderPromises.js","getDataFromTree.js","renderToStringWithData.js"],"sourcesContent":["function makeDefaultQueryInfo() {\n return {\n seen: false,\n observable: null\n };\n}\nvar RenderPromises = (function () {\n function RenderPromises() {\n this.queryPromises = new Map();\n this.queryInfoTrie = new Map();\n this.stopped = false;\n }\n RenderPromises.prototype.stop = function () {\n if (!this.stopped) {\n this.queryPromises.clear();\n this.queryInfoTrie.clear();\n this.stopped = true;\n }\n };\n RenderPromises.prototype.registerSSRObservable = function (observable) {\n if (this.stopped)\n return;\n this.lookupQueryInfo(observable.options).observable = observable;\n };\n RenderPromises.prototype.getSSRObservable = function (props) {\n return this.lookupQueryInfo(props).observable;\n };\n RenderPromises.prototype.addQueryPromise = function (queryInstance, finish) {\n if (!this.stopped) {\n var info = this.lookupQueryInfo(queryInstance.getOptions());\n if (!info.seen) {\n this.queryPromises.set(queryInstance.getOptions(), new Promise(function (resolve) {\n resolve(queryInstance.fetchData());\n }));\n return null;\n }\n }\n return finish ? finish() : null;\n };\n RenderPromises.prototype.addObservableQueryPromise = function (obsQuery) {\n return this.addQueryPromise({\n getOptions: function () { return obsQuery.options; },\n fetchData: function () { return new Promise(function (resolve) {\n var sub = obsQuery.subscribe({\n next: function (result) {\n if (!result.loading) {\n resolve();\n sub.unsubscribe();\n }\n },\n error: function () {\n resolve();\n sub.unsubscribe();\n },\n complete: function () {\n resolve();\n },\n });\n }); },\n });\n };\n RenderPromises.prototype.hasPromises = function () {\n return this.queryPromises.size > 0;\n };\n RenderPromises.prototype.consumeAndAwaitPromises = function () {\n var _this = this;\n var promises = [];\n this.queryPromises.forEach(function (promise, queryInstance) {\n _this.lookupQueryInfo(queryInstance).seen = true;\n promises.push(promise);\n });\n this.queryPromises.clear();\n return Promise.all(promises);\n };\n RenderPromises.prototype.lookupQueryInfo = function (props) {\n var queryInfoTrie = this.queryInfoTrie;\n var query = props.query, variables = props.variables;\n var varMap = queryInfoTrie.get(query) || new Map();\n if (!queryInfoTrie.has(query))\n queryInfoTrie.set(query, varMap);\n var variablesString = JSON.stringify(variables);\n var info = varMap.get(variablesString) || makeDefaultQueryInfo();\n if (!varMap.has(variablesString))\n varMap.set(variablesString, info);\n return info;\n };\n return RenderPromises;\n}());\nexport { RenderPromises };\n//# sourceMappingURL=RenderPromises.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { getApolloContext } from '../context';\nimport { RenderPromises } from './RenderPromises';\nexport function getDataFromTree(tree, context) {\n if (context === void 0) { context = {}; }\n return getMarkupFromTree({\n tree: tree,\n context: context,\n renderFunction: require('react-dom/server').renderToStaticMarkup\n });\n}\nexport function getMarkupFromTree(_a) {\n var tree = _a.tree, _b = _a.context, context = _b === void 0 ? {} : _b, _c = _a.renderFunction, renderFunction = _c === void 0 ? require('react-dom/server').renderToStaticMarkup : _c;\n var renderPromises = new RenderPromises();\n function process() {\n var ApolloContext = getApolloContext();\n return new Promise(function (resolve) {\n var element = React.createElement(ApolloContext.Provider, { value: __assign(__assign({}, context), { renderPromises: renderPromises }) }, tree);\n resolve(renderFunction(element));\n }).then(function (html) {\n return renderPromises.hasPromises()\n ? renderPromises.consumeAndAwaitPromises().then(process)\n : html;\n }).finally(function () {\n renderPromises.stop();\n });\n }\n return Promise.resolve().then(process);\n}\n//# sourceMappingURL=getDataFromTree.js.map","import { getMarkupFromTree } from './getDataFromTree';\nexport function renderToStringWithData(component) {\n return getMarkupFromTree({\n tree: component,\n renderFunction: require('react-dom/server').renderToString\n });\n}\n//# sourceMappingURL=renderToStringWithData.js.map"],"names":["context","getApolloContext","React","__assign"],"mappings":"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"}
|
package/react/types/types.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { TypedDocumentNode } from '@graphql-typed-document-node/core';
|
|
|
4
4
|
import { Observable, ObservableSubscription } from '../../utilities';
|
|
5
5
|
import { FetchResult } from '../../link/core';
|
|
6
6
|
import { ApolloError } from '../../errors';
|
|
7
|
-
import { ApolloCache, ApolloClient,
|
|
7
|
+
import { ApolloCache, ApolloClient, DefaultContext, FetchPolicy, MutationOptions, NetworkStatus, ObservableQuery, OperationVariables, InternalRefetchQueriesInclude, WatchQueryOptions } from '../../core';
|
|
8
8
|
export type { DefaultContext as Context } from "../../core";
|
|
9
9
|
export declare type CommonOptions<TOptions> = TOptions & {
|
|
10
10
|
client?: ApolloClient<object>;
|
|
@@ -19,12 +19,9 @@ export interface QueryFunctionOptions<TData = any, TVariables = OperationVariabl
|
|
|
19
19
|
skip?: boolean;
|
|
20
20
|
onCompleted?: (data: TData) => void;
|
|
21
21
|
onError?: (error: ApolloError) => void;
|
|
22
|
+
defaultOptions?: Partial<WatchQueryOptions<TVariables, TData>>;
|
|
22
23
|
}
|
|
23
|
-
export declare type ObservableQueryFields<TData, TVariables> = Pick<ObservableQuery<TData, TVariables>, 'startPolling' | 'stopPolling' | 'subscribeToMore' | 'updateQuery' | 'refetch' | 'variables'
|
|
24
|
-
fetchMore: ((fetchMoreOptions: FetchMoreQueryOptions<TVariables, TData> & FetchMoreOptions<TData, TVariables>) => Promise<ApolloQueryResult<TData>>) & (<TData2, TVariables2>(fetchMoreOptions: {
|
|
25
|
-
query?: DocumentNode | TypedDocumentNode<TData, TVariables>;
|
|
26
|
-
} & FetchMoreQueryOptions<TVariables2, TData> & FetchMoreOptions<TData2, TVariables2>) => Promise<ApolloQueryResult<TData2>>);
|
|
27
|
-
};
|
|
24
|
+
export declare type ObservableQueryFields<TData, TVariables> = Pick<ObservableQuery<TData, TVariables>, 'startPolling' | 'stopPolling' | 'subscribeToMore' | 'updateQuery' | 'refetch' | 'reobserve' | 'variables' | 'fetchMore'>;
|
|
28
25
|
export interface QueryResult<TData = any, TVariables = OperationVariables> extends ObservableQueryFields<TData, TVariables> {
|
|
29
26
|
client: ApolloClient<any>;
|
|
30
27
|
observable: ObservableQuery<TData, TVariables>;
|
|
@@ -42,17 +39,18 @@ export interface QueryDataOptions<TData = any, TVariables = OperationVariables>
|
|
|
42
39
|
export interface QueryHookOptions<TData = any, TVariables = OperationVariables> extends QueryFunctionOptions<TData, TVariables> {
|
|
43
40
|
query?: DocumentNode | TypedDocumentNode<TData, TVariables>;
|
|
44
41
|
}
|
|
45
|
-
export interface LazyQueryHookOptions<TData = any, TVariables = OperationVariables> extends Omit<
|
|
46
|
-
query?: DocumentNode | TypedDocumentNode<TData, TVariables>;
|
|
42
|
+
export interface LazyQueryHookOptions<TData = any, TVariables = OperationVariables> extends Omit<QueryHookOptions<TData, TVariables>, 'skip'> {
|
|
47
43
|
}
|
|
48
44
|
export interface QueryLazyOptions<TVariables> {
|
|
49
45
|
variables?: TVariables;
|
|
50
46
|
context?: DefaultContext;
|
|
51
47
|
}
|
|
52
48
|
export declare type LazyQueryResult<TData, TVariables> = QueryResult<TData, TVariables>;
|
|
53
|
-
export declare type QueryTuple<TData, TVariables> =
|
|
54
|
-
|
|
55
|
-
|
|
49
|
+
export declare type QueryTuple<TData, TVariables> = LazyQueryResultTuple<TData, TVariables>;
|
|
50
|
+
export declare type LazyQueryExecFunction<TData, TVariables> = (options?: Partial<LazyQueryHookOptions<TData, TVariables>>) => Promise<QueryResult<TData, TVariables>>;
|
|
51
|
+
export declare type LazyQueryResultTuple<TData, TVariables> = [
|
|
52
|
+
LazyQueryExecFunction<TData, TVariables>,
|
|
53
|
+
QueryResult<TData, TVariables>
|
|
56
54
|
];
|
|
57
55
|
export declare type RefetchQueriesFunction = (...args: any[]) => InternalRefetchQueriesInclude;
|
|
58
56
|
export interface BaseMutationOptions<TData = any, TVariables = OperationVariables, TContext = DefaultContext, TCache extends ApolloCache<any> = ApolloCache<any>> extends Omit<MutationOptions<TData, TVariables, TContext, TCache>, "mutation"> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/react/types/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EACL,WAAW,EACX,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/react/types/types.ts"],"names":[],"mappings":"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"}
|
package/react/types/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/react/types/types.ts"],"names":[],"mappings":"","sourcesContent":["import { ReactNode } from 'react';\nimport { DocumentNode } from 'graphql';\nimport { TypedDocumentNode } from '@graphql-typed-document-node/core';\n\nimport { Observable, ObservableSubscription } from '../../utilities';\nimport { FetchResult } from '../../link/core';\nimport { ApolloError } from '../../errors';\nimport {\n ApolloCache,\n ApolloClient,\n
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/react/types/types.ts"],"names":[],"mappings":"","sourcesContent":["import { ReactNode } from 'react';\nimport { DocumentNode } from 'graphql';\nimport { TypedDocumentNode } from '@graphql-typed-document-node/core';\n\nimport { Observable, ObservableSubscription } from '../../utilities';\nimport { FetchResult } from '../../link/core';\nimport { ApolloError } from '../../errors';\nimport {\n ApolloCache,\n ApolloClient,\n DefaultContext,\n FetchPolicy,\n MutationOptions,\n NetworkStatus,\n ObservableQuery,\n OperationVariables,\n InternalRefetchQueriesInclude,\n WatchQueryOptions,\n} from '../../core';\n\n/* Common types */\n\nexport type { DefaultContext as Context } from \"../../core\";\n\nexport type CommonOptions<TOptions> = TOptions & {\n client?: ApolloClient<object>;\n};\n\n/* Query types */\n\nexport interface BaseQueryOptions<TVariables = OperationVariables>\nextends Omit<WatchQueryOptions<TVariables>, \"query\"> {\n ssr?: boolean;\n client?: ApolloClient<any>;\n context?: DefaultContext;\n}\n\nexport interface QueryFunctionOptions<\n TData = any,\n TVariables = OperationVariables\n> extends BaseQueryOptions<TVariables> {\n displayName?: string;\n skip?: boolean;\n onCompleted?: (data: TData) => void;\n onError?: (error: ApolloError) => void;\n\n // Default WatchQueryOptions for this useQuery, providing initial values for\n // unspecified options, superseding client.defaultOptions.watchQuery (option\n // by option, not whole), but never overriding options previously passed to\n // useQuery (or options added/modified later by other means).\n // TODO What about about default values that are expensive to evaluate?\n defaultOptions?: Partial<WatchQueryOptions<TVariables, TData>>;\n}\n\nexport type ObservableQueryFields<TData, TVariables> = Pick<\n ObservableQuery<TData, TVariables>,\n | 'startPolling'\n | 'stopPolling'\n | 'subscribeToMore'\n | 'updateQuery'\n | 'refetch'\n | 'reobserve'\n | 'variables'\n | 'fetchMore'\n>;\n\nexport interface QueryResult<TData = any, TVariables = OperationVariables>\n extends ObservableQueryFields<TData, TVariables> {\n client: ApolloClient<any>;\n observable: ObservableQuery<TData, TVariables>;\n data: TData | undefined;\n previousData?: TData;\n error?: ApolloError;\n loading: boolean;\n networkStatus: NetworkStatus;\n called: boolean;\n}\n\nexport interface QueryDataOptions<TData = any, TVariables = OperationVariables>\n extends QueryFunctionOptions<TData, TVariables> {\n children?: (result: QueryResult<TData, TVariables>) => ReactNode;\n query: DocumentNode | TypedDocumentNode<TData, TVariables>;\n}\n\nexport interface QueryHookOptions<TData = any, TVariables = OperationVariables>\n extends QueryFunctionOptions<TData, TVariables> {\n query?: DocumentNode | TypedDocumentNode<TData, TVariables>;\n}\n\nexport interface LazyQueryHookOptions<\n TData = any,\n TVariables = OperationVariables\n> extends Omit<QueryHookOptions<TData, TVariables>, 'skip'> {}\n\n/**\n * @deprecated TODO Delete this unused interface.\n */\nexport interface QueryLazyOptions<TVariables> {\n variables?: TVariables;\n context?: DefaultContext;\n}\n\n/**\n * @deprecated TODO Delete this unused type alias.\n */\nexport type LazyQueryResult<TData, TVariables> = QueryResult<TData, TVariables>;\n\n/**\n * @deprecated TODO Delete this unused type alias.\n */\nexport type QueryTuple<TData, TVariables> =\n LazyQueryResultTuple<TData, TVariables>;\n\nexport type LazyQueryExecFunction<TData, TVariables> = (\n options?: Partial<LazyQueryHookOptions<TData, TVariables>>,\n) => Promise<QueryResult<TData, TVariables>>;\n\nexport type LazyQueryResultTuple<TData, TVariables> = [\n LazyQueryExecFunction<TData, TVariables>,\n QueryResult<TData, TVariables>,\n];\n\n/* Mutation types */\n\nexport type RefetchQueriesFunction = (\n ...args: any[]\n) => InternalRefetchQueriesInclude;\n\nexport interface BaseMutationOptions<\n TData = any,\n TVariables = OperationVariables,\n TContext = DefaultContext,\n TCache extends ApolloCache<any> = ApolloCache<any>\n> extends Omit<\n MutationOptions<TData, TVariables, TContext, TCache>,\n | \"mutation\"\n> {\n client?: ApolloClient<object>;\n notifyOnNetworkStatusChange?: boolean;\n onCompleted?: (data: TData) => void;\n onError?: (error: ApolloError) => void;\n ignoreResults?: boolean;\n}\n\nexport interface MutationFunctionOptions<\n TData = any,\n TVariables = OperationVariables,\n TContext = DefaultContext,\n TCache extends ApolloCache<any> = ApolloCache<any>,\n> extends BaseMutationOptions<TData, TVariables, TContext, TCache> {\n mutation?: DocumentNode | TypedDocumentNode<TData, TVariables>;\n}\n\nexport interface MutationResult<TData = any> {\n data?: TData | null;\n error?: ApolloError;\n loading: boolean;\n called: boolean;\n client: ApolloClient<object>;\n reset(): void;\n}\n\nexport declare type MutationFunction<\n TData = any,\n TVariables = OperationVariables,\n TContext = DefaultContext,\n TCache extends ApolloCache<any> = ApolloCache<any>,\n> = (\n options?: MutationFunctionOptions<TData, TVariables, TContext, TCache>\n) => Promise<FetchResult<TData>>;\n\nexport interface MutationHookOptions<\n TData = any,\n TVariables = OperationVariables,\n TContext = DefaultContext,\n TCache extends ApolloCache<any> = ApolloCache<any>,\n> extends BaseMutationOptions<TData, TVariables, TContext, TCache> {\n mutation?: DocumentNode | TypedDocumentNode<TData, TVariables>;\n}\n\nexport interface MutationDataOptions<\n TData = any,\n TVariables = OperationVariables,\n TContext = DefaultContext,\n TCache extends ApolloCache<any> = ApolloCache<any>,\n> extends BaseMutationOptions<TData, TVariables, TContext, TCache> {\n mutation: DocumentNode | TypedDocumentNode<TData, TVariables>;\n}\n\nexport type MutationTuple<\n TData,\n TVariables,\n TContext = DefaultContext,\n TCache extends ApolloCache<any> = ApolloCache<any>,\n> = [\n (\n options?: MutationFunctionOptions<TData, TVariables, TContext, TCache>\n // TODO This FetchResult<TData> seems strange here, as opposed to an\n // ApolloQueryResult<TData>\n ) => Promise<FetchResult<TData>>,\n MutationResult<TData>,\n];\n\n/* Subscription types */\n\nexport interface OnSubscriptionDataOptions<TData = any> {\n client: ApolloClient<object>;\n subscriptionData: SubscriptionResult<TData>;\n}\n\nexport interface BaseSubscriptionOptions<\n TData = any,\n TVariables = OperationVariables\n> {\n variables?: TVariables;\n fetchPolicy?: FetchPolicy;\n shouldResubscribe?:\n | boolean\n | ((options: BaseSubscriptionOptions<TData, TVariables>) => boolean);\n client?: ApolloClient<object>;\n skip?: boolean;\n context?: DefaultContext;\n onSubscriptionData?: (options: OnSubscriptionDataOptions<TData>) => any;\n onSubscriptionComplete?: () => void;\n}\n\nexport interface SubscriptionResult<TData = any, TVariables = any> {\n loading: boolean;\n data?: TData;\n error?: ApolloError;\n // This was added by the legacy useSubscription type, and is tested in unit\n // tests, but probably shouldn’t be added to the result.\n variables?: TVariables;\n}\n\nexport interface SubscriptionHookOptions<\n TData = any,\n TVariables = OperationVariables\n> extends BaseSubscriptionOptions<TData, TVariables> {\n subscription?: DocumentNode | TypedDocumentNode<TData, TVariables>;\n}\n\nexport interface SubscriptionDataOptions<\n TData = any,\n TVariables = OperationVariables\n> extends BaseSubscriptionOptions<TData, TVariables> {\n subscription: DocumentNode | TypedDocumentNode<TData, TVariables>;\n children?: null | ((result: SubscriptionResult<TData>) => JSX.Element | null);\n}\n\nexport interface SubscriptionCurrentObservable {\n query?: Observable<any>;\n subscription?: ObservableSubscription;\n}\n"]}
|
|
@@ -14,11 +14,11 @@ export function createMockedIResponse(result, options) {
|
|
|
14
14
|
}
|
|
15
15
|
var MockFetch = (function () {
|
|
16
16
|
function MockFetch() {
|
|
17
|
-
var _this = this;
|
|
18
17
|
var mockedResponses = [];
|
|
19
18
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
20
19
|
mockedResponses[_i] = arguments[_i];
|
|
21
20
|
}
|
|
21
|
+
var _this = this;
|
|
22
22
|
this.mockedResponsesByKey = {};
|
|
23
23
|
mockedResponses.forEach(function (mockedResponse) {
|
|
24
24
|
_this.addMockedResponse(mockedResponse);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mockFetch.js","sourceRoot":"","sources":["../../../../src/testing/core/mocking/mockFetch.ts"],"names":[],"mappings":";AAAA,OAAO,cAAc,CAAC;AAmBtB,MAAM,UAAU,qBAAqB,CACnC,MAAc,EACd,OAAa;IAEb,IAAM,MAAM,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC;IAClD,IAAM,UAAU,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC;IAEhE,OAAO;QACL,EAAE,EAAE,MAAM,KAAK,GAAG;QAClB,MAAM,QAAA;QACN,UAAU,YAAA;QACV,IAAI,EAAJ;YACE,OAAO,OAAO,CAAC,OAAO,CAAS,MAAM,CAAC,CAAC;QACzC,CAAC;KACF,CAAC;AACJ,CAAC;AAED;IAGE;
|
|
1
|
+
{"version":3,"file":"mockFetch.js","sourceRoot":"","sources":["../../../../src/testing/core/mocking/mockFetch.ts"],"names":[],"mappings":";AAAA,OAAO,cAAc,CAAC;AAmBtB,MAAM,UAAU,qBAAqB,CACnC,MAAc,EACd,OAAa;IAEb,IAAM,MAAM,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC;IAClD,IAAM,UAAU,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC;IAEhE,OAAO;QACL,EAAE,EAAE,MAAM,KAAK,GAAG;QAClB,MAAM,QAAA;QACN,UAAU,YAAA;QACV,IAAI,EAAJ;YACE,OAAO,OAAO,CAAC,OAAO,CAAS,MAAM,CAAC,CAAC;QACzC,CAAC;KACF,CAAC;AACJ,CAAC;AAED;IAGE;QAAY,yBAAyC;aAAzC,UAAyC,EAAzC,qBAAyC,EAAzC,IAAyC;YAAzC,oCAAyC;;QAArD,iBAMC;QALC,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAE/B,eAAe,CAAC,OAAO,CAAC,UAAA,cAAc;YACpC,KAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,qCAAiB,GAAxB,UAAyB,cAAmC;QAC1D,IAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;QAC3E,IAAI,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAErD,IAAI,CAAC,eAAe,EAAE;YACpB,eAAe,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC;SAClD;QAED,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACvC,CAAC;IAEM,yBAAK,GAAZ,UAAa,GAAW,EAAE,IAAiB;QACzC,IAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7C,IAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YACxC,MAAM,IAAI,KAAK,CACb,wDAAiD,GAAG,kBAAQ,IAAI,CAAE,CACnE,CAAC;SACH;QAEK,IAAA,KAAoB,SAAS,CAAC,KAAK,EAAG,EAApC,MAAM,YAAA,EAAE,KAAK,WAAuB,CAAC;QAE7C,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;SACnE;QAED,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO;YACzB,UAAU,CAAC;gBACT,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,oCAAgB,GAAvB,UAAwB,GAAW,EAAE,IAAiB;QACpD,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,GAAG,KAAA;YACH,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;SACtB,CAAC,CAAC;IACL,CAAC;IAKM,4BAAQ,GAAf;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACH,gBAAC;AAAD,CAAC,AA1DD,IA0DC;;AAED,SAAS,SAAS,CAAC,GAAQ;IACzB,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;SACpB,IAAI,EAAE;SACN,MAAM,CACL,UAAC,GAAQ,EAAE,GAAW;;QACpB,OAAA,MAAM,CAAC,MAAM;YAET,GAAC,GAAG,IACF,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,QAAQ;gBAChE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;iBAEhB,GAAG,CACJ;IARD,CAQC,EACH,EAAE,CACH,CAAC;AACN,CAAC;AAED,MAAM,UAAU,eAAe;IAAC,yBAAyC;SAAzC,UAAyC,EAAzC,qBAAyC,EAAzC,IAAyC;QAAzC,oCAAyC;;IACvE,OAAO,KAAI,SAAS,YAAT,SAAS,0BAAI,eAAe,aAAE,QAAQ,EAAE,CAAC;AACtD,CAAC","sourcesContent":["import 'whatwg-fetch';\n\n// This is an implementation of a mocked window.fetch implementation similar in\n// structure to the MockedNetworkInterface.\n\nexport interface MockedIResponse {\n ok: boolean;\n status: number;\n statusText?: string;\n json(): Promise<Object>;\n}\n\nexport interface MockedFetchResponse {\n url: string;\n opts: RequestInit;\n result: MockedIResponse;\n delay?: number;\n}\n\nexport function createMockedIResponse(\n result: Object,\n options?: any,\n): MockedIResponse {\n const status = (options && options.status) || 200;\n const statusText = (options && options.statusText) || undefined;\n\n return {\n ok: status === 200,\n status,\n statusText,\n json() {\n return Promise.resolve<Object>(result);\n },\n };\n}\n\nexport class MockFetch {\n private mockedResponsesByKey: { [key: string]: MockedFetchResponse[] };\n\n constructor(...mockedResponses: MockedFetchResponse[]) {\n this.mockedResponsesByKey = {};\n\n mockedResponses.forEach(mockedResponse => {\n this.addMockedResponse(mockedResponse);\n });\n }\n\n public addMockedResponse(mockedResponse: MockedFetchResponse) {\n const key = this.fetchParamsToKey(mockedResponse.url, mockedResponse.opts);\n let mockedResponses = this.mockedResponsesByKey[key];\n\n if (!mockedResponses) {\n mockedResponses = [];\n this.mockedResponsesByKey[key] = mockedResponses;\n }\n\n mockedResponses.push(mockedResponse);\n }\n\n public fetch(url: string, opts: RequestInit) {\n const key = this.fetchParamsToKey(url, opts);\n const responses = this.mockedResponsesByKey[key];\n if (!responses || responses.length === 0) {\n throw new Error(\n `No more mocked fetch responses for the params ${url} and ${opts}`,\n );\n }\n\n const { result, delay } = responses.shift()!;\n\n if (!result) {\n throw new Error(`Mocked fetch response should contain a result.`);\n }\n\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(result);\n }, delay ? delay : 0);\n });\n }\n\n public fetchParamsToKey(url: string, opts: RequestInit): string {\n return JSON.stringify({\n url,\n opts: sortByKey(opts),\n });\n }\n\n // Returns a \"fetch\" function equivalent that mocks the given responses.\n // The function by returned by this should be tacked onto the global scope\n // in order to test functions that use \"fetch\".\n public getFetch() {\n return this.fetch.bind(this);\n }\n}\n\nfunction sortByKey(obj: any): Object {\n return Object.keys(obj)\n .sort()\n .reduce(\n (ret: any, key: string): Object =>\n Object.assign(\n {\n [key]:\n Object.prototype.toString.call(obj[key]).slice(8, -1) === 'Object'\n ? sortByKey(obj[key])\n : obj[key],\n },\n ret,\n ),\n {},\n );\n}\n\nexport function createMockFetch(...mockedResponses: MockedFetchResponse[]) {\n return new MockFetch(...mockedResponses).getFetch();\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DocumentNode, FieldNode, DirectiveNode, FragmentDefinitionNode, ArgumentNode, FragmentSpreadNode, VariableDefinitionNode } from 'graphql';
|
|
1
|
+
import { DocumentNode, FieldNode, DirectiveNode, FragmentDefinitionNode, ArgumentNode, FragmentSpreadNode, VariableDefinitionNode, ASTNode } from 'graphql';
|
|
2
2
|
export declare type RemoveNodeConfig<N> = {
|
|
3
3
|
name?: string;
|
|
4
4
|
test?: (node: N) => boolean;
|
|
@@ -16,7 +16,7 @@ export declare type RemoveFragmentSpreadConfig = RemoveNodeConfig<FragmentSpread
|
|
|
16
16
|
export declare type RemoveFragmentDefinitionConfig = RemoveNodeConfig<FragmentDefinitionNode>;
|
|
17
17
|
export declare type RemoveVariableDefinitionConfig = RemoveNodeConfig<VariableDefinitionNode>;
|
|
18
18
|
export declare function removeDirectivesFromDocument(directives: RemoveDirectiveConfig[], doc: DocumentNode): DocumentNode | null;
|
|
19
|
-
export declare const addTypenameToDocument: ((doc:
|
|
19
|
+
export declare const addTypenameToDocument: (<TNode extends ASTNode>(doc: TNode) => TNode) & {
|
|
20
20
|
added(field: FieldNode): boolean;
|
|
21
21
|
};
|
|
22
22
|
export declare function removeConnectionDirectiveFromDocument(doc: DocumentNode): DocumentNode | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/utilities/graphql/transform.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EAIZ,SAAS,EACT,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/utilities/graphql/transform.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EAIZ,SAAS,EACT,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,sBAAsB,EAGtB,OAAO,EACR,MAAM,SAAS,CAAC;AAmBjB,oBAAY,gBAAgB,CAAC,CAAC,IAAI;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,oBAAY,aAAa,CAAC,CAAC,IAAI;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;CAC7B,CAAC;AAEF,oBAAY,qBAAqB,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACpE,oBAAY,kBAAkB,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;AAC9D,oBAAY,qBAAqB,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACnE,oBAAY,uBAAuB,GAAG,aAAa,CAAC,kBAAkB,CAAC,CAAC;AACxE,oBAAY,0BAA0B,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;AAC9E,oBAAY,8BAA8B,GAAG,gBAAgB,CAC3D,sBAAsB,CACvB,CAAC;AACF,oBAAY,8BAA8B,GAAG,gBAAgB,CAC3D,sBAAsB,CACvB,CAAC;AA0CF,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,qBAAqB,EAAE,EACnC,GAAG,EAAE,YAAY,GAChB,YAAY,GAAG,IAAI,CAiHrB;AAED,eAAO,MAAM,qBAAqB;iBAuDnB,SAAS,GAAG,OAAO;CAGhC,CAAC;AAqBH,wBAAgB,qCAAqC,CAAC,GAAG,EAAE,YAAY,uBAKtE;AAqDD,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,qBAAqB,EAAE,EAC/B,GAAG,EAAE,YAAY,GAChB,YAAY,GAAG,IAAI,CAmDrB;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,0BAA0B,EAAE,EACpC,GAAG,EAAE,YAAY,GAChB,YAAY,GAAG,IAAI,CAerB;AA0BD,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,YAAY,GACrB,YAAY,CAqBd;AAGD,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,YAAY,GACrB,YAAY,GAAG,IAAI,CAoCrB"}
|
|
@@ -97,7 +97,7 @@ export function removeDirectivesFromDocument(directives, doc) {
|
|
|
97
97
|
return modifiedDoc;
|
|
98
98
|
}
|
|
99
99
|
export var addTypenameToDocument = Object.assign(function (doc) {
|
|
100
|
-
return visit(
|
|
100
|
+
return visit(doc, {
|
|
101
101
|
SelectionSet: {
|
|
102
102
|
enter: function (node, _key, parent) {
|
|
103
103
|
if (parent &&
|