UNPKG

ws-dottie

Version:

Your friendly TypeScript companion for Washington State transportation APIs - WSDOT and WSF data with smart caching and React Query integration

84 lines 3.49 kB
/** * @fileoverview Date Utilities for WS-Dottie * * This module provides date conversion utilities specifically designed for * handling WSDOT/WSF API date formats. It includes conversion from .NET * datetime strings to JavaScript Date objects and various date formatting * utilities for API requests and responses. */ /** * Converts a WSDOT .NET timestamp string to a JavaScript Date object * * This function parses WSDOT's .NET datetime format ("/Date(timestamp)/") * and converts it to a JavaScript Date object. It handles both positive * and negative timestamps, as well as timezone offsets. * * The parsing logic: * - Extracts timestamp from position 6 to 6 characters from the end * - Handles timezone separators (+ or - after timestamp) * - Validates the resulting timestamp number * * @param dateString - The WSDOT date string to convert * @returns JavaScript Date object or null if parsing fails * @example * ```typescript * wsdotDateTimeToJSDate("/Date(1757451301100-0700)/") // Returns Date object * wsdotDateTimeToJSDate("/Date(-2208945600000-0800)/") // Returns Date object * wsdotDateTimeToJSDate("invalid") // Returns null * ``` */ export declare const wsdotDateTimeToJSDate: (dateString: string) => Date | null; /** * Converts a JavaScript Date to ISO date stamp (YYYY-MM-DD) * * This function formats a JavaScript Date object as an ISO date string * in YYYY-MM-DD format, which is commonly used in API requests. * * @param date - The JavaScript Date object to convert * @returns ISO date string in YYYY-MM-DD format * @example * ```typescript * jsDateToYyyyMmDd(new Date(2024, 0, 15)) // Returns "2024-01-15" * ``` */ export declare const jsDateToYyyyMmDd: (date: Date) => string; /** * Converts .NET datetime strings to JavaScript Date objects in response data * * This function recursively traverses an object/array structure and converts * any .NET datetime strings (format: "/Date(1234567890123)/") to JavaScript * Date objects, leaving other values unchanged. It uses JSON.parse with a * reviver function to process the data during parsing. * * @param data - The data structure to process * @returns The data with .NET dates converted to JS Date objects * @example * ```typescript * const data = { date: "/Date(1757451301100-0700)/", name: "test" }; * const converted = convertDotNetDates(data); * // Result: { date: Date object, name: "test" } * ``` */ export declare const convertDotNetDates: (data: unknown) => unknown; /** * Date helper functions for runtime evaluation * * These functions return YYYY-MM-DD date strings when called, ensuring they are * evaluated at runtime rather than build time. This is useful for * generating dynamic dates in API requests and sample data. */ export declare const datesHelper: { /** Returns tomorrow's date as YYYY-MM-DD string */ readonly tomorrow: () => string; /** Returns the day after tomorrow's date as YYYY-MM-DD string */ readonly dayAfterTomorrow: () => string; /** Returns today's date as YYYY-MM-DD string */ readonly today: () => string; /** Returns yesterday's date as YYYY-MM-DD string */ readonly yesterday: () => string; /** Returns August 1, 2025 (start of month for sample data) as YYYY-MM-DD string */ readonly startOfMonth: () => string; /** Returns August 31, 2025 (end of month for sample data) as YYYY-MM-DD string */ readonly endOfMonth: () => string; }; //# sourceMappingURL=dateUtils.d.ts.map