{"version":3,"file":"apollo-orbit.angular.mjs","sources":["../../src/effects/actions.ts","../../src/effects/apollo.ts","../../src/effects/stateManager.ts","../../src/effects/providers.ts","../../src/effects/state.ts","../../src/apollo-orbit.angular.ts"],"sourcesContent":["import { ActionType, getActionType } from '@apollo-orbit/core';\r\nimport { filter, map, OperatorFunction } from 'rxjs';\r\n\r\nexport type ActionStatus = 'dispatched' | 'success' | 'error';\r\n\r\nexport interface ActionExecution<TAction = any, TError = Error> {\r\n    status: ActionStatus;\r\n    action: TAction;\r\n    error?: TError;\r\n}\r\n\r\nexport interface ActionComplete<TAction = any, TError = Error> {\r\n    action: TAction;\r\n    error?: TError;\r\n    status: Extract<ActionStatus, 'success' | 'error'>;\r\n}\r\n\r\nexport function ofActionDispatched<TActionTypes extends Array<ActionType<any>>>(\r\n    ...actions: TActionTypes\r\n): OperatorFunction<\r\n    ActionExecution<InstanceType<TActionTypes[number]>>,\r\n    InstanceType<TActionTypes[number]>\r\n> {\r\n    const actionMap = createActionMap(actions);\r\n    return source => source.pipe(\r\n        filter(ctx => ctx.status === 'dispatched' && actionMap[getActionType(ctx.action)]),\r\n        map(({ action }) => action)\r\n    );\r\n}\r\n\r\nexport function ofActionSuccess<TActionTypes extends Array<ActionType<any>>>(\r\n    ...actions: TActionTypes\r\n): OperatorFunction<\r\n    ActionExecution<InstanceType<TActionTypes[number]>>,\r\n    InstanceType<TActionTypes[number]>\r\n> {\r\n    const actionMap = createActionMap(actions);\r\n    return source => source.pipe(\r\n        filter(ctx => ctx.status === 'success' && actionMap[getActionType(ctx.action)]),\r\n        map(({ action }) => action)\r\n    );\r\n}\r\n\r\nexport function ofActionError<TActionTypes extends Array<ActionType<any>>>(\r\n    ...actions: TActionTypes\r\n): OperatorFunction<\r\n    ActionExecution<InstanceType<TActionTypes[number]>>,\r\n    InstanceType<TActionTypes[number]>\r\n> {\r\n    const actionMap = createActionMap(actions);\r\n    return source => source.pipe(\r\n        filter(ctx => ctx.status === 'error' && actionMap[getActionType(ctx.action)]),\r\n        map(({ action }) => action)\r\n    );\r\n}\r\n\r\nexport function ofActionComplete<TActionTypes extends Array<ActionType<any>>>(\r\n    ...actions: TActionTypes\r\n): OperatorFunction<\r\n    ActionExecution<InstanceType<TActionTypes[number]>>,\r\n    ActionComplete<InstanceType<TActionTypes[number]>>\r\n> {\r\n    const actionMap = createActionMap(actions);\r\n    const statuses: Array<ActionStatus> = ['success', 'error'];\r\n    return source => source.pipe(\r\n        filter((ctx): ctx is ActionComplete => statuses.includes(ctx.status) && actionMap[getActionType(ctx.action)])\r\n    );\r\n}\r\n\r\nfunction createActionMap(actions: Array<ActionType<any>>): { [type: string]: boolean } {\r\n    return actions.reduce<{ [type: string]: boolean }>((acc, action) => ({ ...acc, [action.type]: true }), {});\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Apollo as ApolloBase, DefaultOptions, MutationResult } from '@apollo-orbit/angular/core';\r\nimport { Action, ActionInstance, MutationManager, resolveDispatchResults } from '@apollo-orbit/core';\r\nimport { ApolloClient, MutationOptions, OperationVariables as Variables } from '@apollo/client/core';\r\nimport { Observable, Subject, from } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport { ActionExecution } from './actions';\r\n\r\n@Injectable()\r\nexport class Apollo<TCacheShape = any> extends ApolloBase<TCacheShape> {\r\n  public readonly actions: Observable<ActionExecution>;\r\n\r\n  private readonly manager: MutationManager;\r\n  private readonly _actions: Subject<ActionExecution>;\r\n\r\n  public constructor(client: ApolloClient<TCacheShape>, manager: MutationManager, defaultOptions?: DefaultOptions) {\r\n    super(client, defaultOptions);\r\n    this.manager = manager;\r\n    this._actions = new Subject<ActionExecution>();\r\n    this.actions = this._actions.asObservable();\r\n  }\r\n\r\n  public mutate<T = any, V extends Variables = Variables>(options: MutationOptions<T, V>): Observable<MutationResult<T>> {\r\n    const { manager } = this;\r\n    return super.mutate<T, V>(manager.wrapMutationOptions(options)).pipe(tap({\r\n      next: result => manager.runEffects<T, V>(options, result, undefined),\r\n      error: error => manager.runEffects<T, V>(options, undefined, error)\r\n    }));\r\n  }\r\n\r\n  public dispatch<TAction extends Action | ActionInstance>(action: TAction): Observable<void> {\r\n    this._actions.next({ action, status: 'dispatched' });\r\n    return from(\r\n      this.manager\r\n        .dispatch({ cache: this.cache, dispatch: this.dispatch.bind(this) }, action)\r\n        .then(results => {\r\n          results.forEach(result => this._actions.next(result));\r\n          return resolveDispatchResults(results);\r\n        })\r\n    );\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { addStateToCache, addStateToClient, MutationManager, partition, State } from '@apollo-orbit/core';\r\nimport { ApolloClient, ApolloError } from '@apollo/client/core';\r\nimport { GraphQLFormattedError } from 'graphql';\r\n\r\nconst apolloErrorFactory = (graphQLErrors: ReadonlyArray<GraphQLFormattedError>): ApolloError => new ApolloError({ graphQLErrors });\r\n\r\ninterface Clients {\r\n  [id: string]: {\r\n    client: ApolloClient<any>;\r\n    manager: MutationManager;\r\n  } | undefined;\r\n}\r\n\r\n@Injectable()\r\nexport class StateManager {\r\n  private readonly clients: Clients = {};\r\n  private pending: ReadonlyArray<State> = [];\r\n\r\n  /**\r\n   * Create a mutation manager for an apollo client\r\n   */\r\n  public createManager(clientId: string, client: ApolloClient<any>): MutationManager {\r\n    if (this.clients[clientId] !== undefined) throw new Error(`Apollo clients with duplicate options.id: '${clientId}'`);\r\n    const manager = new MutationManager(apolloErrorFactory);\r\n    this.clients[clientId] = { client, manager };\r\n    const [current, pending] = partition(this.pending, state => state.clientId === clientId);\r\n    this.pending = pending;\r\n    this.addState(client, manager, ...current);\r\n    return manager;\r\n  }\r\n\r\n  public onAddStates(states: Array<State>): void {\r\n    for (const state of states) {\r\n      const pair = this.clients[state.clientId];\r\n      if (pair) {\r\n        const { client, manager } = pair;\r\n        this.addState(client, manager, state);\r\n      } else {\r\n        this.pending = [...this.pending, state];\r\n      }\r\n    }\r\n  }\r\n\r\n  private addState(client: ApolloClient<any>, manager: MutationManager, ...states: Array<State>): void {\r\n    const addToClient = addStateToClient(client);\r\n    const addToCache = addStateToCache(client.cache);\r\n    states.forEach(state => {\r\n      addToClient(state);\r\n      addToCache(state);\r\n      manager.addState(state);\r\n      state.onInit?.(client.cache);\r\n    });\r\n  }\r\n}\r\n","import { ENVIRONMENT_INITIALIZER, EnvironmentProviders, Provider, inject, makeEnvironmentProviders } from '@angular/core';\r\nimport { ɵAPOLLO_INSTANCE_FACTORY as APOLLO_INSTANCE_FACTORY, Apollo as ApolloBase, ApolloClient, ɵApolloInstanceFactory as ApolloInstanceFactory, ApolloOrbitFeature, DefaultOptions, provideApolloOrbit as provideApolloOrbitCore } from '@apollo-orbit/angular/core';\r\nimport { State } from '@apollo-orbit/core';\r\nimport { Apollo } from './apollo';\r\nimport { StateManager } from './stateManager';\r\nimport { StateFactory } from './types';\r\n\r\nexport function withStates(...states: Array<State | StateFactory>): ApolloOrbitFeature {\r\n  return {\r\n    kind: 'APOLLO_ORBIT_STATES',\r\n    providers: getStatesProviders(states)\r\n  };\r\n}\r\n\r\nexport function provideApolloOrbit(...features: Array<ApolloOrbitFeature>): EnvironmentProviders {\r\n  return makeEnvironmentProviders([\r\n    provideApolloOrbitCore(...features),\r\n    StateManager,\r\n    { provide: Apollo, useExisting: ApolloBase }, // in case Apollo is accidentally imported from core entry point\r\n    { provide: APOLLO_INSTANCE_FACTORY, useFactory: apolloInstanceFactory, deps: [StateManager] }\r\n  ]);\r\n}\r\n\r\nexport function provideStates(...states: Array<State | StateFactory>): EnvironmentProviders {\r\n  return makeEnvironmentProviders(getStatesProviders(states));\r\n}\r\n\r\nfunction getStatesProviders(states: Array<State | StateFactory>): Array<Provider> {\r\n  return [\r\n    { provide: ENVIRONMENT_INITIALIZER, multi: true, useFactory: () => () => addStates(states) }\r\n  ];\r\n}\r\n\r\nfunction apolloInstanceFactory(stateManager: StateManager): ApolloInstanceFactory {\r\n  return (clientId: string, client: ApolloClient<any>, defaultOptions?: DefaultOptions): Apollo => {\r\n    const manager = stateManager.createManager(clientId, client);\r\n    return new Apollo(client, manager, defaultOptions);\r\n  };\r\n}\r\n\r\nfunction addStates(states: Array<State | StateFactory>): void {\r\n  inject(StateManager).onAddStates(states.map(state => typeof state === 'function' ? state() : state));\r\n}\r\n","import { Variables } from '@apollo-orbit/angular/core';\r\nimport { Action, ActionFn as ActionFnCore, ActionType, EffectFn, MutationIdentifier, MutationUpdateFn, OptimisticResponseFn, RefetchQueriesFn, Resolver, STATE_DEFINITION_SYMBOL, State, StateDescriptor as StateDescriptorCore, TypeField } from '@apollo-orbit/core';\r\nimport { ApolloCache, PossibleTypesMap, TypePolicies } from '@apollo/client/core';\r\nimport { DocumentNode } from 'graphql';\r\nimport { Observable, lastValueFrom } from 'rxjs';\r\nimport { ActionContext, ActionFn } from './types';\r\n\r\nexport function state(configure: (descriptor: StateDescriptor) => StateDescriptor | void, definition?: State): State {\r\n  const descriptor = new StateDescriptor(definition);\r\n  configure(descriptor);\r\n  return descriptor[STATE_DEFINITION_SYMBOL];\r\n}\r\n\r\nexport class StateDescriptor {\r\n  private readonly descriptor: StateDescriptorCore;\r\n\r\n  public constructor(definition?: State) {\r\n    this.descriptor = new StateDescriptorCore(definition);\r\n  }\r\n\r\n  private get [STATE_DEFINITION_SYMBOL](): State {\r\n    return this.descriptor[STATE_DEFINITION_SYMBOL];\r\n  }\r\n\r\n  /**\r\n   * Client name in a multi-client setup\r\n   */\r\n  public clientId(clientId: string): this {\r\n    this.descriptor.clientId(clientId);\r\n    return this;\r\n  }\r\n\r\n  public typeDefs(typeDefs: string | Array<string> | DocumentNode | Array<DocumentNode>): this {\r\n    this.descriptor.typeDefs(typeDefs);\r\n    return this;\r\n  }\r\n\r\n  public typePolicies(typePolicies: TypePolicies): this {\r\n    this.descriptor.typePolicies(typePolicies);\r\n    return this;\r\n  }\r\n\r\n  public possibleTypes(possibleTypes: PossibleTypesMap): this {\r\n    this.descriptor.possibleTypes(possibleTypes);\r\n    return this;\r\n  }\r\n\r\n  public onInit(onInit: (cache: ApolloCache<any>) => void): this {\r\n    this.descriptor.onInit(onInit);\r\n    return this;\r\n  }\r\n\r\n  public mutationUpdate<T = any, V = Variables>(mutation: MutationIdentifier<T, V>, update: MutationUpdateFn<T, V>): this {\r\n    this.descriptor.mutationUpdate(mutation, update);\r\n    return this;\r\n  }\r\n\r\n  public refetchQueries<T = any, V = Variables>(mutation: MutationIdentifier<T, V>, refetchQueries: RefetchQueriesFn<T, V>): this {\r\n    this.descriptor.refetchQueries(mutation, refetchQueries);\r\n    return this;\r\n  }\r\n\r\n  public optimisticResponse<T = any, V = Variables>(mutation: MutationIdentifier<T, V>, optimisticResponse: OptimisticResponseFn<T, V>): this {\r\n    this.descriptor.optimisticResponse(mutation, optimisticResponse);\r\n    return this;\r\n  }\r\n\r\n  public effect<T = any, V = Variables>(mutation: MutationIdentifier<T, V>, effect: EffectFn<T, V>): this {\r\n    this.descriptor.effect(mutation, effect);\r\n    return this;\r\n  }\r\n\r\n  public resolver(typeField: TypeField, resolver: Resolver): this {\r\n    this.descriptor.resolver(typeField, transformResolver(resolver));\r\n    return this;\r\n  }\r\n\r\n  public action<T = any>(action: ActionType<T>, actionFn: ActionFn<T>): this;\r\n  public action<TAction extends Action>(type: TAction['type'], actionFn: ActionFn<TAction>): this;\r\n  public action<T = any>(actionType: ActionType<T> | string, actionFn: ActionFn<T>): this {\r\n    this.descriptor.action(actionType, transformActionFn(actionFn));\r\n    return this;\r\n  }\r\n}\r\n\r\nfunction transformResolver(fn: Resolver): Resolver {\r\n  return function (...args: Parameters<Resolver>) {\r\n    const result = fn(...args);\r\n    return result instanceof Observable\r\n      ? lastValueFrom(result, { defaultValue: void 0 })\r\n      : result;\r\n  };\r\n}\r\n\r\nfunction transformActionFn(fn: ActionFn<any>): ActionFnCore<any> {\r\n  return function (action, context) {\r\n    const result = fn(action, context as unknown as ActionContext);\r\n    return result instanceof Observable\r\n      ? lastValueFrom(result, { defaultValue: void 0 })\r\n      : result;\r\n  };\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["ApolloBase","provideApolloOrbitCore","APOLLO_INSTANCE_FACTORY","StateDescriptorCore"],"mappings":"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"}