@akala/core
Version:
21 lines • 882 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const global_injector_1 = require("./global-injector");
function service(name, ...toInject) {
return function (target) {
var instance = null;
if (toInject == null || toInject.length == 0 && target.length > 0)
throw new Error('missing inject names');
else
global_injector_1.registerFactory(name, function () {
return instance || global_injector_1.injectWithName(toInject, function () {
var args = [null];
for (var i = 0; i < arguments.length; i++)
args[i + 1] = arguments[i];
return instance = new (Function.prototype.bind.apply(target, args));
})();
});
};
}
exports.service = service;
//# sourceMappingURL=service.js.map