ngx-decorate
Version:
Useful decorators for Angular 2 and above
44 lines • 1.43 kB
JavaScript
import * as tslib_1 from "tslib";
import { ensureSymbol } from '../lib/ensureSymbol';
import { _subscrTo, _subscrToSubs } from '../lib/symbols';
/** @internal */
function processSource(self, source, subs) {
var subscrFn;
var cdrProp = source.cfg.cdrProp;
if (cdrProp) {
subscrFn = function (v) {
self[source.target] = v;
self[source.cfg.cdrProp].markForCheck();
};
}
else {
subscrFn = function (v) {
self[source.target] = v;
};
}
subs.push(self[source.source].subscribe(subscrFn, console.error));
}
/** @internal */
export function subscribeTo(self) {
var e_1, _a;
var sources = self[_subscrTo];
if (sources) {
var subs = ensureSymbol(self, _subscrToSubs, []);
try {
for (var sources_1 = tslib_1.__values(sources), sources_1_1 = sources_1.next(); !sources_1_1.done; sources_1_1 = sources_1.next()) {
var source = sources_1_1.value;
if (self[source.source]) {
processSource(self, source, subs);
}
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (sources_1_1 && !sources_1_1.done && (_a = sources_1.return)) _a.call(sources_1);
}
finally { if (e_1) throw e_1.error; }
}
}
}
//# sourceMappingURL=subscribe-to.js.map