UNPKG

angular-style-injector

Version:

Dependency injection container inspired by Angular's Injector.

34 lines (33 loc) 1.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.INJECTOR_ERRORS = exports.isSingleProvider = exports.InjectionToken = void 0; class InjectionToken { constructor(uniqueDesc) { this.uniqueDesc = uniqueDesc; } get description() { return this.uniqueDesc; } } exports.InjectionToken = InjectionToken; const isSingleProvider = (config) => { return typeof config === 'function' || !('multi' in config) || !config.multi; }; exports.isSingleProvider = isSingleProvider; const getTokenName = (token) => { return typeof token === 'function' ? token.name : token.description; }; const getInjectorName = (name) => { return name ? `Injector: ${name}` : ''; }; exports.INJECTOR_ERRORS = { EMPTY_PROVIDERS_WARN: (name) => { return `Injector created without any providers. Consider adding providers to enable dependency resolution. ${getInjectorName(name)}`; }, THROW_PROVIDER_NOT_FOUND: (token, name) => { return `Injector Error: No provider for ${getTokenName(token)}. ${getInjectorName(name)}`; }, THROW_DECORATOR_MISSING: (constructorName) => { return `Injector Error: Cannot instantiate class ${constructorName} because it does not have the @Injectable decorator.`; }, };