reactive-di-observable
Version:
reactive-di dependency injection - observable plugins
35 lines (29 loc) • 1.05 kB
JavaScript
;
exports.__esModule = true;
exports.observable = observable;
exports.observableAnn = observableAnn;
var _driver = require('reactive-di/driver');
/*:: import type {
ObservableParams,
ObservableAnnotation
} from 'reactive-di-observable'*/
function observable /*:: <V>*/() /*: ObservableAnnotation<V>*/ {
var rec /*:: ?: ObservableParams<V>*/ = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
return {
kind: 'observable',
key: rec.key,
loader: rec.loader,
serializable: rec.serializable
};
}
function observableAnn /*:: <V: Function>*/() /*: (target: V) => V*/ {
var rec /*:: ?: ObservableParams*/ = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
return function _observable(target /*: V*/) /*: V*/ {
if (typeof target !== 'function') {
throw new Error('Not a function');
}
_driver.rdi.set(target, observable(rec));
return target;
};
}
//# sourceMappingURL=observable.js.map