cronosjs-extended
Version:
A cron based task scheduler for node and the browser, with extended syntax and timezone support.
93 lines (92 loc) • 2.75 kB
TypeScript
export declare enum WarningType {
IncrementLargerThanRange = "IncrementLargerThanRange"
}
export interface Warning {
type: WarningType;
message: string;
}
export declare function _parse(cronstring: string): [
SecondsOrMinutesField,
SecondsOrMinutesField,
HoursField,
DaysField,
MonthsField,
YearsField
];
declare abstract class Field {
protected field: string;
abstract first: number;
abstract last: number;
constructor(field: string);
protected parse(): FieldItem[];
private _items?;
protected get items(): FieldItem[];
get values(): number[];
get warnings(): Warning[];
static getValues(items: FieldItem[], first: number, last: number): number[];
}
declare class FieldItem {
itemString: string;
range?: {
from: number;
to?: number;
};
step: number;
private constructor();
rangeLength(first: number, last: number): number;
values(first: number, last: number): number[];
get any(): boolean;
get single(): boolean;
static parse(item: string, first: number, last: number, allowCyclicRange?: boolean, transformer?: (n: number) => number): FieldItem;
static asterisk: FieldItem;
}
export declare class SecondsOrMinutesField extends Field {
readonly first = 0;
readonly last = 59;
}
export declare class HoursField extends Field {
readonly first = 0;
readonly last = 23;
}
export declare class DaysField {
lastDay: boolean;
lastWeekday: boolean;
daysItems: FieldItem[];
nearestWeekdayItems: FieldItem[];
daysOfWeekItems: FieldItem[];
lastDaysOfWeekItems: FieldItem[];
nthDaysOfWeekItems: {
item: FieldItem;
nth: number;
}[];
constructor(daysOfMonthField: string, daysOfWeekField: string);
get values(): DaysFieldValues;
get warnings(): Warning[];
get allDays(): boolean;
}
export declare class DaysFieldValues {
lastDay: boolean;
lastWeekday: boolean;
days: number[];
nearestWeekday: number[];
daysOfWeek: number[];
lastDaysOfWeek: number[];
nthDaysOfWeek: [number, number][];
static fromField(field: DaysField): DaysFieldValues;
getDays(year: number, month: number): number[];
}
export declare class MonthsField extends Field {
readonly first = 1;
readonly last = 12;
constructor(field: string);
}
export declare class YearsField extends Field {
readonly first = 1970;
readonly last = 2099;
constructor(field: string);
protected parse(): FieldItem[];
get warnings(): Warning[];
nextYear(fromYear: number): number;
previousYear(fromYear: number): number;
}
export {};