error-helpers.js 661 B

123456789101112131415
  1. function formatDependency(params, idx) {
  2. if (params === null) {
  3. return `at position #${idx}`;
  4. }
  5. const argName = params.split(",")[idx].trim();
  6. return `"${argName}" at position #${idx}`;
  7. }
  8. function composeErrorMessage(msg, e, indent = " ") {
  9. return [msg, ...e.message.split("\n").map(l => indent + l)].join("\n");
  10. }
  11. export function formatErrorCtor(ctor, paramIdx, error) {
  12. const [, params = null] = ctor.toString().match(/constructor\(([\w, ]+)\)/) || [];
  13. const dep = formatDependency(params, paramIdx);
  14. return composeErrorMessage(`Cannot inject the dependency ${dep} of "${ctor.name}" constructor. Reason:`, error);
  15. }