"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