@badisi/ngx-safe-subscribe 4.0.21 → 4.0.23
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badisi-ngx-safe-subscribe.mjs","sources":["../../ngx-safe-subscribe.ts","../../badisi-ngx-safe-subscribe.ts"],"sourcesContent":["import { Observable, Subscription } from 'rxjs';\n\nconst HAS_DECORATOR = Symbol('__safeSubscribeDecorator');\nconst SUBSCRIPTION = Symbol('__safeSubscribeSubscription$');\n\ndeclare module 'rxjs/internal/Observable' {\n interface Observable<T> {\n safeSubscribe: typeof safeSubscribe;\n }\n}\n\nexport function SafeSubscribe(destructorName ='ngOnDestroy'): ClassDecorator {\n return (classType: Function) => {\n const originalDestroy = classType.prototype[destructorName];\n classType.prototype[destructorName] = function (this: any) {\n originalDestroy && originalDestroy.call(this);\n this[SUBSCRIPTION]?.unsubscribe();\n this[SUBSCRIPTION] = null;\n }\n classType.prototype[HAS_DECORATOR] = true;\n };\n}\n\nexport function safeSubscribe<T>(this: Observable<T>, target: any, ...args: any): Subscription {\n const sub = this.subscribe(...args);\n if (target) {\n const hasDecorator = Object.getPrototypeOf(target)[HAS_DECORATOR];\n if (!hasDecorator) {\n throw new Error(`${target.constructor.name} class must be decorated with @SafeSubscribe() otherwise Observable<T>.safeSubscribe() will have no effect.`);\n }\n if (!target[SUBSCRIPTION]) {\n target[SUBSCRIPTION] = new Subscription();\n }\n target[SUBSCRIPTION].add(sub);\n }\n return sub;\n}\nObservable.prototype.safeSubscribe = safeSubscribe;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './ngx-safe-subscribe';\n"],"names":[],"mappings":";;AAEA,MAAM,aAAa,GAAG,MAAM,CAAC,0BAA0B,CAAC
|
|
1
|
+
{"version":3,"file":"badisi-ngx-safe-subscribe.mjs","sources":["../../ngx-safe-subscribe.ts","../../badisi-ngx-safe-subscribe.ts"],"sourcesContent":["import { Observable, Subscription } from 'rxjs';\n\nconst HAS_DECORATOR = Symbol('__safeSubscribeDecorator');\nconst SUBSCRIPTION = Symbol('__safeSubscribeSubscription$');\n\ndeclare module 'rxjs/internal/Observable' {\n interface Observable<T> {\n safeSubscribe: typeof safeSubscribe;\n }\n}\n\nexport function SafeSubscribe(destructorName ='ngOnDestroy'): ClassDecorator {\n return (classType: Function) => {\n const originalDestroy = classType.prototype[destructorName];\n classType.prototype[destructorName] = function (this: any) {\n originalDestroy && originalDestroy.call(this);\n this[SUBSCRIPTION]?.unsubscribe();\n this[SUBSCRIPTION] = null;\n }\n classType.prototype[HAS_DECORATOR] = true;\n };\n}\n\nexport function safeSubscribe<T>(this: Observable<T>, target: any, ...args: any): Subscription {\n const sub = this.subscribe(...args);\n if (target) {\n const hasDecorator = Object.getPrototypeOf(target)[HAS_DECORATOR];\n if (!hasDecorator) {\n throw new Error(`${target.constructor.name} class must be decorated with @SafeSubscribe() otherwise Observable<T>.safeSubscribe() will have no effect.`);\n }\n if (!target[SUBSCRIPTION]) {\n target[SUBSCRIPTION] = new Subscription();\n }\n target[SUBSCRIPTION].add(sub);\n }\n return sub;\n}\nObservable.prototype.safeSubscribe = safeSubscribe;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './ngx-safe-subscribe';\n"],"names":[],"mappings":";;AAEA,MAAM,aAAa,GAAG,MAAM,CAAC,0BAA0B,CAAC;AACxD,MAAM,YAAY,GAAG,MAAM,CAAC,8BAA8B,CAAC;AAQ3C,SAAA,aAAa,CAAC,cAAc,GAAE,aAAa,EAAA;IACvD,OAAO,CAAC,SAAmB,KAAI;QAC3B,MAAM,eAAe,GAAG,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC;AAC3D,QAAA,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,YAAA;AAClC,YAAA,eAAe,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C,YAAA,IAAI,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE;AACjC,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI;AAC7B,SAAC;AACD,QAAA,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,IAAI;AAC7C,KAAC;AACL;SAEgB,aAAa,CAAyB,MAAW,EAAE,GAAG,IAAS,EAAA;IAC3E,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IACnC,IAAI,MAAM,EAAE;QACR,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;QACjE,IAAI,CAAC,YAAY,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,CAAG,EAAA,MAAM,CAAC,WAAW,CAAC,IAAI,CAA6G,2GAAA,CAAA,CAAC;;AAE5J,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;AACvB,YAAA,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,YAAY,EAAE;;QAE7C,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;;AAEjC,IAAA,OAAO,GAAG;AACd;AACA,UAAU,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa;;ACrClD;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@badisi/ngx-safe-subscribe",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.23",
|
|
4
4
|
"description": "Easy way to automatically unsubscribe from RxJS observables in Angular components",
|
|
5
5
|
"homepage": "https://github.com/badisi/ngx-safe-subscribe",
|
|
6
6
|
"license": "MIT",
|
|
@@ -34,8 +34,6 @@
|
|
|
34
34
|
},
|
|
35
35
|
".": {
|
|
36
36
|
"types": "./index.d.ts",
|
|
37
|
-
"esm2022": "./esm2022/badisi-ngx-safe-subscribe.mjs",
|
|
38
|
-
"esm": "./esm2022/badisi-ngx-safe-subscribe.mjs",
|
|
39
37
|
"default": "./fesm2022/badisi-ngx-safe-subscribe.mjs"
|
|
40
38
|
}
|
|
41
39
|
},
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './ngx-safe-subscribe';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkaXNpLW5neC1zYWZlLXN1YnNjcmliZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2JhZGlzaS1uZ3gtc2FmZS1zdWJzY3JpYmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL25neC1zYWZlLXN1YnNjcmliZSc7XG4iXX0=
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { Observable, Subscription } from 'rxjs';
|
|
2
|
-
const HAS_DECORATOR = Symbol('__safeSubscribeDecorator');
|
|
3
|
-
const SUBSCRIPTION = Symbol('__safeSubscribeSubscription$');
|
|
4
|
-
export function SafeSubscribe(destructorName = 'ngOnDestroy') {
|
|
5
|
-
return (classType) => {
|
|
6
|
-
const originalDestroy = classType.prototype[destructorName];
|
|
7
|
-
classType.prototype[destructorName] = function () {
|
|
8
|
-
originalDestroy && originalDestroy.call(this);
|
|
9
|
-
this[SUBSCRIPTION]?.unsubscribe();
|
|
10
|
-
this[SUBSCRIPTION] = null;
|
|
11
|
-
};
|
|
12
|
-
classType.prototype[HAS_DECORATOR] = true;
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
export function safeSubscribe(target, ...args) {
|
|
16
|
-
const sub = this.subscribe(...args);
|
|
17
|
-
if (target) {
|
|
18
|
-
const hasDecorator = Object.getPrototypeOf(target)[HAS_DECORATOR];
|
|
19
|
-
if (!hasDecorator) {
|
|
20
|
-
throw new Error(`${target.constructor.name} class must be decorated with @SafeSubscribe() otherwise Observable<T>.safeSubscribe() will have no effect.`);
|
|
21
|
-
}
|
|
22
|
-
if (!target[SUBSCRIPTION]) {
|
|
23
|
-
target[SUBSCRIPTION] = new Subscription();
|
|
24
|
-
}
|
|
25
|
-
target[SUBSCRIPTION].add(sub);
|
|
26
|
-
}
|
|
27
|
-
return sub;
|
|
28
|
-
}
|
|
29
|
-
Observable.prototype.safeSubscribe = safeSubscribe;
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNhZmUtc3Vic2NyaWJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbmd4LXNhZmUtc3Vic2NyaWJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0FBQ3pELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0FBUTVELE1BQU0sVUFBVSxhQUFhLENBQUMsY0FBYyxHQUFFLGFBQWE7SUFDdkQsT0FBTyxDQUFDLFNBQW1CLEVBQUUsRUFBRTtRQUMzQixNQUFNLGVBQWUsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVELFNBQVMsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEdBQUc7WUFDbEMsZUFBZSxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDOUIsQ0FBQyxDQUFBO1FBQ0QsU0FBUyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDOUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQXlCLE1BQVcsRUFBRSxHQUFHLElBQVM7SUFDM0UsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3BDLElBQUksTUFBTSxFQUFFLENBQUM7UUFDVCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLDZHQUE2RyxDQUFDLENBQUM7UUFDN0osQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUN4QixNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDO0FBQ0QsVUFBVSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmNvbnN0IEhBU19ERUNPUkFUT1IgPSBTeW1ib2woJ19fc2FmZVN1YnNjcmliZURlY29yYXRvcicpO1xuY29uc3QgU1VCU0NSSVBUSU9OID0gU3ltYm9sKCdfX3NhZmVTdWJzY3JpYmVTdWJzY3JpcHRpb24kJyk7XG5cbmRlY2xhcmUgbW9kdWxlICdyeGpzL2ludGVybmFsL09ic2VydmFibGUnIHtcbiAgICBpbnRlcmZhY2UgT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHNhZmVTdWJzY3JpYmU6IHR5cGVvZiBzYWZlU3Vic2NyaWJlO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFNhZmVTdWJzY3JpYmUoZGVzdHJ1Y3Rvck5hbWUgPSduZ09uRGVzdHJveScpOiBDbGFzc0RlY29yYXRvciB7XG4gICAgcmV0dXJuIChjbGFzc1R5cGU6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsRGVzdHJveSA9IGNsYXNzVHlwZS5wcm90b3R5cGVbZGVzdHJ1Y3Rvck5hbWVdO1xuICAgICAgICBjbGFzc1R5cGUucHJvdG90eXBlW2Rlc3RydWN0b3JOYW1lXSA9IGZ1bmN0aW9uICh0aGlzOiBhbnkpIHtcbiAgICAgICAgICAgIG9yaWdpbmFsRGVzdHJveSAmJiBvcmlnaW5hbERlc3Ryb3kuY2FsbCh0aGlzKTtcbiAgICAgICAgICAgIHRoaXNbU1VCU0NSSVBUSU9OXT8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXNbU1VCU0NSSVBUSU9OXSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY2xhc3NUeXBlLnByb3RvdHlwZVtIQVNfREVDT1JBVE9SXSA9IHRydWU7XG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNhZmVTdWJzY3JpYmU8VD4odGhpczogT2JzZXJ2YWJsZTxUPiwgdGFyZ2V0OiBhbnksIC4uLmFyZ3M6IGFueSk6IFN1YnNjcmlwdGlvbiB7XG4gICAgY29uc3Qgc3ViID0gdGhpcy5zdWJzY3JpYmUoLi4uYXJncyk7XG4gICAgaWYgKHRhcmdldCkge1xuICAgICAgICBjb25zdCBoYXNEZWNvcmF0b3IgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGFyZ2V0KVtIQVNfREVDT1JBVE9SXTtcbiAgICAgICAgaWYgKCFoYXNEZWNvcmF0b3IpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0YXJnZXQuY29uc3RydWN0b3IubmFtZX0gY2xhc3MgbXVzdCBiZSBkZWNvcmF0ZWQgd2l0aCBAU2FmZVN1YnNjcmliZSgpIG90aGVyd2lzZSBPYnNlcnZhYmxlPFQ+LnNhZmVTdWJzY3JpYmUoKSB3aWxsIGhhdmUgbm8gZWZmZWN0LmApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGFyZ2V0W1NVQlNDUklQVElPTl0pIHtcbiAgICAgICAgICAgIHRhcmdldFtTVUJTQ1JJUFRJT05dID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIHRhcmdldFtTVUJTQ1JJUFRJT05dLmFkZChzdWIpO1xuICAgIH1cbiAgICByZXR1cm4gc3ViO1xufVxuT2JzZXJ2YWJsZS5wcm90b3R5cGUuc2FmZVN1YnNjcmliZSA9IHNhZmVTdWJzY3JpYmU7XG4iXX0=
|