@dvcol/common-utils
Version:
Typescript library for common utility functions and constants
65 lines (62 loc) • 2.67 kB
text/typescript
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 };