ngx-decorate
Version:
Useful decorators for Angular 2 and above
65 lines • 1.91 kB
JavaScript
import * as tslib_1 from "tslib";
import { _subscrToSubs, _unsubscribe } from '../lib/symbols';
/** @internal */
function unsubArray(props) {
var e_1, _a;
try {
for (var props_1 = tslib_1.__values(props), props_1_1 = props_1.next(); !props_1_1.done; props_1_1 = props_1.next()) {
var sub = props_1_1.value;
sub.unsubscribe();
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (props_1_1 && !props_1_1.done && (_a = props_1.return)) _a.call(props_1);
}
finally { if (e_1) throw e_1.error; }
}
}
/** @internal */
function processProp(prop) {
if (prop) {
if (Array.isArray(prop)) {
unsubArray(prop);
}
else {
prop.unsubscribe();
}
}
}
/** @internal */
export function unsubscribe(self) {
var e_2, _a, e_3, _b;
if (self[_unsubscribe]) {
try {
for (var _c = tslib_1.__values(self[_unsubscribe]), _d = _c.next(); !_d.done; _d = _c.next()) {
var prop = _d.value;
processProp(self[prop]);
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
}
finally { if (e_2) throw e_2.error; }
}
}
if (self[_subscrToSubs]) {
try {
for (var _e = tslib_1.__values(self[_subscrToSubs]), _f = _e.next(); !_f.done; _f = _e.next()) {
var prop = _f.value;
processProp(prop);
}
}
catch (e_3_1) { e_3 = { error: e_3_1 }; }
finally {
try {
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
}
finally { if (e_3) throw e_3.error; }
}
}
}
//# sourceMappingURL=unsubscribe.js.map