UNPKG

@code-workers.io/ngx-effect

Version:

NgxEffect let you easily handle your RxJs subscriptions

1 lines 2.83 kB
{"version":3,"file":"code-workers.io-ngx-effect.mjs","sources":["../../../../libs/ngx-effect/src/lib/ngx-effect.service.ts","../../../../libs/ngx-effect/src/code-workers.io-ngx-effect.ts"],"sourcesContent":["import { ErrorHandler, Injectable, OnDestroy } from '@angular/core';\nimport {\n catchError,\n EMPTY,\n mergeMap,\n MonoTypeOperatorFunction,\n Observable,\n of,\n Subscription,\n tap\n} from 'rxjs';\n\n/**\n * Keeps track of your subscriptions and unsubscribes them automatically when destroyed.\n *\n * @example\n */\n@Injectable()\nexport class NgxEffect implements OnDestroy {\n #sub = new Subscription();\n constructor(private readonly e: ErrorHandler) {}\n\n /**\n *\n * @example\n * ```typescript\n * keeper.register(of(1).subscribe(console.log));\n * ```\n */\n register(sub: Subscription): void;\n /**\n *\n * @example\n * ```typescript\n * keeper.register(of(1).pipe(tap(console.log)));\n * ```\n */\n register(o$: Observable<unknown>): void;\n /**\n *\n * @example\n * ```typescript\n * const trigger$ = of(1);\n * const effect = console.log;\n * keeper.register(trigger$, effect);\n * ```\n */\n register(o$: Observable<unknown>, operation: (v: unknown) => void): void;\n register(\n obsOrSub$: Observable<unknown> | Subscription,\n operation?: (v: unknown) => void\n ): void {\n if (obsOrSub$ instanceof Subscription) {\n this.#sub.add(obsOrSub$);\n return;\n }\n this.#sub.add(\n obsOrSub$\n .pipe(\n // execute operation/ side effect\n tap(operation),\n catchError((err) => {\n this.e.handleError(err);\n return EMPTY;\n })\n )\n .subscribe()\n );\n }\n\n ngOnDestroy(): void {\n this.#sub.unsubscribe();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAYA;;;;AAIG;MAEU,SAAS,CAAA;AAEpB,IAAA,WAAA,CAA6B,CAAe,EAAA;AAAf,QAAA,IAAC,CAAA,CAAA,GAAD,CAAC,CAAc;QAD5C,cAAO,CAAA,GAAA,CAAA,IAAA,EAAA,IAAI,YAAY,EAAE,CAAC,CAAA;KACsB;IA4BhD,QAAQ,CACN,SAA6C,EAC7C,SAAgC,EAAA;QAEhC,IAAI,SAAS,YAAY,YAAY,EAAE;AACrC,YAAA,sBAAA,CAAA,IAAI,EAAK,cAAA,EAAA,GAAA,CAAA,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACzB,OAAO;AACR,SAAA;QACD,sBAAA,CAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAK,CAAC,GAAG,CACX,SAAS;aACN,IAAI;;QAEH,GAAG,CAAC,SAAS,CAAC,EACd,UAAU,CAAC,CAAC,GAAG,KAAI;AACjB,YAAA,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACxB,YAAA,OAAO,KAAK,CAAC;AACf,SAAC,CAAC,CACH;aACA,SAAS,EAAE,CACf,CAAC;KACH;IAED,WAAW,GAAA;QACT,sBAAA,CAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAK,CAAC,WAAW,EAAE,CAAC;KACzB;;;uGAtDU,SAAS,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;2GAAT,SAAS,EAAA,CAAA,CAAA;4FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBADrB,UAAU;;;ACjBX;;AAEG;;;;"}