index.cjs 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  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) {
  51. return String(input);
  52. }
  53. if (typeof input === "string") {
  54. return `"${input}"`;
  55. }
  56. if (typeof input === "number" || typeof input === "boolean") {
  57. return String(input);
  58. }
  59. if (typeof input === "symbol") {
  60. if (input.description != null) {
  61. return `Symbol("${input.description}")`;
  62. }
  63. return "Symbol";
  64. }
  65. if (isClass(input)) {
  66. return input.name ? input.name : "Class";
  67. }
  68. if (input.constructor && input.constructor.name) {
  69. return BASE_CTOR_NAMES.includes(input.constructor.name) ? input.constructor.name : `${input.constructor.name} (instance)`;
  70. }
  71. if (typeof input === "object" && input.constructor == null) {
  72. return "Object";
  73. }
  74. return String(input);
  75. }
  76. __name(valueToString, "valueToString");
  77. // src/array-to-string.js
  78. var SEPARATOR = ", ";
  79. function arrayToString(input) {
  80. if (Array.isArray(input) && input.length)
  81. return input.map(valueToString).join(SEPARATOR);
  82. return valueToString(input);
  83. }
  84. __name(arrayToString, "arrayToString");
  85. // src/format.js
  86. function format(pattern, ...args) {
  87. if (pattern instanceof Date) {
  88. pattern = pattern.toISOString();
  89. } else if (typeof pattern !== "string") {
  90. pattern = String(pattern);
  91. }
  92. const re = /(%?)(%([sdjvl]))/g;
  93. const argsQueue = [...args];
  94. if (argsQueue.length) {
  95. pattern = pattern.replace(re, function(match, escaped, ptn, flag) {
  96. let arg = argsQueue.shift();
  97. switch (flag) {
  98. case "s":
  99. arg = String(arg);
  100. break;
  101. case "d":
  102. arg = Number(arg);
  103. break;
  104. case "j":
  105. arg = JSON.stringify(arg);
  106. break;
  107. case "v":
  108. arg = valueToString(arg);
  109. break;
  110. case "l":
  111. arg = arrayToString(arg);
  112. break;
  113. }
  114. if (!escaped) return arg;
  115. argsQueue.unshift(arg);
  116. return match;
  117. });
  118. }
  119. if (argsQueue.length) pattern += " " + argsQueue.join(" ");
  120. pattern = pattern.replace(/%{2}/g, "%");
  121. return "" + pattern;
  122. }
  123. __name(format, "format");
  124. // src/errorf.js
  125. var _Errorf = class _Errorf extends Error {
  126. /**
  127. * Constructor.
  128. *
  129. * @param {string} [pattern]
  130. * @param {...*} args
  131. */
  132. constructor(pattern, ...args) {
  133. const message = pattern != null ? format(pattern, ...args) : void 0;
  134. super(message);
  135. }
  136. };
  137. __name(_Errorf, "Errorf");
  138. var Errorf = _Errorf;
  139. // src/invalid-argument-error.js
  140. var _InvalidArgumentError = class _InvalidArgumentError extends Errorf {
  141. };
  142. __name(_InvalidArgumentError, "InvalidArgumentError");
  143. var InvalidArgumentError = _InvalidArgumentError;
  144. // Annotate the CommonJS export names for ESM import in node:
  145. 0 && (module.exports = {
  146. Errorf,
  147. InvalidArgumentError,
  148. arrayToString,
  149. format,
  150. valueToString
  151. });