UNPKG

@dvcol/common-utils

Version:

Typescript library for common utility functions and constants

65 lines (62 loc) 2.67 kB
import { RecursiveRecord, RecursiveType } from '../models/typescript.model.cjs'; /** * Compute elapsed time between two dates * @param endDate * @param startDate */ declare const elapsedTime: (endDate: Date, startDate?: Date) => number; declare class DateUtils { static clone: (date: Date) => Date; static next(days?: number, date?: Date, coefficient?: number): Date; static previous(days?: number, date?: Date, coefficient?: number): Date; static weeks: { previous: (weeks?: number, date?: Date) => Date; next: (weeks?: number, date?: Date) => Date; }; } declare const toDateObject: <T extends RecursiveRecord<string>>(record?: T) => RecursiveType<T, Date> | undefined; declare const compareDateObject: <T extends RecursiveRecord<Date>>(a?: T, b?: T) => RecursiveType<T, boolean>; declare const shortTime: (date?: Date, locale?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions) => string; declare const DayOfWeek: { readonly Sunday: "Sunday"; readonly Monday: "Monday"; readonly Tuesday: "Tuesday"; readonly Wednesday: "Wednesday"; readonly Thursday: "Thursday"; readonly Friday: "Friday"; readonly Saturday: "Saturday"; }; declare const DayOfWeekToNumber: { readonly Sunday: 0; readonly Monday: 1; readonly Tuesday: 2; readonly Wednesday: 3; readonly Thursday: 4; readonly Friday: 5; readonly Saturday: 6; }; declare const NumberToDayOfWeek: { readonly 0: "Sunday"; readonly 1: "Monday"; readonly 2: "Tuesday"; readonly 3: "Wednesday"; readonly 4: "Thursday"; readonly 5: "Friday"; readonly 6: "Saturday"; }; declare const dayOfTheWeek: (date: Date | string | number) => any; declare const getTodayISOLocal: () => string; type TimeSinceUnit = 'years' | 'months' | 'days' | 'hours' | 'minutes' | 'seconds'; type TimeSinceResult = Record<TimeSinceUnit, number>; declare function timeSince(date: Date | number | string): TimeSinceResult; /** * Format a date to a human-readable string indicating how long ago it was * @param date - The date to format, can be a Date object, timestamp, or ISO string * @param short - If true, returns a shorter format (e.g., "2h" instead of "2 hours") * @param units - Supported units for time difference, in order of preference */ declare function timeAgo(date: Date | number | string, { short, units, }?: { short?: boolean; units?: TimeSinceUnit[]; }): string; export { DateUtils, DayOfWeek, DayOfWeekToNumber, NumberToDayOfWeek, type TimeSinceResult, type TimeSinceUnit, compareDateObject, dayOfTheWeek, elapsedTime, getTodayISOLocal, shortTime, timeAgo, timeSince, toDateObject };