{"version":3,"file":"format.cjs","names":[],"sources":["../../src/date/format.ts"],"sourcesContent":["/**\n * Formats a date according to the given format string.\n *\n * Supported format tokens:\n * - YYYY: 4-digit year\n * - MM: 2-digit month (01-12)\n * - DD: 2-digit day (01-31)\n * - HH: 2-digit hour (00-23)\n * - mm: 2-digit minute (00-59)\n * - ss: 2-digit second (00-59)\n * - SSS: 3-digit millisecond (000-999)\n *\n * @param date - The date to format\n * @param formatStr - The format string (default: 'YYYY-MM-DD HH:mm:ss')\n * @returns The formatted date string\n *\n * @example\n * format(new Date('2024-01-15T14:30:45.123Z')) // => '2024-01-15 14:30:45'\n * format(new Date('2024-01-15'), 'YYYY/MM/DD') // => '2024/01/15'\n * format(new Date('2024-01-15T14:30:45.123Z'), 'DD-MM-YYYY') // => '15-01-2024'\n */\nexport function format(date: Date, formatStr: string = 'YYYY-MM-DD HH:mm:ss'): string {\n  if (!(date instanceof Date) || isNaN(date.getTime())) {\n    return '';\n  }\n\n  const pad = (num: number, len: number = 2): string => {\n    return String(num).padStart(len, '0');\n  };\n\n  const year = date.getFullYear();\n  const month = date.getMonth() + 1;\n  const day = date.getDate();\n  const hour = date.getHours();\n  const minute = date.getMinutes();\n  const second = date.getSeconds();\n  const millisecond = date.getMilliseconds();\n\n  const tokens: Record<string, string> = {\n    YYYY: String(year),\n    MM: pad(month),\n    DD: pad(day),\n    HH: pad(hour),\n    mm: pad(minute),\n    ss: pad(second),\n    SSS: pad(millisecond, 3),\n  };\n\n  let result = formatStr;\n  for (const [token, value] of Object.entries(tokens)) {\n    result = result.replace(new RegExp(token, 'g'), value);\n  }\n\n  return result;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAqBA,SAAgB,OAAO,MAAY,YAAoB,uBAA+B;CACpF,IAAI,EAAE,gBAAgB,SAAS,MAAM,KAAK,QAAQ,CAAC,GACjD,OAAO;CAGT,MAAM,OAAO,KAAa,MAAc,MAAc;EACpD,OAAO,OAAO,GAAG,CAAC,CAAC,SAAS,KAAK,GAAG;CACtC;CAEA,MAAM,OAAO,KAAK,YAAY;CAC9B,MAAM,QAAQ,KAAK,SAAS,IAAI;CAChC,MAAM,MAAM,KAAK,QAAQ;CACzB,MAAM,OAAO,KAAK,SAAS;CAC3B,MAAM,SAAS,KAAK,WAAW;CAC/B,MAAM,SAAS,KAAK,WAAW;CAC/B,MAAM,cAAc,KAAK,gBAAgB;CAEzC,MAAM,SAAiC;EACrC,MAAM,OAAO,IAAI;EACjB,IAAI,IAAI,KAAK;EACb,IAAI,IAAI,GAAG;EACX,IAAI,IAAI,IAAI;EACZ,IAAI,IAAI,MAAM;EACd,IAAI,IAAI,MAAM;EACd,KAAK,IAAI,aAAa,CAAC;CACzB;CAEA,IAAI,SAAS;CACb,KAAK,MAAM,CAAC,OAAO,UAAU,OAAO,QAAQ,MAAM,GAChD,SAAS,OAAO,QAAQ,IAAI,OAAO,OAAO,GAAG,GAAG,KAAK;CAGvD,OAAO;AACT"}