UNPKG

28.9 kBSource Map (JSON)View Raw
1{"version":3,"file":"ngApollo.mjs","sources":["../../src/utils.ts","../../src/query-ref.ts","../../src/tokens.ts","../../src/apollo.ts","../../src/apollo-module.ts","../../src/query.ts","../../src/mutation.ts","../../src/subscription.ts","../../src/gql.ts","../../src/ngApollo.ts"],"sourcesContent":["import {NgZone} from '@angular/core';\nimport {observeOn, startWith, map} from 'rxjs/operators';\nimport type {\n ObservableQuery,\n ApolloQueryResult,\n FetchResult,\n Observable as AObservable,\n} from '@apollo/client/core';\nimport type {Subscription, SchedulerLike, SchedulerAction} from 'rxjs';\nimport {Observable, queueScheduler, observable} from 'rxjs';\nimport type {MutationResult} from './types';\n\nexport function fromPromise<T>(promiseFn: () => Promise<T>): Observable<T> {\n return new Observable<T>((subscriber) => {\n promiseFn().then(\n (result) => {\n if (!subscriber.closed) {\n subscriber.next(result);\n subscriber.complete();\n }\n },\n (error) => {\n if (!subscriber.closed) {\n subscriber.error(error);\n }\n },\n );\n\n return () => subscriber.unsubscribe();\n });\n}\n\nexport function useMutationLoading<T>(\n source: Observable<FetchResult<T>>,\n enabled: boolean,\n) {\n if (!enabled) {\n return source.pipe(\n map<FetchResult<T>, MutationResult<T>>((result) => ({\n ...result,\n loading: false,\n })),\n );\n }\n\n return source.pipe(\n startWith<MutationResult<T>>({\n loading: true,\n }),\n map<MutationResult<T>, MutationResult<T>>((result) => ({\n ...result,\n loading: !!result.loading,\n })),\n );\n}\n\nexport class ZoneScheduler implements SchedulerLike {\n constructor(private zone: NgZone) {}\n\n public now = Date.now ? Date.now : () => +new Date();\n\n public schedule<T>(\n work: (this: SchedulerAction<T>, state?: T) => void,\n delay: number = 0,\n state?: T,\n ): Subscription {\n return this.zone.run(() =>\n queueScheduler.schedule(work, delay, state),\n ) as Subscription;\n }\n}\n\n// XXX: Apollo's QueryObservable is not compatible with RxJS\n// TODO: remove it in one of future releases\n// https://github.com/ReactiveX/rxjs/blob/9fb0ce9e09c865920cf37915cc675e3b3a75050b/src/internal/util/subscribeTo.ts#L32\nexport function fixObservable<T>(\n obs: ObservableQuery<T>,\n): Observable<ApolloQueryResult<T>>;\nexport function fixObservable<T>(obs: AObservable<T>): Observable<T>;\nexport function fixObservable<T>(\n obs: AObservable<T> | ObservableQuery<T>,\n): Observable<ApolloQueryResult<T>> | Observable<T> {\n (obs as any)[observable] = () => obs;\n return obs as any;\n}\n\nexport function wrapWithZone<T>(\n obs: Observable<T>,\n ngZone: NgZone,\n): Observable<T> {\n return obs.pipe(observeOn(new ZoneScheduler(ngZone)));\n}\n\nexport function pickFlag<TFlags, K extends keyof TFlags>(\n flags: TFlags | undefined,\n flag: K,\n defaultValue: TFlags[K],\n): TFlags[K] {\n return flags && typeof flags[flag] !== 'undefined'\n ? flags[flag]\n : defaultValue;\n}\n","import {NgZone} from '@angular/core';\nimport type {\n ApolloQueryResult,\n ObservableQuery,\n ApolloError,\n FetchMoreQueryOptions,\n SubscribeToMoreOptions,\n UpdateQueryOptions,\n TypedDocumentNode,\n} from '@apollo/client/core';\nimport {NetworkStatus} from '@apollo/client/core';\nimport {Observable, from} from 'rxjs';\n\nimport {wrapWithZone, fixObservable} from './utils';\nimport {WatchQueryOptions, EmptyObject} from './types';\n\nfunction useInitialLoading<T, V>(obsQuery: ObservableQuery<T, V>) {\n return function useInitialLoadingOperator<T>(\n source: Observable<T>,\n ): Observable<T> {\n return new Observable(function useInitialLoadingSubscription(subscriber) {\n const currentResult = obsQuery.getCurrentResult();\n const {loading, errors, error, partial, data} = currentResult;\n const {partialRefetch, fetchPolicy} = obsQuery.options;\n\n const hasError = errors || error;\n\n if (\n partialRefetch &&\n partial &&\n (!data || Object.keys(data).length === 0) &&\n fetchPolicy !== 'cache-only' &&\n !loading &&\n !hasError\n ) {\n subscriber.next({\n ...currentResult,\n loading: true,\n networkStatus: NetworkStatus.loading,\n } as any);\n }\n\n return source.subscribe(subscriber);\n });\n };\n}\n\nexport type QueryRefFromDocument<T extends TypedDocumentNode> =\n T extends TypedDocumentNode<infer R, infer V> ? QueryRef<R, V> : never;\n\nexport class QueryRef<T, V = EmptyObject> {\n public valueChanges: Observable<ApolloQueryResult<T>>;\n public queryId: ObservableQuery<T, V>['queryId'];\n\n constructor(\n private obsQuery: ObservableQuery<T, V>,\n ngZone: NgZone,\n options: WatchQueryOptions<V, T>,\n ) {\n const wrapped = wrapWithZone(from(fixObservable(this.obsQuery)), ngZone);\n\n this.valueChanges = options.useInitialLoading\n ? wrapped.pipe(useInitialLoading(this.obsQuery))\n : wrapped;\n this.queryId = this.obsQuery.queryId;\n }\n\n // ObservableQuery's methods\n\n public get options() {\n return this.obsQuery.options;\n }\n\n public get variables() {\n return this.obsQuery.variables;\n }\n\n public result(): Promise<ApolloQueryResult<T>> {\n return this.obsQuery.result();\n }\n\n public getCurrentResult(): ApolloQueryResult<T> {\n return this.obsQuery.getCurrentResult();\n }\n\n public getLastResult(): ApolloQueryResult<T> {\n return this.obsQuery.getLastResult();\n }\n\n public getLastError(): ApolloError {\n return this.obsQuery.getLastError();\n }\n\n public resetLastResults(): void {\n return this.obsQuery.resetLastResults();\n }\n\n public refetch(variables?: V): Promise<ApolloQueryResult<T>> {\n return this.obsQuery.refetch(variables);\n }\n\n public fetchMore<K = V>(\n fetchMoreOptions: FetchMoreQueryOptions<K, T>,\n ): Promise<ApolloQueryResult<T>> {\n return this.obsQuery.fetchMore(fetchMoreOptions);\n }\n\n public subscribeToMore<MT = any, MV = EmptyObject>(\n options: SubscribeToMoreOptions<T, MV, MT>,\n ): () => void {\n // XXX: there's a bug in apollo-client typings\n // it should not inherit types from ObservableQuery\n return this.obsQuery.subscribeToMore(options as any);\n }\n public updateQuery(\n mapFn: (previousQueryResult: T, options: UpdateQueryOptions<V>) => T,\n ): void {\n return this.obsQuery.updateQuery(mapFn);\n }\n\n public stopPolling(): void {\n return this.obsQuery.stopPolling();\n }\n\n public startPolling(pollInterval: number): void {\n return this.obsQuery.startPolling(pollInterval);\n }\n\n public setOptions(opts: any) {\n return this.obsQuery.setOptions(opts);\n }\n\n public setVariables(variables: V) {\n return this.obsQuery.setVariables(variables);\n }\n}\n","import {InjectionToken} from '@angular/core';\nimport type {ApolloClientOptions} from '@apollo/client/core';\nimport type {NamedOptions, Flags} from './types';\n\nexport const APOLLO_FLAGS = new InjectionToken<Flags>('APOLLO_FLAGS');\n\nexport const APOLLO_OPTIONS = new InjectionToken<ApolloClientOptions<any>>(\n 'APOLLO_OPTIONS',\n);\n\nexport const APOLLO_NAMED_OPTIONS = new InjectionToken<NamedOptions>(\n 'APOLLO_NAMED_OPTIONS',\n);\n","import {Injectable, Optional, Inject, NgZone} from '@angular/core';\nimport type {\n QueryOptions,\n ApolloQueryResult,\n SubscriptionOptions,\n ApolloClientOptions,\n ObservableQuery,\n FetchResult,\n} from '@apollo/client/core';\nimport {ApolloClient} from '@apollo/client/core';\nimport {Observable, from} from 'rxjs';\n\nimport {QueryRef} from './query-ref';\nimport {\n WatchQueryOptions,\n ExtraSubscriptionOptions,\n EmptyObject,\n NamedOptions,\n Flags,\n MutationResult,\n MutationOptions,\n} from './types';\nimport {APOLLO_OPTIONS, APOLLO_NAMED_OPTIONS, APOLLO_FLAGS} from './tokens';\nimport {\n fromPromise,\n useMutationLoading,\n wrapWithZone,\n fixObservable,\n pickFlag,\n} from './utils';\n\nexport class ApolloBase<TCacheShape = any> {\n private useInitialLoading: boolean;\n private useMutationLoading: boolean;\n\n constructor(\n protected ngZone: NgZone,\n protected flags?: Flags,\n protected _client?: ApolloClient<TCacheShape>,\n ) {\n this.useInitialLoading = pickFlag(flags, 'useInitialLoading', false);\n this.useMutationLoading = pickFlag(flags, 'useMutationLoading', false);\n }\n\n public watchQuery<TData, TVariables = EmptyObject>(\n options: WatchQueryOptions<TVariables, TData>,\n ): QueryRef<TData, TVariables> {\n return new QueryRef<TData, TVariables>(\n this.ensureClient().watchQuery<TData, TVariables>({\n ...options,\n }) as ObservableQuery<TData, TVariables>,\n this.ngZone,\n {\n useInitialLoading: this.useInitialLoading,\n ...options,\n },\n );\n }\n\n public query<T, V = EmptyObject>(\n options: QueryOptions<V, T>,\n ): Observable<ApolloQueryResult<T>> {\n return fromPromise<ApolloQueryResult<T>>(() =>\n this.ensureClient().query<T, V>({...options}),\n );\n }\n\n public mutate<T, V = EmptyObject>(\n options: MutationOptions<T, V>,\n ): Observable<MutationResult<T>> {\n return useMutationLoading(\n fromPromise(() => this.ensureClient().mutate<T, V>({...options})),\n options.useMutationLoading ?? this.useMutationLoading,\n );\n }\n\n public subscribe<T, V = EmptyObject>(\n options: SubscriptionOptions<V, T>,\n extra?: ExtraSubscriptionOptions,\n ): Observable<FetchResult<T>> {\n const obs = from(\n fixObservable(this.ensureClient().subscribe<T, V>({...options})),\n );\n\n return extra && extra.useZone !== true\n ? obs\n : wrapWithZone(obs, this.ngZone);\n }\n\n /**\n * Get an access to an instance of ApolloClient\n * @deprecated use `apollo.client` instead\n */\n public getClient() {\n return this.client;\n }\n\n /**\n * Set a new instance of ApolloClient\n * Remember to clean up the store before setting a new client.\n * @deprecated use `apollo.client = client` instead\n *\n * @param client ApolloClient instance\n */\n public setClient(client: ApolloClient<TCacheShape>) {\n this.client = client;\n }\n\n /**\n * Get an access to an instance of ApolloClient\n */\n public get client(): ApolloClient<TCacheShape> {\n return this._client;\n }\n\n /**\n * Set a new instance of ApolloClient\n * Remember to clean up the store before setting a new client.\n *\n * @param client ApolloClient instance\n */\n public set client(client: ApolloClient<TCacheShape>) {\n if (this._client) {\n throw new Error('Client has been already defined');\n }\n\n this._client = client;\n }\n\n private ensureClient() {\n this.checkInstance();\n\n return this._client;\n }\n\n private checkInstance(): void {\n if (!this._client) {\n throw new Error('Client has not been defined yet');\n }\n }\n}\n\n@Injectable()\nexport class Apollo extends ApolloBase<any> {\n private map: Map<string, ApolloBase<any>> = new Map<\n string,\n ApolloBase<any>\n >();\n\n constructor(\n private _ngZone: NgZone,\n @Optional()\n @Inject(APOLLO_OPTIONS)\n apolloOptions?: ApolloClientOptions<any>,\n @Optional()\n @Inject(APOLLO_NAMED_OPTIONS)\n apolloNamedOptions?: NamedOptions,\n @Optional() @Inject(APOLLO_FLAGS) flags?: Flags,\n ) {\n super(_ngZone, flags);\n\n if (apolloOptions) {\n this.createDefault(apolloOptions);\n }\n\n if (apolloNamedOptions && typeof apolloNamedOptions === 'object') {\n for (let name in apolloNamedOptions) {\n if (apolloNamedOptions.hasOwnProperty(name)) {\n const options = apolloNamedOptions[name];\n this.createNamed(name, options);\n }\n }\n }\n }\n\n /**\n * Create an instance of ApolloClient\n * @param options Options required to create ApolloClient\n * @param name client's name\n */\n public create<TCacheShape>(\n options: ApolloClientOptions<TCacheShape>,\n name?: string,\n ): void {\n if (isDefault(name)) {\n this.createDefault<TCacheShape>(options);\n } else {\n this.createNamed<TCacheShape>(name, options);\n }\n }\n\n /**\n * Use a default ApolloClient\n */\n public default(): ApolloBase<any> {\n return this;\n }\n\n /**\n * Use a named ApolloClient\n * @param name client's name\n */\n public use(name: string): ApolloBase<any> {\n if (isDefault(name)) {\n return this.default();\n }\n return this.map.get(name);\n }\n\n /**\n * Create a default ApolloClient, same as `apollo.create(options)`\n * @param options ApolloClient's options\n */\n public createDefault<TCacheShape>(\n options: ApolloClientOptions<TCacheShape>,\n ): void {\n if (this.getClient()) {\n throw new Error('Apollo has been already created.');\n }\n\n return this.setClient(new ApolloClient<TCacheShape>(options));\n }\n\n /**\n * Create a named ApolloClient, same as `apollo.create(options, name)`\n * @param name client's name\n * @param options ApolloClient's options\n */\n public createNamed<TCacheShape>(\n name: string,\n options: ApolloClientOptions<TCacheShape>,\n ): void {\n if (this.map.has(name)) {\n throw new Error(`Client ${name} has been already created`);\n }\n this.map.set(\n name,\n new ApolloBase(\n this._ngZone,\n this.flags,\n new ApolloClient<TCacheShape>(options),\n ),\n );\n }\n\n /**\n * Remember to clean up the store before removing a client\n * @param name client's name\n */\n public removeClient(name?: string): void {\n if (isDefault(name)) {\n this._client = undefined;\n } else {\n this.map.delete(name);\n }\n }\n}\n\nfunction isDefault(name?: string): boolean {\n return !name || name === 'default';\n}\n","import {NgModule} from '@angular/core';\n\nimport {Apollo} from './apollo';\n\nexport const PROVIDERS = [Apollo];\n\n@NgModule({\n providers: PROVIDERS,\n})\nexport class ApolloModule {}\n","import {Injectable} from '@angular/core';\nimport type {DocumentNode} from 'graphql';\nimport type {ApolloQueryResult, TypedDocumentNode} from '@apollo/client/core';\nimport type {Observable} from 'rxjs';\n\nimport {Apollo} from './apollo';\nimport {QueryRef} from './query-ref';\nimport {WatchQueryOptionsAlone, QueryOptionsAlone, EmptyObject} from './types';\n\n@Injectable()\nexport class Query<T = {}, V = EmptyObject> {\n public readonly document: DocumentNode | TypedDocumentNode<T, V>;\n public client = 'default';\n\n constructor(protected apollo: Apollo) {}\n\n public watch(\n variables?: V,\n options?: WatchQueryOptionsAlone<V, T>,\n ): QueryRef<T, V> {\n return this.apollo.use(this.client).watchQuery<T, V>({\n ...options,\n variables,\n query: this.document,\n });\n }\n\n public fetch(\n variables?: V,\n options?: QueryOptionsAlone<V, T>,\n ): Observable<ApolloQueryResult<T>> {\n return this.apollo.use(this.client).query<T, V>({\n ...options,\n variables,\n query: this.document,\n });\n }\n}\n","import {Injectable} from '@angular/core';\nimport type {DocumentNode} from 'graphql';\nimport type {TypedDocumentNode} from '@apollo/client/core';\nimport type {Observable} from 'rxjs';\n\nimport {Apollo} from './apollo';\nimport type {MutationOptionsAlone, EmptyObject, MutationResult} from './types';\n\n@Injectable()\nexport class Mutation<T = {}, V = EmptyObject> {\n public readonly document: DocumentNode | TypedDocumentNode<T, V>;\n public client = 'default';\n\n constructor(protected apollo: Apollo) {}\n\n public mutate(\n variables?: V,\n options?: MutationOptionsAlone<T, V>,\n ): Observable<MutationResult<T>> {\n return this.apollo.use(this.client).mutate<T, V>({\n ...options,\n variables,\n mutation: this.document,\n });\n }\n}\n","import {Injectable} from '@angular/core';\nimport type {DocumentNode} from 'graphql';\nimport type {TypedDocumentNode} from '@apollo/client/core';\nimport type {Observable} from 'rxjs';\n\nimport {Apollo} from './apollo';\nimport {\n SubscriptionOptionsAlone,\n ExtraSubscriptionOptions,\n SubscriptionResult,\n EmptyObject,\n} from './types';\n\n@Injectable()\nexport class Subscription<T = any, V = EmptyObject> {\n public readonly document: DocumentNode | TypedDocumentNode<T, V>;\n public client = 'default';\n\n constructor(protected apollo: Apollo) {}\n\n public subscribe(\n variables?: V,\n options?: SubscriptionOptionsAlone<V, T>,\n extra?: ExtraSubscriptionOptions,\n ): Observable<SubscriptionResult<T>> {\n return this.apollo.use(this.client).subscribe<T, V>(\n {\n ...options,\n variables,\n query: this.document,\n },\n extra,\n );\n }\n}\n","import {gql as gqlTag, TypedDocumentNode} from '@apollo/client/core';\n\nfunction typedGQLTag<Result, Variables>(\n literals: ReadonlyArray<string> | Readonly<string>,\n ...placeholders: any[]\n): TypedDocumentNode<Result, Variables> {\n return gqlTag(literals, ...placeholders);\n}\n\nexport const gql = typedGQLTag;\nexport const graphql = typedGQLTag;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.Apollo","gqlTag"],"mappings":"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"}
\No newline at end of file