ok-tools
Version:
My personal JS tools and utilities
48 lines (47 loc) • 1.72 kB
TypeScript
export declare type OpeningHour = number;
export interface OpeningHoursInterval {
open: OpeningHour;
close: OpeningHour;
}
export declare type OpeningHoursDay = OpeningHoursInterval[];
export interface OpeningHoursWeek {
1: OpeningHoursDay;
2: OpeningHoursDay;
3: OpeningHoursDay;
4: OpeningHoursDay;
5: OpeningHoursDay;
6: OpeningHoursDay;
7: OpeningHoursDay;
}
export declare enum OpeningHoursStatus {
CLOSED = 0,
OPEN = 1
}
export interface OpeningHoursResult {
currentStatus: OpeningHoursStatus;
nextStatus: OpeningHoursStatus;
nextChangeDay: number | null;
nextChangeTime: OpeningHour;
nextChangeIsToday: boolean;
nextChangeIsTomorrow: boolean;
}
export interface OpeningHoursFormattedRow {
dayFrom: number;
dayTo: number;
hours: string;
isSingleDay: boolean;
isCurrent: boolean;
isOpen: boolean;
}
export declare type OpeningHoursFormatted = OpeningHoursFormattedRow[];
export declare function parseWeek(input: {
[key: number]: string;
}, returnNullIfEmpty?: boolean): OpeningHoursWeek | null;
export declare function parseDay(input: string): OpeningHoursDay;
export declare function parseInterval(input: string): OpeningHoursInterval | null;
export declare function parseHour(input: string): OpeningHour;
export declare function formatHour(input: OpeningHour): string;
export declare function formatInterval(input: OpeningHoursInterval): string;
export declare function formatDay(input: OpeningHoursDay): string;
export declare function formatWeek(input: OpeningHoursWeek, now?: Date | null): OpeningHoursFormatted;
export declare function processHours(hours: OpeningHoursWeek, now?: Date | null): OpeningHoursResult;