From 63dcb399668c008d9b45acbe4ec54eb1754643f9 Mon Sep 17 00:00:00 2001 From: Bart van den Burg Date: Mon, 3 Aug 2015 10:33:52 +0200 Subject: [PATCH] definitions for moment-range --- moment-range/moment-range-tests.ts | 42 +++++++++++++++++++++ moment-range/moment-range.d.ts | 59 ++++++++++++++++++++++++++++++ 2 files changed, 101 insertions(+) create mode 100644 moment-range/moment-range-tests.ts create mode 100644 moment-range/moment-range.d.ts diff --git a/moment-range/moment-range-tests.ts b/moment-range/moment-range-tests.ts new file mode 100644 index 000000000..3c879661c --- /dev/null +++ b/moment-range/moment-range-tests.ts @@ -0,0 +1,42 @@ +var range: moment.Range = moment.range(new Date(2012, 0, 15), new Date(2012, 4, 23)); +var range2: moment.Range = moment.range(moment("2011-04-15", "YYYY-MM-DD"), moment("2011-11-27", "YYYY-MM-DD")); +var range3: moment.Range = moment.range([moment("2011-04-15", "YYYY-MM-DD"), moment("2011-11-27", "YYYY-MM-DD")]); +var range4: moment.Range = moment.range("2015-01-17T09:50:04+00:00/2015-04-17T08:29:55+00:00"); + +var date: moment.Moment = moment(2012, 4, 15); + +var res1: boolean = range.contains(date); +var res2: boolean = range.contains(date, false); +var res3: boolean = range.contains(date, true); + +var res4: boolean = date.within(range); + +var res5: boolean = range.overlaps(range2); + +var res6: moment.Range = range.intersect(range2); + +var res7: moment.Range = range.add(range2); + +var res8: Array = range.subtract(range2); + +range.by('days', (moment: moment.Moment) => { }); +range.by(range2, (moment: moment.Moment) => { }); +range.by('d', (moment: moment.Moment) => { }, true); + +var res9: boolean = range.isSame(range2); + +var res10: number = range.diff('months'); +var res11: number = range.diff('days'); +var res12: number = range.diff(); + +var res13: Date = range.toDate(); +var res14: string = range.toString(); + +var res15: number = range.valueOf(); + +var res16: number = range.center(); + +var res17: moment.Range = range.clone(); + +var res18: moment.Moment = range.start; +var res19: moment.Moment = range.end; diff --git a/moment-range/moment-range.d.ts b/moment-range/moment-range.d.ts new file mode 100644 index 000000000..63771f436 --- /dev/null +++ b/moment-range/moment-range.d.ts @@ -0,0 +1,59 @@ +// Type definitions for Moment.js 2.0.3 +// Project: https://github.com/gf3/moment-range +// Definitions by: Bart van den Burg , Wilgert Velinga +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +declare module moment { + + interface Moment { + + within (x: Range): boolean; + + } + + interface MomentStatic { + + range(range: string): Range; + range(range: Date[]): Range; + range(range: Moment[]): Range; + range(start: Date, end: Date): Range; + range(start: Moment, end: Moment): Range; + + } + + interface Range { + start: Moment; + end: Moment; + + contains (other: Date, exclusive = false): boolean; + contains (other: Moment, exclusive = false): boolean; + + overlaps (range: Range): boolean; + + intersect (other: Range): Range; + + add (other: Range): Range; + + subtract (other: Range): Range[]; + + by (range: string, hollaback: (current: Moment) => void, exclusive = false); + by (range: Range, hollaback: (current: Moment) => void, exclusive = false); + + isSame (other: Range): boolean; + + diff (unit?: string): number; + + toDate (): Date; + + toString (): string; + + valueOf (): number; + + center (): number; + + clone (): Range; + } + +} \ No newline at end of file