ts-ioc-container
Version:
Typescript IoC container
25 lines (24 loc) • 892 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DEFAULT_CONTAINER_RESOLVER = void 0;
exports.isDependencyKey = isDependencyKey;
const utils_1 = require("../utils");
const DependencyNotFoundError_1 = require("../errors/DependencyNotFoundError");
function isDependencyKey(token) {
return ['string', 'symbol'].includes(typeof token);
}
const DEFAULT_CONTAINER_RESOLVER = (scope, keyOrAlias, options) => {
if ((0, utils_1.isConstructor)(keyOrAlias)) {
return scope.resolveByClass(keyOrAlias, options);
}
try {
return scope.resolveOneByKey(keyOrAlias, options);
}
catch (e) {
if (e instanceof DependencyNotFoundError_1.DependencyNotFoundError) {
return scope.resolveOneByAlias(keyOrAlias, options);
}
throw e;
}
};
exports.DEFAULT_CONTAINER_RESOLVER = DEFAULT_CONTAINER_RESOLVER;