d9ced3b63cb68ea21c5c496a9aec290046fd542a84a33ec73bb38dcd39cf7699a1925fcdd252988ed0a546f6a0005cdabbb90b894f1b9a137b2d2aba7e48d3 975 B

12345678910111213141516171819202122232425262728293031
  1. import { isNumber } from '../../../utils/types.mjs';
  2. const timeUnits = [
  3. ["Y", 1e3 * 60 * 60 * 24 * 365],
  4. ["M", 1e3 * 60 * 60 * 24 * 30],
  5. ["D", 1e3 * 60 * 60 * 24],
  6. ["H", 1e3 * 60 * 60],
  7. ["m", 1e3 * 60],
  8. ["s", 1e3],
  9. ["S", 1]
  10. ];
  11. const getTime = (value) => {
  12. return isNumber(value) ? new Date(value).getTime() : value.valueOf();
  13. };
  14. const formatTime = (timestamp, format) => {
  15. let timeLeft = timestamp;
  16. const escapeRegex = /\[([^\]]*)]/g;
  17. const replacedText = timeUnits.reduce((current, [name, unit]) => {
  18. const replaceRegex = new RegExp(`${name}+(?![^\\[\\]]*\\])`, "g");
  19. if (replaceRegex.test(current)) {
  20. const value = Math.floor(timeLeft / unit);
  21. timeLeft -= value * unit;
  22. return current.replace(replaceRegex, (match) => String(value).padStart(match.length, "0"));
  23. }
  24. return current;
  25. }, format);
  26. return replacedText.replace(escapeRegex, "$1");
  27. };
  28. export { formatTime, getTime };
  29. //# sourceMappingURL=utils.mjs.map