Updated extended moment function return type. Updated tests.

This commit is contained in:
Martynas Žilinskas
2017-06-20 13:53:11 +03:00
parent bda56cc9e7
commit 45d0ca54bb
2 changed files with 41 additions and 30 deletions
+21 -17
View File
@@ -6,16 +6,16 @@
// MartynasZilinskas <https://github.com/MartynasZilinskas>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
import { Moment, unitOfTime } from 'moment';
import * as moment from 'moment';
export class DateRange {
start: Moment;
end: Moment;
start: moment.Moment;
end: moment.Moment;
constructor(range: string | Date[] | Moment[]);
constructor(start: Date | Moment, end: Date | Moment);
constructor(range: string | Date[] | moment.Moment[]);
constructor(start: Date | moment.Moment, end: Date | moment.Moment);
contains(other: DateRange | Moment | Date, options?: { exclusive?: boolean }): boolean;
contains(other: DateRange | moment.Moment | Date, options?: { exclusive?: boolean }): boolean;
overlaps(range: DateRange, options?: { adjacent?: boolean }): boolean;
@@ -25,13 +25,13 @@ export class DateRange {
subtract(other: DateRange): DateRange[];
by(interval: unitOfTime.Diff, options?: { exclusive?: boolean, step?: number }): Iterable<Moment>;
by(interval: moment.unitOfTime.Diff, options?: { exclusive?: boolean, step?: number }): Iterable<moment.Moment>;
byRange(interval: DateRange, options?: { exclusive?: boolean, step?: number }): Iterable<Moment>;
byRange(interval: DateRange, options?: { exclusive?: boolean, step?: number }): Iterable<moment.Moment>;
isSame(other: DateRange): boolean;
diff(unit?: unitOfTime.Diff, rounded?: boolean): number;
diff(unit?: moment.unitOfTime.Diff, rounded?: boolean): number;
toDate(): Date[];
@@ -39,7 +39,7 @@ export class DateRange {
valueOf(): number;
center(): Moment;
center(): moment.Moment;
clone(): DateRange;
@@ -47,17 +47,21 @@ export class DateRange {
adjacent(other: DateRange): boolean;
duration(unit?: unitOfTime.Diff, precise?: boolean): number;
duration(unit?: moment.unitOfTime.Diff, precise?: boolean): number;
reverseBy(interval: unitOfTime.Diff, options?: { exclusive?: boolean, step?: number }): Iterable<Moment>;
reverseBy(interval: moment.unitOfTime.Diff, options?: { exclusive?: boolean, step?: number }): Iterable<moment.Moment>;
reverseByRange(interval: DateRange, options?: { exclusive?: boolean, step?: number }): Iterable<Moment>;
reverseByRange(interval: DateRange, options?: { exclusive?: boolean, step?: number }): Iterable<moment.Moment>;
}
export interface MomentRangeExtends {
range(range: string | Date[] | Moment[]): DateRange;
range(start: Date | Moment, end: Date | Moment): DateRange;
export interface MomentRangeMethods {
range(range: string | Date[] | moment.Moment[]): DateRange;
range(start: Date | moment.Moment, end: Date | moment.Moment): DateRange;
within(range: DateRange): boolean;
}
export function extendMoment<T>(moment: T): T & MomentRangeExtends;
export interface MomentRangeExtends<T> extends MomentRangeMethods {
(...args: any[]): MomentRangeMethods & T;
}
export function extendMoment<T>(moment: T): MomentRangeExtends<T> & T;
+20 -13
View File
@@ -1,7 +1,10 @@
import * as moment from 'moment';
import * as moment from "moment";
import * as momentRange from "moment-range";
const range: momentRange.DateRange = new momentRange.DateRange(new Date(2012, 0, 15), new Date(2012, 4, 23));
const extendedMoment = momentRange.extendMoment(moment);
const range2: momentRange.DateRange = new momentRange.DateRange(moment("2011-04-15", "YYYY-MM-DD"), moment("2011-11-27", "YYYY-MM-DD"));
const range3: momentRange.DateRange = new momentRange.DateRange([moment("2011-04-15", "YYYY-MM-DD"), moment("2011-11-27", "YYYY-MM-DD")]);
const range4: momentRange.DateRange = new momentRange.DateRange("2015-01-17T09:50:04+00:00/2015-04-17T08:29:55+00:00");
@@ -11,20 +14,20 @@ const date: moment.Moment = moment('2012-05-15');
const res1: boolean = range.adjacent(range2);
const it0: Iterable<moment.Moment> = range.by('days');
const it1: Iterable<moment.Moment> = range.by('months', {exclusive: true});
const it2: Iterable<moment.Moment> = range.by('years', {exclusive: false, step: 2});
const it1: Iterable<moment.Moment> = range.by('months', { exclusive: true });
const it2: Iterable<moment.Moment> = range.by('years', { exclusive: false, step: 2 });
const it3: Iterable<moment.Moment> = range.byRange(range);
const it4: Iterable<moment.Moment> = range.byRange(range, {exclusive: true});
const it5: Iterable<moment.Moment> = range.byRange(range, {exclusive: false, step: 2});
const it4: Iterable<moment.Moment> = range.byRange(range, { exclusive: true });
const it5: Iterable<moment.Moment> = range.byRange(range, { exclusive: false, step: 2 });
const res2: moment.Moment = range.center();
const res3: momentRange.DateRange = range.clone();
const res4: boolean = range.contains(range);
const res5: boolean = range.contains(range, {exclusive: true});
const res6: boolean = range.contains(range, {exclusive: false});
const res5: boolean = range.contains(range, { exclusive: true });
const res6: boolean = range.contains(range, { exclusive: false });
const res10: number = range.diff('months', true);
const res11: number = range.diff('days');
@@ -41,16 +44,16 @@ const res17: boolean = range.isSame(range2);
const res18: boolean = range.isEqual(range2);
const res20: boolean = range.overlaps(range2);
const res21: boolean = range.overlaps(range2, {adjacent: true});
const res22: boolean = range.overlaps(range2, {adjacent: false});
const res21: boolean = range.overlaps(range2, { adjacent: true });
const res22: boolean = range.overlaps(range2, { adjacent: false });
const it6: Iterable<moment.Moment> = range.reverseBy('days');
const it7: Iterable<moment.Moment> = range.reverseBy('months', {exclusive: true});
const it8: Iterable<moment.Moment> = range.reverseBy('years', {exclusive: false, step: 2});
const it7: Iterable<moment.Moment> = range.reverseBy('months', { exclusive: true });
const it8: Iterable<moment.Moment> = range.reverseBy('years', { exclusive: false, step: 2 });
const it9: Iterable<moment.Moment> = range.reverseByRange(range);
const it10: Iterable<moment.Moment> = range.reverseByRange(range, {exclusive: true});
const it11: Iterable<moment.Moment> = range.reverseByRange(range, {exclusive: false, step: 2});
const it10: Iterable<moment.Moment> = range.reverseByRange(range, { exclusive: true });
const it11: Iterable<moment.Moment> = range.reverseByRange(range, { exclusive: false, step: 2 });
const res23: momentRange.DateRange = range.add(range2);
@@ -64,3 +67,7 @@ const res27: number = range.valueOf();
const res28: moment.Moment = range.start;
const res29: moment.Moment = range.end;
const res30: boolean = extendedMoment.within(range);
const res31: boolean = extendedMoment().within(range);
const res32: momentRange.DateRange = extendedMoment().range(moment("2011-04-15", "YYYY-MM-DD"), moment("2011-11-27", "YYYY-MM-DD"));