UNPKG

@michaelganchas/ts-inject

Version:

A lightweight TypeScript dependency injection library

45 lines (44 loc) 1.23 kB
"use strict"; 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;