{"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;;;;"}