UNPKG

@launchtray/tsyringe-async

Version:

Lightweight dependency injection container for JavaScript/TypeScript, with asynchronous resolution

32 lines (31 loc) 1.26 kB
import { __read, __spread } from "tslib"; function formatDependency(params, idx) { if (params == null) { return "at position #" + idx; } var argName = params.split(",")[idx].trim(); return "\"" + argName + "\" at position #" + idx; } function composeErrorMessage(msg, e, indent) { if (indent === void 0) { indent = " "; } return __spread([msg], e.message.split("\n").map(function (l) { return indent + l; })).join("\n"); } export function formatErrorCtor(ctor, paramIdx, error, propertyKey) { var _a, _b; if (propertyKey === void 0) { propertyKey = undefined; } var params; var targetName; if (propertyKey) { var methodName = String(propertyKey); _a = __read(ctor.constructor .toString() .match(new RegExp(methodName + "\\(([\\w, ]+)\\)")) || [], 2), params = _a[1]; targetName = ctor.constructor.name + "." + methodName; } else { _b = __read(ctor.toString().match(/constructor\(([\w, ]+)\)/) || [], 2), params = _b[1]; targetName = ctor.name + " constructor"; } var dep = formatDependency(params, paramIdx); return composeErrorMessage("Cannot inject the dependency " + dep + " of " + targetName + ". Reason:", error); }