{"version":3,"file":"index.cjs","sources":[""],"sourcesContent":["import { _getDateValue } from \"../_dateValue/index.ts\";\nimport type { TDateInput } from \"../_dateValue/index.ts\";\n\ntype TDateDiffUnit = \"millisecond\" | \"second\" | \"minute\" | \"hour\" | \"day\" | \"week\";\n\nexport type TGetDateDiffArgs = Parameters<typeof getDateDiff>;\n\nexport type TGetDateDiffReturn = ReturnType<typeof getDateDiff>;\n\n/**\n * Gets the signed elapsed-time difference (`left - right`) in a selected unit.\n * @param {TDateInput} left Left date\n * @param {TDateInput} right Right date\n * @param {TDateDiffUnit} [unit=\"millisecond\"] Unit\n * @returns {number} Signed difference, which may be fractional\n * @throws {TypeError} getDateDiff: dates must be valid\n * @throws {TypeError} getDateDiff: unit is invalid\n * @example\n * getDateDiff(\"2024-01-03\", \"2024-01-01\", \"day\"); // 2\n * @example\n * // Calculate the number of hours remaining before a deadline\n * const hoursRemaining = getDateDiff(deadline, new Date(), \"hour\");\n */\nexport const getDateDiff = (\n  left: TDateInput,\n  right: TDateInput,\n  unit: TDateDiffUnit = \"millisecond\"\n): number => {\n  const multipliers: Record<TDateDiffUnit, number> = {\n    millisecond: 1,\n    second: 1_000,\n    minute: 60_000,\n    hour: 3_600_000,\n    day: 86_400_000,\n    week: 604_800_000,\n  };\n  if (!Object.prototype.hasOwnProperty.call(multipliers, unit)) {\n    throw new TypeError(`getDateDiff: unit must be one of: ${Object.keys(multipliers).join(\", \")}`);\n  }\n  const leftDate = _getDateValue(left, getDateDiff.name);\n  const rightDate = _getDateValue(right, getDateDiff.name);\n  return (leftDate.getTime() - rightDate.getTime()) / multipliers[unit];\n};\n"],"names":["getDateDiff","left","right","unit","multipliers","millisecond","second","minute","hour","day","week","Object","prototype","hasOwnProperty","call","TypeError","keys","join","leftDate","_getDateValue","name","rightDate","getTime"],"mappings":"sGAuBO,MAAMA,YAAc,CACzBC,KACAC,MACAC,KAAsB,iBAEtB,MAAMC,YAA6C,CACjDC,YAAa,EACbC,OAAQ,MACRC,OAAQ,OACRC,KAAM,UACNC,IAAK,WACLC,KAAM,aAER,IAAKC,OAAOC,UAAUC,eAAeC,KAAKV,YAAaD,MACrD,MAAM,IAAIY,UAAU,qCAAqCJ,OAAOK,KAAKZ,aAAaa,KAAK,SAEzF,MAAMC,SAAWC,MAAAA,cAAclB,KAAMD,YAAYoB,MACjD,MAAMC,UAAYF,MAAAA,cAAcjB,MAAOF,YAAYoB,MACnD,OAAQF,SAASI,UAAYD,UAAUC,WAAalB,YAAYD"}