@michaelganchas/ts-inject
Version:
A lightweight TypeScript dependency injection library
45 lines (44 loc) • 1.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.container = void 0;
var container = (function () {
var map = new Map();
var clear = function () {
map.clear();
};
var unregister = function (key) {
map.delete(key);
};
var register = function (key, factory) {
map.set(key, factory);
};
var registerNonReplaceable = function (key, factory) {
if (map.has(key)) {
throw new Error("Key already registered: ".concat(String(key)));
}
map.set(key, factory);
};
var get = function (key) {
var factory = map.get(key);
if (!factory) {
throw new Error("No provider registered for key: ".concat(String(key)));
}
return factory();
};
var isRegistered = function (key) {
return map.has(key);
};
var getKeys = function () {
return Array.from(map.keys());
};
return {
clear: clear,
unregister: unregister,
register: register,
registerNonReplaceable: registerNonReplaceable,
get: get,
isRegistered: isRegistered,
getKeys: getKeys,
};
})();
exports.container = container;