UNPKG

@kephas/core

Version:

Provides a common infrastructure for all the other Kephas Framework components: ambient services, dynamic reflection, composition, application management, and others.

38 lines 4.86 kB
var Injector_1; import { __decorate } from "tslib"; import { InjectionError } from "./injectionError"; import { SingletonAppServiceContract } from "../services/appServiceContract"; /** * Contract for composition context. * * @export * @abstract * @class Injector */ let Injector = Injector_1 = class Injector { /** * Gets or sets the static instance of the Injector. * * @readonly * @static * @type {Injector} * @memberof Injector */ static get instance() { return Injector_1._instance; } static set instance(value) { if (value === Injector_1._instance) { return; } if (value && Injector_1._instance) { throw new InjectionError(`Both the instance (${Injector_1._instance}) and the new value (${value}) are set. If you really intend to change the injector, set it first to null and then set the new value.`); } Injector_1._instance = value; } }; Injector = Injector_1 = __decorate([ SingletonAppServiceContract() ], Injector); export { Injector }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXBoYXMvY29yZS9zcmMvbGliL2luamVjdGlvbi9pbmplY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUc3RTs7Ozs7O0dBTUc7QUFFSCxJQUFzQixRQUFRLGdCQUE5QixNQUFzQixRQUFRO0lBRzVCOzs7Ozs7O09BT0c7SUFDSSxNQUFNLEtBQUssUUFBUTtRQUN4QixPQUFPLFVBQVEsQ0FBQyxTQUFTLENBQUM7SUFDNUIsQ0FBQztJQUVNLE1BQU0sS0FBSyxRQUFRLENBQUMsS0FBZTtRQUN4QyxJQUFJLEtBQUssS0FBSyxVQUFRLENBQUMsU0FBUyxFQUFFO1lBQ2hDLE9BQU87U0FDUjtRQUVELElBQUksS0FBSyxJQUFJLFVBQVEsQ0FBQyxTQUFTLEVBQUU7WUFDL0IsTUFBTSxJQUFJLGNBQWMsQ0FBQyxzQkFBc0IsVUFBUSxDQUFDLFNBQVMsd0JBQXdCLEtBQUssMEdBQTBHLENBQUMsQ0FBQztTQUMzTTtRQUVELFVBQVEsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7Q0F1QkYsQ0FBQTtBQWhEcUIsUUFBUTtJQUQ3QiwyQkFBMkIsRUFBRTtHQUNSLFFBQVEsQ0FnRDdCO1NBaERxQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uRXJyb3IgfSBmcm9tIFwiLi9pbmplY3Rpb25FcnJvclwiO1xyXG5pbXBvcnQgeyBTaW5nbGV0b25BcHBTZXJ2aWNlQ29udHJhY3QgfSBmcm9tIFwiLi4vc2VydmljZXMvYXBwU2VydmljZUNvbnRyYWN0XCI7XHJcbmltcG9ydCB7IEFic3RyYWN0VHlwZSwgVHlwZSB9IGZyb20gXCIuLi90eXBlXCI7XHJcblxyXG4vKipcclxuICogQ29udHJhY3QgZm9yIGNvbXBvc2l0aW9uIGNvbnRleHQuXHJcbiAqXHJcbiAqIEBleHBvcnRcclxuICogQGFic3RyYWN0XHJcbiAqIEBjbGFzcyBJbmplY3RvclxyXG4gKi9cclxuQFNpbmdsZXRvbkFwcFNlcnZpY2VDb250cmFjdCgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBJbmplY3RvciB7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgX2luc3RhbmNlOiBJbmplY3RvcjtcclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyBvciBzZXRzIHRoZSBzdGF0aWMgaW5zdGFuY2Ugb2YgdGhlIEluamVjdG9yLlxyXG4gICAqXHJcbiAgICogQHJlYWRvbmx5XHJcbiAgICogQHN0YXRpY1xyXG4gICAqIEB0eXBlIHtJbmplY3Rvcn1cclxuICAgKiBAbWVtYmVyb2YgSW5qZWN0b3JcclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIGdldCBpbnN0YW5jZSgpOiBJbmplY3RvciB7XHJcbiAgICByZXR1cm4gSW5qZWN0b3IuX2luc3RhbmNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBzZXQgaW5zdGFuY2UodmFsdWU6IEluamVjdG9yKSB7XHJcbiAgICBpZiAodmFsdWUgPT09IEluamVjdG9yLl9pbnN0YW5jZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHZhbHVlICYmIEluamVjdG9yLl9pbnN0YW5jZSkge1xyXG4gICAgICB0aHJvdyBuZXcgSW5qZWN0aW9uRXJyb3IoYEJvdGggdGhlIGluc3RhbmNlICgke0luamVjdG9yLl9pbnN0YW5jZX0pIGFuZCB0aGUgbmV3IHZhbHVlICgke3ZhbHVlfSkgYXJlIHNldC4gSWYgeW91IHJlYWxseSBpbnRlbmQgdG8gY2hhbmdlIHRoZSBpbmplY3Rvciwgc2V0IGl0IGZpcnN0IHRvIG51bGwgYW5kIHRoZW4gc2V0IHRoZSBuZXcgdmFsdWUuYCk7XHJcbiAgICB9XHJcblxyXG4gICAgSW5qZWN0b3IuX2luc3RhbmNlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgICAqIEdldHMgdGhlIHNlcnZpY2UgaW5zdGFuY2Ugb2YgdGhlIHJlcXVpcmVkIHNlcnZpY2UgY29udHJhY3QgdHlwZS5cclxuICAgICAqXHJcbiAgICAgKiBAdGVtcGxhdGUgVFxyXG4gICAgICogQHBhcmFtIHtUeXBlPFQ+fSB0eXBlIFRoZSBzZXJ2aWNlIGNvbnRyYWN0IHR5cGUuXHJcbiAgICAgKiBAcGFyYW0gbm90Rm91bmRSZXNvbHZlciBBIHJlc29sdmVyIGZvciB0aGUgY2FzZSB3aGVuIGEgdHlwZSBjYW5ub3QgYmUgcmVzb2x2ZWQuXHJcbiAgICAgKiBAcmV0dXJucyB7VH0gVGhlIHJlcXVlc3RlZCBzZXJ2aWNlLlxyXG4gICAgICogQG1lbWJlcm9mIEluamVjdG9yXHJcbiAgICAgKi9cclxuICBhYnN0cmFjdCByZXNvbHZlPFQ+KHR5cGU6IFR5cGU8VD4gfCBBYnN0cmFjdFR5cGUsIG5vdEZvdW5kUmVzb2x2ZXI/OiAodHlwZTogVHlwZTxUPiB8IEFic3RyYWN0VHlwZSkgPT4gYW55KTogVDtcclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyBhbiBhcnJheSBvZiBzZXJ2aWNlIGluc3RhbmNlcy5cclxuICAgKlxyXG4gICAqIEB0ZW1wbGF0ZSBUXHJcbiAgICogQHBhcmFtIHtUeXBlPFQ+fSB0eXBlIFRoZSBzZXJ2aWNlIGNvbnRyYWN0IHR5cGUuXHJcbiAgICogQHBhcmFtIG5vdEZvdW5kUmVzb2x2ZXIgQSByZXNvbHZlciBmb3IgdGhlIGNhc2Ugd2hlbiBhIHR5cGUgY2Fubm90IGJlIHJlc29sdmVkLlxyXG4gICAqIEByZXR1cm5zIHtUW119IFRoZSBhcnJheSBvZiB0aGUgcmVxdWVzdGVkIHNlcnZpY2UuXHJcbiAgICogQG1lbWJlcm9mIEluamVjdG9yXHJcbiAgICovXHJcbiAgYWJzdHJhY3QgcmVzb2x2ZU1hbnk8VD4odHlwZTogVHlwZTxUPiB8IEFic3RyYWN0VHlwZSwgbm90Rm91bmRSZXNvbHZlcj86ICh0eXBlOiBUeXBlPFQ+IHwgQWJzdHJhY3RUeXBlKSA9PiBhbnkpOiBUW107XHJcbn1cclxuIl19