{"version":3,"file":"ngxs-labs-emitter.mjs","sources":["../../../../libs/emitter/src/lib/core/internal/internals.ts","../../../../libs/emitter/src/lib/core/decorators/receiver.ts","../../../../libs/emitter/src/lib/core/utils/index.ts","../../../../libs/emitter/src/lib/core/actions/actions.ts","../../../../libs/emitter/src/lib/core/services/emit-store.service.ts","../../../../libs/emitter/src/lib/core/services/injector-accessor.service.ts","../../../../libs/emitter/src/lib/core/decorators/emitter.ts","../../../../libs/emitter/src/lib/core/services/emitter.service.ts","../../../../libs/emitter/src/lib/emit.module.ts","../../../../libs/emitter/src/lib/core/operators/of-emittable.ts","../../../../libs/emitter/src/ngxs-labs-emitter.ts"],"sourcesContent":["import { Type } from '@angular/core';\nimport type { ActionStatus, StateContext } from '@ngxs/store';\n\nimport { Observable } from 'rxjs';\nexport type Action<T> = Type<T> & {\n  type: string;\n};\n\nexport interface ReceiverMetaData<T extends Function = any> {\n  type: string;\n  payload: any;\n  action: Action<T> | Action<T>[];\n  cancelUncompleted: boolean;\n}\n\nexport interface Emittable<T = void> {\n  emit(payload: T): Observable<void>;\n  emitMany(payloads: T[]): Observable<void>;\n}\n\nexport interface ActionContext {\n  status: ActionStatus;\n  action: any;\n  error?: Error;\n}\n\nexport interface OfEmittableActionContext<T = void> {\n  type: string;\n  payload: T;\n  error?: Error;\n}\n\nexport interface Types {\n  [key: string]: boolean;\n}\n\nexport type ActionHandler = (ctx?: StateContext<any>, action?: any) => void | Observable<any>;\n\nexport const RECEIVER_META_KEY = 'NGXS_RECEIVER_META';\n\nexport function constructEventsForSingleDispatching<T>(\n  constructors: Type<any>[],\n  payload: T | undefined\n): any {\n  return constructors.map(constructor => Reflect.construct(constructor, [payload]));\n}\n\nexport function constructEventsForManyDispatching<T>(\n  constructors: Type<any>[],\n  payloads: T[]\n): any {\n  const events = [];\n\n  for (const constructor of constructors) {\n    for (const payload of payloads) {\n      events.push(Reflect.construct(constructor, [payload]));\n    }\n  }\n\n  return events;\n}\n","import type { StateContext } from '@ngxs/store';\nimport { ɵensureStoreMetadata } from '@ngxs/store/internals';\n\nimport { RECEIVER_META_KEY, type ReceiverMetaData } from '../internal/internals';\n\ndeclare const ngDevMode: boolean;\n\nfunction generateHash(): string {\n  return (Math.random() * Date.now()).toString(36).slice(0, 8);\n}\n\nfunction getActionProperties(\n  options: Partial<ReceiverMetaData> | undefined,\n  target: Function,\n  key: string\n) {\n  const defaultProperties: ReceiverMetaData = {\n    type: `[ID:${generateHash()}] ${target.name}.${key}`,\n    payload: undefined,\n    action: undefined!,\n    cancelUncompleted: true\n  };\n\n  if (options == null) {\n    return defaultProperties;\n  }\n\n  const { type, payload, action, cancelUncompleted } = options;\n\n  if (type) {\n    defaultProperties.type = type;\n  }\n\n  if (payload) {\n    defaultProperties.payload = payload;\n  }\n\n  if (action) {\n    defaultProperties.action = action;\n\n    if (!Array.isArray(action)) {\n      defaultProperties.type = action.type;\n    }\n  }\n\n  if (typeof cancelUncompleted === 'boolean') {\n    defaultProperties.cancelUncompleted = cancelUncompleted;\n  }\n\n  return defaultProperties;\n}\n\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || ngDevMode;\n\nexport function Receiver(options?: Partial<ReceiverMetaData>): MethodDecorator {\n  return <T>(target: any, key: string | symbol, descriptor: TypedPropertyDescriptor<T>) => {\n    if (NG_DEV_MODE) {\n      const isNotFunctionOrNotStatic =\n        target.prototype == null || descriptor == null || typeof target[key] !== 'function';\n\n      if (isNotFunctionOrNotStatic) {\n        throw new TypeError(`Only static functions can be decorated with @Receiver() decorator`);\n      }\n\n      const reservedKeyAlreadyExists = key in target.prototype;\n      if (reservedKeyAlreadyExists) {\n        throw new Error(\n          `Property with name \\`${key.toString()}\\` already exists, please rename to avoid conflicts`\n        );\n      }\n    }\n\n    if (typeof key !== 'string') {\n      key = String(key);\n    }\n\n    const meta = ɵensureStoreMetadata(target);\n    const { type, payload, action, cancelUncompleted } = getActionProperties(options, target, key);\n\n    if (NG_DEV_MODE && Object.prototype.hasOwnProperty.call(meta.actions, type)) {\n      throw new Error(`Method decorated with such type \\`${type}\\` already exists`);\n    }\n\n    if (Array.isArray(action)) {\n      for (const { type } of action) {\n        meta.actions[type] = [\n          {\n            fn: `${key}`,\n            options: { cancelUncompleted },\n            type\n          }\n        ];\n      }\n    } else {\n      meta.actions[type] = [\n        {\n          fn: `${key}`,\n          options: { cancelUncompleted },\n          type\n        }\n      ];\n    }\n\n    (descriptor.value as any)[RECEIVER_META_KEY] = {\n      type,\n      action,\n      payload\n    };\n\n    target.prototype[key] = function (ctx: StateContext<any>, action: any) {\n      return target[key].call(target, ctx, action);\n    };\n  };\n}\n","import { ReceiverMetaData, RECEIVER_META_KEY } from '../internal/internals';\n\nexport function flatten<T>(flattenable: T | T[]): T[] {\n  return Array.isArray(flattenable) ? flattenable : [flattenable];\n}\n\nexport function getReceiverMetadata(receiver: Function): ReceiverMetaData {\n  return (receiver as any)[RECEIVER_META_KEY];\n}\n","/**\n * This class is used as a default action when\n * the user doesn't pass any custom action as an argument\n */\nexport class EmitterAction<T = void> {\n  constructor(readonly payload: T, readonly type: string | null = null) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\n\nimport { Observable } from 'rxjs';\n\nimport { flatten, getReceiverMetadata } from '../utils';\nimport { EmitterAction } from '../actions/actions';\nimport {\n  Emittable,\n  ReceiverMetaData,\n  constructEventsForSingleDispatching,\n  constructEventsForManyDispatching\n} from '../internal/internals';\n\ndeclare const ngDevMode: boolean;\n\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || ngDevMode;\n\n@Injectable()\nexport class EmitStore extends Store {\n  emitter<T = void>(receiver: Function): Emittable<T> {\n    const metadata = getReceiverMetadata(receiver);\n\n    if (NG_DEV_MODE && metadata == null) {\n      throw new Error(\n        `Static metadata cannot be found, have you decorated ${receiver.name} with @Receiver()?`\n      );\n    }\n\n    return {\n      emit: (payload: T) => this._dispatchSingle<T>(metadata, payload),\n      emitMany: (payloads: T[]) => this._dispatchMany<T>(metadata, payloads)\n    };\n  }\n\n  private _dispatchSingle<T>(metadata: ReceiverMetaData, payload: T): Observable<void> {\n    if (payload === undefined && metadata.payload !== undefined) {\n      payload = metadata.payload;\n    }\n\n    const { action } = metadata;\n\n    if (action) {\n      const flattenedConstructors = flatten(action);\n      return this.dispatch(constructEventsForSingleDispatching<T>(flattenedConstructors, payload));\n    }\n\n    return this.dispatch(new EmitterAction(payload, metadata.type));\n  }\n\n  private _dispatchMany<T>(metadata: ReceiverMetaData, payloads: T[]): Observable<void> {\n    if (!Array.isArray(payloads)) {\n      return this.dispatch([]);\n    }\n\n    const { action } = metadata;\n\n    if (action) {\n      const flattenedConstructors = flatten(action);\n      return this.dispatch(constructEventsForManyDispatching(flattenedConstructors, payloads));\n    }\n\n    return this.dispatch(payloads.map(payload => new EmitterAction(payload, metadata.type)));\n  }\n}\n","import { Injectable, Injector } from '@angular/core';\n\nimport { EmitStore } from './emit-store.service';\n\ndeclare const ngDevMode: boolean;\n\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || ngDevMode;\n\nclass NgxsEmitPluginModuleIsNotImported extends Error {\n  constructor() {\n    super(`You've forgotten to import \\`NgxsEmitPluginModule\\``);\n  }\n}\n\n@Injectable()\nexport class InjectorAccessor {\n  private static _injector: Injector | null = null;\n\n  constructor(injector: Injector) {\n    InjectorAccessor._injector = injector;\n  }\n\n  static getEmitStore(): never | EmitStore {\n    if (NG_DEV_MODE && this._injector === null) {\n      throw new NgxsEmitPluginModuleIsNotImported();\n    }\n\n    return this._injector!.get<EmitStore>(EmitStore);\n  }\n}\n","import { InjectorAccessor } from '../services/injector-accessor.service';\n\nexport function Emitter(receiver: Function): PropertyDecorator {\n  return (target: Object, key: string | symbol) => {\n    Object.defineProperty(target, key, {\n      get: () => {\n        const store = InjectorAccessor.getEmitStore();\n        return store.emitter(receiver);\n      }\n    });\n  };\n}\n","import { Injectable } from '@angular/core';\n\nimport { EmitStore } from './emit-store.service';\nimport { Emittable } from '../internal/internals';\n\n@Injectable()\nexport class EmitterService {\n  constructor(private _emitStore: EmitStore) {}\n\n  action<T = void>(receiver: Function): Emittable<T> {\n    return this._emitStore.emitter(receiver);\n  }\n}\n","import { NgModule, ModuleWithProviders, Self } from '@angular/core';\n\nimport { EmitStore } from './core/services/emit-store.service';\nimport { EmitterService } from './core/services/emitter.service';\nimport { InjectorAccessor } from './core/services/injector-accessor.service';\n\n@NgModule()\nexport class NgxsEmitPluginModule {\n  // eslint-disable-next-line @typescript-eslint/no-empty-function\n  constructor(@Self() _injectorAccessor: InjectorAccessor) {}\n\n  static forRoot(): ModuleWithProviders<NgxsEmitPluginModule> {\n    return {\n      ngModule: NgxsEmitPluginModule,\n      providers: [EmitStore, EmitterService, InjectorAccessor]\n    };\n  }\n}\n","import { ActionStatus, getActionTypeFromInstance } from '@ngxs/store';\n\nimport { type OperatorFunction, filter, map } from 'rxjs';\n\nimport { getReceiverMetadata } from '../utils';\nimport type { ActionContext, OfEmittableActionContext, Types } from '../internal/internals';\n\ndeclare const ngDevMode: boolean;\n\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || ngDevMode;\n\n/**\n * `getReceiverTypes([CounterState.increment, CounterState.decrement])`\n * will return a hashmap => `{ 'CounterState.increment': true, 'CounterState.decrement': true }`\n */\nfunction getReceiverTypes(receivers: Function[]): Types {\n  const types: Types = {};\n\n  for (const receiver of receivers) {\n    if (NG_DEV_MODE && typeof receiver !== 'function') {\n      throw new TypeError(`Receiver should be a function, got ${receiver}`);\n    }\n\n    const metadata = getReceiverMetadata(receiver);\n\n    if (NG_DEV_MODE && (metadata == null || metadata.type == null)) {\n      throw new Error(`${receiver.name} should be decorated with @Receiver() decorator`);\n    }\n\n    types[metadata.type] = true;\n  }\n\n  return types;\n}\n\nexport function ofEmittableDispatched(\n  ...receivers: Function[]\n): OperatorFunction<any, OfEmittableActionContext<any>> {\n  return ofEmittable(getReceiverTypes(receivers), ActionStatus.Dispatched);\n}\n\nexport function ofEmittableSuccessful(\n  ...receivers: Function[]\n): OperatorFunction<any, OfEmittableActionContext<any>> {\n  return ofEmittable(getReceiverTypes(receivers), ActionStatus.Successful);\n}\n\nexport function ofEmittableCanceled(\n  ...receivers: Function[]\n): OperatorFunction<any, OfEmittableActionContext<any>> {\n  return ofEmittable(getReceiverTypes(receivers), ActionStatus.Canceled);\n}\n\nexport function ofEmittableErrored(\n  ...receivers: Function[]\n): OperatorFunction<any, OfEmittableActionContext<any>> {\n  return ofEmittable(getReceiverTypes(receivers), ActionStatus.Errored);\n}\n\nexport function ofEmittable(\n  types: Types,\n  status: ActionStatus\n): OperatorFunction<any, OfEmittableActionContext<any>> {\n  return source =>\n    source.pipe(\n      filter((ctx: ActionContext) => {\n        const type = getActionTypeFromInstance(ctx.action)!;\n        const hashMapHasType = !!types[type];\n        const contextHasTransmittedStatus = ctx.status === status;\n        return hashMapHasType && contextHasTransmittedStatus;\n      }),\n      map(\n        ({ action, error }: ActionContext) =>\n          <OfEmittableActionContext>{\n            error,\n            type: getActionTypeFromInstance(action),\n            payload: action.payload\n          }\n      )\n    );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["NG_DEV_MODE","ɵensureStoreMetadata","i1.EmitStore","i1.InjectorAccessor"],"mappings":"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"}