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
TypeScript
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