UNPKG

vulcain-corejs

Version:
90 lines (88 loc) 3.02 kB
"use strict"; require("reflect-metadata"); const preloader_1 = require("../preloader"); const system_1 = require("../configurations/globals/system"); /** * List of default service names * * @export * @class DefaultServiceNames */ class DefaultServiceNames { } DefaultServiceNames.TokenService = "TokenService"; DefaultServiceNames.AuthorizationPolicy = "AuthorizationPolicy"; DefaultServiceNames.TenantPolicy = "TenantPolicy"; DefaultServiceNames.ScopesDescriptor = "ScopesDescriptor"; DefaultServiceNames.ServiceDescriptors = "ServiceDescriptors"; DefaultServiceNames["Authentication"] = "Authentication"; DefaultServiceNames["Logger"] = "Logger"; DefaultServiceNames["Provider"] = "Provider"; DefaultServiceNames["EventBusAdapter"] = "EventBusAdapter"; DefaultServiceNames["ActionBusAdapter"] = "ActionBusAdapter"; DefaultServiceNames["Domain"] = "Domain"; DefaultServiceNames["Application"] = "ApplicationFactory"; DefaultServiceNames["ServerAdapter"] = "ServerAdapter"; DefaultServiceNames.Container = "Container"; DefaultServiceNames.ProviderFactory = "ProviderFactory"; DefaultServiceNames.TestUser = "TestUser"; DefaultServiceNames.RequestContext = "RequestContext"; DefaultServiceNames.Metrics = "Metrics"; DefaultServiceNames.ApiKeyService = "ApiKeyService"; exports.DefaultServiceNames = DefaultServiceNames; /** * Component life time * * @export * @enum {number} */ var LifeTime; (function (LifeTime) { /** * Only one instance */ LifeTime[LifeTime["Singleton"] = 1] = "Singleton"; /** * Create a new instance every time */ LifeTime[LifeTime["Transient"] = 2] = "Transient"; /** * Create one instance per request */ LifeTime[LifeTime["Scoped"] = 4] = "Scoped"; })(LifeTime = exports.LifeTime || (exports.LifeTime = {})); /** * Used to initialize a constructor parameter with a component * * @export * @param {string} component name * @param {boolean} [optional] True to not raise an exception if component doesn't exist */ function Inject(name, optional) { return function (target, key, i) { let injects = Reflect.getOwnMetadata(Symbol.for("di:injects"), target) || []; injects[i] = { name: name, optional: !!optional }; Reflect.defineMetadata(Symbol.for("di:injects"), injects, target); }; } exports.Inject = Inject; /** * Used to declare a component. * * @export * @param {LifeTime} lifeTime of the component * @param {string} [name] - By default this is the class name * @param {enableOnTestOnly} Active this component only in an test environment */ function Injectable(lifeTime, name, enableOnTestOnly) { return function (target) { if (enableOnTestOnly && !system_1.System.isTestEnvironnment) return; name = name || target.name; preloader_1.Preloader.instance.registerService(target, (container, domain) => { container.inject(name, target, lifeTime); }); }; } exports.Injectable = Injectable; //# sourceMappingURL=annotations.js.map