UNPKG

@michaelganchas/ts-inject

Version:

A lightweight TypeScript dependency injection library

39 lines (38 loc) 1.32 kB
"use strict"; var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.autowireFn = void 0; var container_1 = require("./container"); /** * Autowire a function with resolved dependencies. * * @param func - The target function * @param keys - Keys of dependencies to inject from DI container * @returns A function with the injected dependencies */ var autowireFn = function (func) { var keys = []; for (var _i = 1; _i < arguments.length; _i++) { keys[_i - 1] = arguments[_i]; } // @ts-ignore return function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var services = keys.map(function (key) { return container_1.container.get(key); }); return func.apply(void 0, __spreadArray(__spreadArray([], services, false), args, false)); }; }; exports.autowireFn = autowireFn;