UNPKG

ts-time-utils

Version:

A comprehensive TypeScript utility library for time, dates, durations, and calendar operations with full tree-shaking support

73 lines 3.21 kB
import type { DateInput, SerializationOptions, DateObject, EpochTimestamp } from './types.js'; /** * Safe JSON date serialization and deserialization utilities */ /** * Safely serialize a date to JSON with various format options */ export declare function serializeDate(date: DateInput, options?: SerializationOptions): string | number | DateObject; /** * Safely deserialize a date from various formats */ export declare function deserializeDate(serializedDate: string | number | DateObject, options?: SerializationOptions): Date | null; /** * Create a safe JSON reviver function for automatic date parsing */ export declare function createDateReviver(dateKeys?: string[], options?: SerializationOptions): (key: string, value: any) => any; /** * Create a safe JSON replacer function for automatic date serialization */ export declare function createDateReplacer(dateKeys?: string[], options?: SerializationOptions): (key: string, value: any) => any; /** * Parse ISO string with better error handling */ export declare function parseISOString(isoString: string, useUTC?: boolean): Date | null; /** * Convert date to epoch timestamp with specified precision */ export declare function toEpochTimestamp(date: DateInput, precision?: 'milliseconds' | 'seconds' | 'microseconds'): number; /** * Create date from epoch timestamp with specified precision */ export declare function fromEpochTimestamp(timestamp: number, precision?: 'milliseconds' | 'seconds' | 'microseconds'): Date; /** * Create epoch timestamp with metadata */ export declare function createEpochTimestamp(date: DateInput, precision?: 'milliseconds' | 'seconds' | 'microseconds', timezone?: string): EpochTimestamp; /** * Convert date to safe object representation */ export declare function toDateObject(date: DateInput, includeTimezone?: boolean): DateObject; /** * Create date from object representation */ export declare function fromDateObject(dateObj: DateObject): Date; /** * Check if a string is a valid ISO date string for serialization */ export declare function isValidISODateString(dateString: string): boolean; /** * Check if a number is a valid epoch timestamp */ export declare function isValidEpochTimestamp(timestamp: number, precision?: 'milliseconds' | 'seconds' | 'microseconds'): boolean; /** * Clone a date safely (avoids reference issues) */ export declare function cloneDate(date: DateInput): Date | null; /** * Compare two dates for equality (ignoring milliseconds if specified) */ export declare function datesEqual(date1: DateInput, date2: DateInput, precision?: 'milliseconds' | 'seconds' | 'minutes'): boolean; /** * Get current timestamp in various formats */ export declare function now(format?: 'date' | 'iso' | 'epoch-ms' | 'epoch-s'): Date | string | number; /** * Safely handle JSON parsing with date conversion */ export declare function parseJSONWithDates(jsonString: string, dateKeys?: string[], options?: SerializationOptions): any; /** * Safely handle JSON stringification with date conversion */ export declare function stringifyWithDates(obj: any, dateKeys?: string[], options?: SerializationOptions, space?: string | number): string; //# sourceMappingURL=serialize.d.ts.map