index.cjs 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. "use strict";
  2. var __defProp = Object.defineProperty;
  3. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  4. var __getOwnPropNames = Object.getOwnPropertyNames;
  5. var __hasOwnProp = Object.prototype.hasOwnProperty;
  6. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  7. var __export = (target, all) => {
  8. for (var name in all)
  9. __defProp(target, name, { get: all[name], enumerable: true });
  10. };
  11. var __copyProps = (to, from, except, desc) => {
  12. if (from && typeof from === "object" || typeof from === "function") {
  13. for (let key of __getOwnPropNames(from))
  14. if (!__hasOwnProp.call(to, key) && key !== except)
  15. __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  16. }
  17. return to;
  18. };
  19. var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
  20. // src/index.js
  21. var index_exports = {};
  22. __export(index_exports, {
  23. Errorf: () => Errorf,
  24. InvalidArgumentError: () => InvalidArgumentError,
  25. arrayToString: () => arrayToString,
  26. format: () => format,
  27. valueToString: () => valueToString
  28. });
  29. module.exports = __toCommonJS(index_exports);
  30. // src/utils/is-class.js
  31. function isClass(value) {
  32. if (!value) return false;
  33. return typeof value === "function" && /^class\s/.test(Function.prototype.toString.call(value));
  34. }
  35. __name(isClass, "isClass");
  36. // src/value-to-string.js
  37. var BASE_CTOR_NAMES = [
  38. "String",
  39. "Number",
  40. "Boolean",
  41. "Object",
  42. "Array",
  43. "Function",
  44. "Symbol",
  45. "Map",
  46. "Set",
  47. "Date"
  48. ];
  49. function valueToString(input) {
  50. if (input == null) return String(input);
  51. if (typeof input === "string") return `"${input}"`;
  52. if (typeof input === "number" || typeof input === "boolean")
  53. return String(input);
  54. if (isClass(input)) return input.name ? input.name : "Class";
  55. if (input.constructor && input.constructor.name)
  56. return BASE_CTOR_NAMES.includes(input.constructor.name) ? input.constructor.name : `${input.constructor.name} (instance)`;
  57. if (typeof input === "object" && input.constructor == null) return "Object";
  58. return String(input);
  59. }
  60. __name(valueToString, "valueToString");
  61. // src/array-to-string.js
  62. var SEPARATOR = ", ";
  63. function arrayToString(input) {
  64. if (Array.isArray(input) && input.length)
  65. return input.map(valueToString).join(SEPARATOR);
  66. return valueToString(input);
  67. }
  68. __name(arrayToString, "arrayToString");
  69. // src/format.js
  70. function format(pattern, ...args) {
  71. if (pattern instanceof Date) {
  72. pattern = pattern.toISOString();
  73. } else if (typeof pattern !== "string") {
  74. pattern = String(pattern);
  75. }
  76. const re = /(%?)(%([sdjvl]))/g;
  77. const argsQueue = [...args];
  78. if (argsQueue.length) {
  79. pattern = pattern.replace(re, function(match, escaped, ptn, flag) {
  80. let arg = argsQueue.shift();
  81. switch (flag) {
  82. case "s":
  83. arg = String(arg);
  84. break;
  85. case "d":
  86. arg = Number(arg);
  87. break;
  88. case "j":
  89. arg = JSON.stringify(arg);
  90. break;
  91. case "v":
  92. arg = valueToString(arg);
  93. break;
  94. case "l":
  95. arg = arrayToString(arg);
  96. break;
  97. }
  98. if (!escaped) return arg;
  99. argsQueue.unshift(arg);
  100. return match;
  101. });
  102. }
  103. if (argsQueue.length) pattern += " " + argsQueue.join(" ");
  104. pattern = pattern.replace(/%{2}/g, "%");
  105. return "" + pattern;
  106. }
  107. __name(format, "format");
  108. // src/errorf.js
  109. var _Errorf = class _Errorf extends Error {
  110. /**
  111. * Constructor.
  112. *
  113. * @param {string|undefined} pattern
  114. * @param {*} args
  115. */
  116. constructor(pattern = void 0, ...args) {
  117. const message = pattern != null ? format(pattern, ...args) : void 0;
  118. super(message);
  119. }
  120. };
  121. __name(_Errorf, "Errorf");
  122. var Errorf = _Errorf;
  123. // src/invalid-argument-error.js
  124. var _InvalidArgumentError = class _InvalidArgumentError extends Errorf {
  125. };
  126. __name(_InvalidArgumentError, "InvalidArgumentError");
  127. var InvalidArgumentError = _InvalidArgumentError;
  128. // Annotate the CommonJS export names for ESM import in node:
  129. 0 && (module.exports = {
  130. Errorf,
  131. InvalidArgumentError,
  132. arrayToString,
  133. format,
  134. valueToString
  135. });