Injector/Retrieve.js

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var Injector_1 = __importDefault(require("./Injector"));
/**
 * This decorator is used to Retrieve/get an injected object/variable.
 * The Retrieve decorator only works on the classes that have [\@Inject]{@link Inject}
 * or [\@Action]{@link Action}
 * For functions/classes that can't use [\@Retrieve]{@link Retrieve},
 * use [Injector.get()]{@link module:Injector~Injector.get}
 * @static
 * @function Retrieve
 * @memberof module:Injector
 * @return {any}
 * @param {string} name The name of the object/variable.
 * @example <caption>Example usage of [\@Retrieve]{@link Retrieve}.</caption>
 * export default class ClassName {
 *    [\@Retrieve]{@link Retrieve}('name')
 *    private variable?: Type;
 * }
 */
exports.default = (function (name) { return function (target, key) {
    var getter = function () {
        return Injector_1.default.get(name);
    };
    Object.defineProperty(target, key, {
        get: getter,
        configurable: false,
        enumerable: false
    });
}; });
//# sourceMappingURL=Retrieve.js.map