ayanami
Version:
A better way to react with state
23 lines (22 loc) • 1.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getInstanceWithScope = exports.SingletonScope = exports.TransientScope = exports.createScopeWithRequest = exports.SameScope = void 0;
var di_1 = require("@asuka/di");
var utils_1 = require("./utils");
Object.defineProperty(exports, "createScopeWithRequest", { enumerable: true, get: function () { return utils_1.createScopeWithRequest; } });
var same_scope_decorator_1 = require("./same-scope-decorator");
Object.defineProperty(exports, "SameScope", { enumerable: true, get: function () { return same_scope_decorator_1.SameScope; } });
exports.TransientScope = Symbol('scope:transient');
exports.SingletonScope = Symbol('scope:singleton');
function getInstanceWithScope(constructor, scope) {
if (scope === void 0) { scope = exports.SingletonScope; }
switch (scope) {
case exports.SingletonScope:
return di_1.InjectableFactory.getInstance(constructor);
case exports.TransientScope:
return di_1.InjectableFactory.initialize(constructor);
default:
return utils_1.createOrGetInstanceInScope(constructor, scope);
}
}
exports.getInstanceWithScope = getInstanceWithScope;