diff --git a/later/index.d.ts b/later/index.d.ts index d0106f3e12..280348e80e 100644 --- a/later/index.d.ts +++ b/later/index.d.ts @@ -1,21 +1,21 @@ -// Type definitions for LaterJS +// Type definitions for LaterJS 1.2 // Project: http://bunkat.github.io/later/ // Definitions by: Jason D Dryhurst-Smith // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -declare namespace Later { +declare namespace later { - export interface IScheduleData { + interface ScheduleData { /** * A list of recurrence information as a composite schedule. */ - schedules: IRecurrence[]; + schedules: Recurrence[]; /** * A list of exceptions to the composite recurrence information. */ - exceptions: IRecurrence[]; + exceptions: Recurrence[]; /** * A code to identify any errors in the composite schedule and exceptions. @@ -24,7 +24,7 @@ declare namespace Later { error: number; } - export interface IRecurrence { + interface Recurrence { /** Time in seconds from midnight. */ @@ -145,29 +145,29 @@ declare namespace Later { [ timeperiodAndModifierName: string ]: number[]; } - export interface IParseStatic { + interface ParseStatic { /** * Create a recurrence builder for building schedule data. */ - recur(): IRecurrenceBuilder; + recur(): RecurrenceBuilder; /** * Create schedule data by parsing a cron string * * @param {string} [input] - A string value to parse. */ - cron(input?: string): IScheduleData; + cron(input?: string): ScheduleData; /** * Create schedule data by paring a human readable string. * * @param {string} [input] - A string value to parse. */ - text(input?: string): IScheduleData; + text(input?: string): ScheduleData; } - export interface ITimer { + interface Timer { /** * Clear the timer and end execution. @@ -175,7 +175,7 @@ declare namespace Later { clear(): void; } - export interface ISchedule { + interface Schedule { /** * Finds the next valid instance or instances of the current schedule, @@ -226,48 +226,48 @@ declare namespace Later { prevRange(numberOfInst: number, dateFrom?: Date, dateTo?: Date): Date[]; } - export interface IRecurrenceBuilder extends IScheduleData { + interface RecurrenceBuilder extends ScheduleData { /** a time period */ - second(): IRecurrenceBuilder; + second(): RecurrenceBuilder; /** a time period */ - minute(): IRecurrenceBuilder; + minute(): RecurrenceBuilder; /** a time period */ - hour(): IRecurrenceBuilder; + hour(): RecurrenceBuilder; /** a time period */ - time(): IRecurrenceBuilder; + time(): RecurrenceBuilder; /** a time period */ - dayOfWeek(): IRecurrenceBuilder; + dayOfWeek(): RecurrenceBuilder; /** a time period */ - dayOfWeekCount(): IRecurrenceBuilder; + dayOfWeekCount(): RecurrenceBuilder; /** a time period */ - dayOfMonth(): IRecurrenceBuilder; + dayOfMonth(): RecurrenceBuilder; /** a time period */ - dayOfYear(): IRecurrenceBuilder; + dayOfYear(): RecurrenceBuilder; /** a time period */ - weekOfMonth(): IRecurrenceBuilder; + weekOfMonth(): RecurrenceBuilder; /** a time period */ - weekOfYear(): IRecurrenceBuilder; + weekOfYear(): RecurrenceBuilder; /** a time period */ - month(): IRecurrenceBuilder; + month(): RecurrenceBuilder; /** a time period */ - year(): IRecurrenceBuilder; + year(): RecurrenceBuilder; /** a time period */ - fullDate(): IRecurrenceBuilder; + fullDate(): RecurrenceBuilder; /** * Specifies one or more specific vals of a time period information provider. @@ -275,34 +275,21 @@ declare namespace Later { * * @param {number[]} values - A list of values. */ - on(...values: number[]): IRecurrenceBuilder; + on(...values: number[]): RecurrenceBuilder; /** * Specifies one or more specific vals of a time period information provider. * When used to specify a time, a string indicating the 24-hour time may be used. * - * @param {string} value - A string representing your value. + * @param value - A Date or string representing your value. */ - on(value: string): IRecurrenceBuilder; - /** - * Specifies one or more specific vals of a time period information provider. - * When used to specify a time, a string indicating the 24-hour time may be used. - * - * @param {Date} date - A Date representing your value. - */ - on(date: Date): IRecurrenceBuilder; + on(value: Date | string): RecurrenceBuilder; /** * Preceed a time period. * - * @param {number} [value] - A number representing your value. + * @param [value] - A number or string representing your value. */ - every(value?: number): IRecurrenceBuilder; - /** - * Preceed a time period. - * - * @param {string} [value] - A string representing your value. - */ - every(value?: string): IRecurrenceBuilder; + every(value?: number | string): RecurrenceBuilder; /** * Preceed a time period. @@ -310,98 +297,80 @@ declare namespace Later { * @param {number} start - A number representing your start value. * @param {number} end - A number representing your end value. */ - between(start: number, end: number): IRecurrenceBuilder; + between(start: number, end: number): RecurrenceBuilder; /** * Preceed a time period. * * @param {string} start - A string representing your start value. * @param {string} end - A string representing your end value. */ - between(start: string, end: string): IRecurrenceBuilder; + between(start: string, end: string): RecurrenceBuilder; /** * After a time period. * - * @param {number} value - A number representing your value. + * @param value - A number or string representing your value. */ - after(value: number): IRecurrenceBuilder; + after(value: number | string): RecurrenceBuilder; + /** - * After a time period. + * Before a time period. * - * @param {string} value - A string representing your value. + * @param value - A number or string representing your value. */ - after(value: string): IRecurrenceBuilder; + before(value: number | string): RecurrenceBuilder; /** * After a time period. * - * @param {number} value - A number representing your value. + * @param value - A number or string representing your value. */ - before(value: number): IRecurrenceBuilder; - /** - * After a time period. - * - * @param {string} value - A string representing your value. - */ - before(value: string): IRecurrenceBuilder; - - /** - * After a time period. - * - * @param {number} value - A number representing your value. - */ - startingOn(value: number): IRecurrenceBuilder; - /** - * After a time period. - * - * @param {string} value - A string representing your value. - */ - startingOn(value: string): IRecurrenceBuilder; + startingOn(value: number | string): RecurrenceBuilder; /** * Equivalent to .on(min) */ - first(): IRecurrenceBuilder; + first(): RecurrenceBuilder; /** * Equivalent to .on(max) */ - last(): IRecurrenceBuilder; + last(): RecurrenceBuilder; /** * Equivalent to .on(1,7).dayOfWeek() */ - onWeekend(): IRecurrenceBuilder; + onWeekend(): RecurrenceBuilder; /** * Equivalent to .on(2,3,4,5,6).dayOfWeek() */ - onWeekday(): IRecurrenceBuilder; + onWeekday(): RecurrenceBuilder; /** * Add a new schedule value to schedules, composite schedule. */ - and(): IRecurrenceBuilder; + and(): RecurrenceBuilder; /** * Add exceptions. */ - except(): IRecurrenceBuilder; + except(): RecurrenceBuilder; /** * Custom Timeperiod Recurrences. * Using a key as defined by the custom period in any extension to Later.IStatic. */ - customPeriod(key: string): IRecurrenceBuilder; + customPeriod(key: string): RecurrenceBuilder; /** * Customise Recurrences. * Using a key as defined by the custom modifier in any extension to Later.IModifierStatic. */ - customModifier(key: string, values: number): IRecurrenceBuilder; + customModifier(key: string, values: number): RecurrenceBuilder; } - export interface IDateProvider { + interface DateProvider { /** * Set later to use UTC time. @@ -449,7 +418,7 @@ declare namespace Later { * @param {IModifier} constraint: A modifier * @param {ITimePeriod} period: A time period */ - nextRollover(d: Date, val: number, constraint: IModifier, period: ITimePeriod): Date; + nextRollover(d: Date, val: number, constraint: Modifier, period: TimePeriod): Date; /** * Determines if a value will cause a particular constraint to rollover to the @@ -461,10 +430,10 @@ declare namespace Later { * @param {IModifier} constraint: A modifier * @param {ITimePeriod} period: A time period */ - prevRollover(d: Date, val: number, constraint: IModifier, period: ITimePeriod): Date; + prevRollover(d: Date, val: number, constraint: Modifier, period: TimePeriod): Date; } - export interface ITimePeriod { + interface TimePeriod { /** * The name of the time period information provider. @@ -535,46 +504,46 @@ declare namespace Later { prev(date: Date, value: any): Date; } - export interface IModifier extends ITimePeriod { + interface Modifier extends TimePeriod { /** * Creates a new modified constraint. * * @param {ITimePeriod} constraint: The constraint to be modified * @param {number} value: The starting value of the after constraint */ - (constraint: ITimePeriod, value: number): ITimePeriod; + (constraint: TimePeriod, value: number): TimePeriod; } - export interface IModifierStatic { + interface ModifierStatic { /** * After Modifier */ - after: IModifier; + after: Modifier; /** * Before Modifier */ - before: IModifier; + before: Modifier; } - export interface IStatic { + interface Static { /** * Schedule * Generates instances from schedule data. */ - schedule(input: any): ISchedule; + schedule(input: any): Schedule; /** * Parse * For generating schedule data. */ - parse: IParseStatic; + parse: ParseStatic; /** Date Provider */ - date: IDateProvider; + date: DateProvider; /** * Set timeout on window using given recurrence next. @@ -582,63 +551,63 @@ declare namespace Later { * @param {function} callback - A callback called after first instance of recurrence pattern. * @param {Later.IReccurence} - A recurrence instance. */ - setTimeout(callback: () => void, time: IScheduleData): ITimer; + setTimeout(callback: () => void, time: ScheduleData): Timer; /** * Set interval on window using given recurrence * * @param {function} callback - A callback called after each instance of recurrence pattern. * @param {Later.IReccurence} - A recurrence instance. */ - setInterval(callback: () => void, time: IScheduleData): ITimer; + setInterval(callback: () => void, time: ScheduleData): Timer; /** * time period information provider. */ - time: ITimePeriod; + time: TimePeriod; /** * Second time period information provider. */ - second: ITimePeriod; + second: TimePeriod; /** * Minute time period information provider. */ - minute: ITimePeriod; + minute: TimePeriod; /** * Hour time period information provider. */ - hour: ITimePeriod; + hour: TimePeriod; /** * Day time period information provider. */ - day: ITimePeriod; + day: TimePeriod; /** * Day of week time period information provider. */ - dayOfWeek: ITimePeriod; + dayOfWeek: TimePeriod; /** * Day of week in month time period information provider. */ - dayOfWeekCount: ITimePeriod; + dayOfWeekCount: TimePeriod; /** * Day in year time period information provider. */ - dayOfYear: ITimePeriod; + dayOfYear: TimePeriod; /** * Week of mobth time period information provider. */ - weekOfMonth: ITimePeriod; + weekOfMonth: TimePeriod; /** * Week of yearfrom ISO 8601 time period information provider. */ - weekOfYear: ITimePeriod; + weekOfYear: TimePeriod; /** * Month time period information provider. */ - month: ITimePeriod; + month: TimePeriod; /** * Year time period information provider. */ - year: ITimePeriod; + year: TimePeriod; /** * Later Modifiers: @@ -652,7 +621,7 @@ declare namespace Later { * * Be sure to use this interface when dealing with Later.modifier */ - modifier: IModifierStatic + modifier: ModifierStatic; } } @@ -670,4 +639,7 @@ declare namespace Later { * * Be sure to use this interface when dealing with Later. */ -declare var later: Later.IStatic; +declare var later: later.Static; + +export = later; +export as namespace later; diff --git a/later/later-tests.ts b/later/later-tests.ts index d77dbf1d56..6ad634505c 100644 --- a/later/later-tests.ts +++ b/later/later-tests.ts @@ -1,10 +1,12 @@ -namespace LaterTest_DefineSchedule { +import later = require("later"); + +namespace LaterTest_DefineSchedule { // define a new schedule var textSched = later.parse.text('at 10:15am every weekday'); var cronSched = later.parse.cron('0 0/5 14,18 * * ?'); var recurSched = later.parse.recur().last().dayOfMonth(); - var manualSched = { schedules: [ { M: [ 3 ], D: [ 21 ] } ] }; + var manualSched = { schedules: [ { M: [ 3 ], D: [ 21 ] } ] }; // this schedule will fire on the closest weekday to the 15th // every month at 2:00 am except in March @@ -404,8 +406,8 @@ namespace LaterTest_TimePeriods { // 'Mon, 31 Dec 2012 23:59:59 GMT' } - export interface IPartOfDayLater extends Later.IStatic { - partOfDay: Later.ITimePeriod; + export interface IPartOfDayLater extends later.Static { + partOfDay: later.TimePeriod; } export function custom() { diff --git a/later/tslint.json b/later/tslint.json new file mode 100644 index 0000000000..2221e40e4a --- /dev/null +++ b/later/tslint.json @@ -0,0 +1 @@ +{ "extends": "../tslint.json" } \ No newline at end of file