tell-me-when
Version:
human relative date and time parser
255 lines • 10.3 kB
TypeScript
import { AddFn, DateFn } from './util/DateFn';
import { ParseNode } from './util/ParseNode';
import { ParseRootNode } from './util/ParseRootNode';
export declare const space: import("./util/GrammarNode").TokenNode;
export declare class FullYearNode extends ParseNode {
wrapped: ParseNode;
constructor(wrapped: ParseNode);
year(input: string): number;
dateFns(input: string): DateFn[];
}
export declare class TwoDigitYearNode extends ParseNode {
wrapped: ParseNode;
constructor(wrapped: ParseNode);
year(input: string): number;
dateFns(input: string): DateFn[];
}
export declare class MonthNumNode extends ParseNode {
wrapped: ParseNode;
constructor(wrapped: ParseNode);
month(input: string): number;
dateFns(input: string): DateFn[];
}
export declare class MonthNameNode extends ParseNode {
static months: {
jan: number;
feb: number;
mar: number;
apr: number;
may: number;
jun: number;
jul: number;
aug: number;
sep: number;
oct: number;
nov: number;
dec: number;
};
month(input: string): number;
dateFns(input: string): DateFn[];
}
export declare class RelativeMonthNameNode extends ParseNode {
dateFns(input: string): DateFn[];
}
export declare const RelativeMonthName: import("./util/GrammarNode").ParseAsNode;
export declare class DayOfMonthNumNode extends ParseNode {
wrapped: ParseNode;
constructor(wrapped: ParseNode);
dayOfMonth(input: string): number;
}
export declare class NthDayOfMonthNode extends ParseNode {
wrapped: ParseNode;
constructor(wrapped: ParseNode);
dayOfMonth(input: string): 1 | 2 | 7 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | undefined;
}
type RelativeIntervalType = 'Second' | 'Minute' | 'Day' | 'Hour' | 'Week' | 'Month' | 'Year';
export declare abstract class RelativeIntervalNode extends ParseNode {
abstract get intervalName(): RelativeIntervalType;
dateFns(): DateFn[];
}
export declare class RelativeSecondNode extends RelativeIntervalNode {
get intervalName(): 'Second';
}
export declare class RelativeMinuteNode extends RelativeIntervalNode {
get intervalName(): 'Minute';
}
export declare class RelativeHourNode extends RelativeIntervalNode {
get intervalName(): 'Hour';
}
export declare class RelativeWeekNode extends RelativeIntervalNode {
get intervalName(): 'Week';
}
export declare class RelativeMonthNode extends RelativeIntervalNode {
get intervalName(): 'Month';
}
export declare class RelativeYearNode extends RelativeIntervalNode {
get intervalName(): 'Year';
}
export declare const RelativeSecond: import("./util/GrammarNode").ParseAsNode;
export declare const RelativeMinute: import("./util/GrammarNode").ParseAsNode;
export declare const RelativeHour: import("./util/GrammarNode").ParseAsNode;
export declare const RelativeWeek: import("./util/GrammarNode").ParseAsNode;
export declare const RelativeMonth: import("./util/GrammarNode").ParseAsNode;
export declare const RelativeYear: import("./util/GrammarNode").ParseAsNode;
export declare class DateNode extends ParseNode {
yearFns(input: string): DateFn[] | undefined;
monthFns(input: string): DateFn[] | undefined;
relativeMonthFns(input: string): DateFn[] | undefined;
day(input: string): number | undefined;
dateFns(input: string): DateFn[];
}
export declare class HoursNode extends ParseNode {
hours(input: string): number;
}
export declare class MinutesNode extends ParseNode {
minutes(input: string): number;
}
export declare class SecondsNode extends ParseNode {
seconds(input: string): number;
}
export declare class MillisecondsNode extends ParseNode {
milliseconds(input: string): number;
}
export declare enum AmPmValue {
AM = 0,
PM = 1
}
export declare class AmPmNode extends ParseNode {
amPm(input: string): AmPmValue;
}
export declare class TimeNode extends ParseNode {
hours(input: string): number | undefined;
minutes(input: string): number | undefined;
seconds(input: string): number | undefined;
milliseconds(input: string): number | undefined;
amPm(input: string): AmPmValue | undefined;
dateFns(input: string): DateFn[];
}
export declare class NowNode extends ParseNode {
dateFns(): DateFn[];
}
export declare class QuantityNumNode extends ParseNode {
quantity(input: string): number;
}
export declare const QuantityNum: import("./util/GrammarNode").ParseAsNode;
export declare class QuantityWordNode extends ParseNode {
static quantities: {
zero: number;
an: number;
a: number;
one: number;
two: number;
three: number;
four: number;
five: number;
six: number;
seven: number;
eight: number;
nine: number;
ten: number;
eleven: number;
twelve: number;
thirteen: number;
fourteen: number;
fifteen: number;
sixteen: number;
seventeen: number;
eighteen: number;
nineteen: number;
twenty: number;
};
quantity(input: string): number;
}
export declare const QuantityWord: import("./util/GrammarNode").ParseAsNode;
export declare class QuantityNode extends ParseNode {
quantity(input: string): number | undefined;
}
export declare const Quantity: import("./util/GrammarNode").ParseAsNode;
type DateTimeUnit = 'years' | 'months' | 'weeks' | 'days' | 'hours' | 'minutes' | 'seconds' | 'milliseconds';
export declare class DateTimeUnitNode extends ParseNode {
unit(input: string): DateTimeUnit;
dateFnName(input: string): DateFn[0];
}
export declare const DateTimeUnit: import("./util/GrammarNode").ParseAsNode;
export declare class DateTimeIntervalPartNode extends ParseNode {
dateFns(input: string): AddFn[];
}
export declare const DateTimeIntervalPart: import("./util/GrammarNode").ParseAsNode;
export declare class DateTimeIntervalNode extends ParseNode {
dateFns(input: string): AddFn[];
}
export declare class DateTimeOffsetNode extends ParseNode {
dateFns(input: string): DateFn[];
}
export declare const BeforeNow: import("./util/GrammarNode").GroupNode;
export declare const AfterNow: import("./util/GrammarNode").GroupNode;
export declare const DateTimeOffset: import("./util/GrammarNode").ParseAsNode;
export declare class RangeEndDateTimeOffsetNode extends DateTimeOffsetNode {
dateFns(input: string): DateFn[];
}
export declare const RangeEndDateTimeOffset: import("./util/GrammarNode").ParseAsNode;
export declare class RelativeDayNode extends ParseNode {
dateFns(input: string): DateFn[];
}
export declare const RelativeDay: import("./util/GrammarNode").ParseAsNode;
export declare class RangeEndRelativeDayNode extends RelativeDayNode {
dateFns(input: string): DateFn[];
}
export declare const RangeEndRelativeDay: import("./util/GrammarNode").ParseAsNode;
export declare class DayOfWeekNode extends ParseNode {
dayOfWeek(input: string): number;
dateFns(input: string): DateFn[];
}
export declare const DayOfWeek: import("./util/GrammarNode").ParseAsNode;
export declare class RelativeDayOfWeekNode extends ParseNode {
dateFns(input: string): DateFn[];
}
export declare const RelativeDayOfWeek: import("./util/GrammarNode").ParseAsNode;
export declare abstract class RangeEndRelativeIntervalNode extends RelativeIntervalNode {
dateFns(): DateFn[];
}
export declare class RangeEndRelativeSecondNode extends RangeEndRelativeIntervalNode {
get intervalName(): 'Second';
}
export declare class RangeEndRelativeMinuteNode extends RangeEndRelativeIntervalNode {
get intervalName(): 'Minute';
}
export declare class RangeEndRelativeHourNode extends RangeEndRelativeIntervalNode {
get intervalName(): 'Hour';
}
export declare class RangeEndRelativeWeekNode extends RangeEndRelativeIntervalNode {
get intervalName(): 'Week';
}
export declare class RangeEndRelativeMonthNode extends RangeEndRelativeIntervalNode {
get intervalName(): 'Month';
}
export declare class RangeEndRelativeYearNode extends RangeEndRelativeIntervalNode {
get intervalName(): 'Year';
}
export declare const RangeEndRelativeInterval: (intervalName: Exclude<RelativeIntervalType, 'Day'>) => import("./util/GrammarNode").ParseAsNode;
export declare const RangeEndRelativeSecond: import("./util/GrammarNode").ParseAsNode;
export declare const RangeEndRelativeMinute: import("./util/GrammarNode").ParseAsNode;
export declare const RangeEndRelativeHour: import("./util/GrammarNode").ParseAsNode;
export declare const RangeEndRelativeWeek: import("./util/GrammarNode").ParseAsNode;
export declare const RangeEndRelativeMonth: import("./util/GrammarNode").ParseAsNode;
export declare const RangeEndRelativeYear: import("./util/GrammarNode").ParseAsNode;
export declare class DateTimeOffsetIntervalNode extends ParseNode {
dateFns(input: string): DateFn[];
}
export declare class RangeEndDateTimeOffsetIntervalNode extends DateTimeOffsetIntervalNode {
dateFns(input: string): DateFn[];
}
export declare const DateTimeOffsetIntervalBase: import("./util/GrammarNode").GroupNode;
export declare const DateTimeOffsetInterval: import("./util/GrammarNode").ParseAsNode;
export declare const RangeEndDateTimeOffsetInterval: import("./util/GrammarNode").ParseAsNode;
export declare class DateTimeNode extends ParseNode {
date(input: string): DateFn[] | undefined;
time(input: string): DateFn[] | undefined;
dateFns(input: string): DateFn[];
}
export declare const DateTime: import("./util/GrammarNode").ParseAsNode;
export declare const RangeEndDateTime: import("./util/GrammarNode").ParseAsNode;
export declare class RangeNode extends ParseNode {
dateFns(input: string): DateFn[];
}
export declare const Range: import("./util/GrammarNode").ParseAsNode;
export declare class RootNode extends ParseRootNode {
dateFns(input: string): DateFn[];
}
export declare const Root: import("./util/GrammarNode").ParseAsNode;
export declare function parse(input: string): DateFn[];
export declare function tellMeWhen(when: string, options?: {
now?: Date;
}): Date | [Date, Date];
export {};
//# sourceMappingURL=en-US.d.ts.map