From 8169c6dbfe6ddfc76e695b18bf11b3b82cb56630 Mon Sep 17 00:00:00 2001 From: Alexander T Date: Wed, 13 Nov 2019 00:16:54 +0200 Subject: [PATCH] moment-range: Provides its own types (#39468) * moment-range: Provides its own types * add moment-range as dependency to react-daterange-picker * fix moment-range types in react-daterange-picker --- notNeededPackages.json | 6 ++ types/moment-range/index.d.ts | 69 -------------------- types/moment-range/moment-range-tests.ts | 79 ----------------------- types/moment-range/package.json | 6 -- types/moment-range/tsconfig.json | 23 ------- types/moment-range/tslint.json | 1 - types/react-daterange-picker/index.d.ts | 4 +- types/react-daterange-picker/package.json | 3 +- 8 files changed, 10 insertions(+), 181 deletions(-) delete mode 100644 types/moment-range/index.d.ts delete mode 100644 types/moment-range/moment-range-tests.ts delete mode 100644 types/moment-range/package.json delete mode 100644 types/moment-range/tsconfig.json delete mode 100644 types/moment-range/tslint.json diff --git a/notNeededPackages.json b/notNeededPackages.json index 67eb610faa..2f1ed3f9d0 100644 --- a/notNeededPackages.json +++ b/notNeededPackages.json @@ -2694,6 +2694,12 @@ "sourceRepoURL": "https://github.com/moment/moment", "asOfVersion": "2.13.0" }, + { + "libraryName": "moment-range", + "typingsPackageName": "moment-range", + "sourceRepoURL": "https://github.com/rotaready/moment-range", + "asOfVersion": "4.0.0" + }, { "libraryName": "mongodb-memory-server", "typingsPackageName": "mongodb-memory-server", diff --git a/types/moment-range/index.d.ts b/types/moment-range/index.d.ts deleted file mode 100644 index e230550ace..0000000000 --- a/types/moment-range/index.d.ts +++ /dev/null @@ -1,69 +0,0 @@ -// Type definitions for Moment-range.js 3.1 -// Project: https://github.com/rotaready/moment-range -// Definitions by: Bart van den Burg -// Wilgert Velinga -// Juan Francisco Adame -// MartynasZilinskas -// Che Coxshall -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -import moment = require('moment'); - -export class DateRange { - start: moment.Moment; - end: moment.Moment; - - constructor(range: string | Date[] | moment.Moment[]); - constructor(start: Date | moment.Moment, end: Date | moment.Moment); - - contains(other: DateRange | moment.Moment | Date, options?: { exclusive?: boolean }): boolean; - - overlaps(range: DateRange, options?: { adjacent?: boolean }): boolean; - - intersect(other: DateRange): DateRange; - - add(other: DateRange, options?: { adjacent?: boolean }): DateRange; - - subtract(other: DateRange): DateRange[]; - - by(interval: moment.unitOfTime.Diff, options?: { exclusive?: boolean, step?: number }): Iterable; - - byRange(interval: DateRange, options?: { exclusive?: boolean, step?: number }): Iterable; - - isSame(other: DateRange): boolean; - - diff(unit?: moment.unitOfTime.Diff, rounded?: boolean): number; - - toDate(): Date[]; - - toString(): string; - - valueOf(): number; - - center(): moment.Moment; - - clone(): DateRange; - - isEqual(other: DateRange): boolean; - - adjacent(other: DateRange): boolean; - - duration(unit?: moment.unitOfTime.Diff, precise?: boolean): number; - - reverseBy(interval: moment.unitOfTime.Diff, options?: { exclusive?: boolean, step?: number }): Iterable; - - reverseByRange(interval: DateRange, options?: { exclusive?: boolean, step?: number }): Iterable; -} - -export interface MomentRangeMethods { - range(range: string | Date[] | moment.Moment[]): DateRange; - range(start: Date | moment.Moment, end: Date | moment.Moment): DateRange; - isRange(range: any): range is DateRange; - within(range: DateRange): boolean; -} - -export interface MomentRangeExtends extends MomentRangeMethods { - (...args: any[]): MomentRangeMethods & moment.Moment; -} - -export function extendMoment(momentInstance: moment.Moment | typeof moment): MomentRangeExtends & moment.Moment; diff --git a/types/moment-range/moment-range-tests.ts b/types/moment-range/moment-range-tests.ts deleted file mode 100644 index cbd55ef183..0000000000 --- a/types/moment-range/moment-range-tests.ts +++ /dev/null @@ -1,79 +0,0 @@ -import moment = require("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); - -// Moment methods test -extendedMoment.add(); -extendedMoment().add(); - -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"); - -const date: moment.Moment = moment('2012-05-15'); - -const res1: boolean = range.adjacent(range2); - -const it0: Iterable = range.by('days'); -const it1: Iterable = range.by('months', { exclusive: true }); -const it2: Iterable = range.by('years', { exclusive: false, step: 2 }); - -const it3: Iterable = range.byRange(range); -const it4: Iterable = range.byRange(range, { exclusive: true }); -const it5: Iterable = 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 res10: number = range.diff('months', true); -const res11: number = range.diff('days'); -const res12: number = range.diff(); - -const res13: number = range.duration('months', true); -const res14: number = range.duration('days'); -const res15: number = range.duration(); - -const res16: momentRange.DateRange = range.intersect(range2); - -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 it6: Iterable = range.reverseBy('days'); -const it7: Iterable = range.reverseBy('months', { exclusive: true }); -const it8: Iterable = range.reverseBy('years', { exclusive: false, step: 2 }); - -const it9: Iterable = range.reverseByRange(range); -const it10: Iterable = range.reverseByRange(range, { exclusive: true }); -const it11: Iterable = range.reverseByRange(range, { exclusive: false, step: 2 }); - -const res23: momentRange.DateRange = range.add(range2); -const res24: momentRange.DateRange = range.add(range2, {adjacent: true}); -const res25: momentRange.DateRange = range.add(range2, {adjacent: false}); - -const res26: momentRange.DateRange[] = range.subtract(range2); - -const res27: Date[] = range.toDate(); - -const res28: string = range.toString(); - -const res29: number = range.valueOf(); - -const res30: moment.Moment = range.start; -const res31: moment.Moment = range.end; - -const res32: boolean = extendedMoment.within(range); -const res33: boolean = extendedMoment().within(range); -const res34: momentRange.DateRange = extendedMoment().range(moment("2011-04-15", "YYYY-MM-DD"), moment("2011-11-27", "YYYY-MM-DD")); diff --git a/types/moment-range/package.json b/types/moment-range/package.json deleted file mode 100644 index ac2bb42bad..0000000000 --- a/types/moment-range/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "private": true, - "dependencies": { - "moment": "^2.18.1" - } -} diff --git a/types/moment-range/tsconfig.json b/types/moment-range/tsconfig.json deleted file mode 100644 index 1da3b569e0..0000000000 --- a/types/moment-range/tsconfig.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "compilerOptions": { - "module": "commonjs", - "lib": [ - "es6" - ], - "noImplicitAny": true, - "noImplicitThis": true, - "strictNullChecks": false, - "strictFunctionTypes": true, - "baseUrl": "../", - "typeRoots": [ - "../" - ], - "types": [], - "noEmit": true, - "forceConsistentCasingInFileNames": true - }, - "files": [ - "index.d.ts", - "moment-range-tests.ts" - ] -} \ No newline at end of file diff --git a/types/moment-range/tslint.json b/types/moment-range/tslint.json deleted file mode 100644 index 2750cc0197..0000000000 --- a/types/moment-range/tslint.json +++ /dev/null @@ -1 +0,0 @@ -{ "extends": "dtslint/dt.json" } \ No newline at end of file diff --git a/types/react-daterange-picker/index.d.ts b/types/react-daterange-picker/index.d.ts index 7d4825b807..1705c02e0a 100644 --- a/types/react-daterange-picker/index.d.ts +++ b/types/react-daterange-picker/index.d.ts @@ -34,14 +34,14 @@ export interface Props extends React.Props { onHighlightDate?(date: Date): void; onHighlightRange?(date: Date): void; onSelect?(value: OnSelectCallbackParam): void; - onSelectStart?(value: momentRange.MomentRangeExtends): void; + onSelectStart?(value: momentRange.MomentRange & typeof moment): void; paginationArrowComponent?: React.ComponentClass | React.SFC; selectedLabel?: string; selectionType?: 'single' | 'range'; singleDateRange?: boolean; showLegend?: boolean; stateDefinitions?: StateDefinitions; - value?: momentRange.MomentRangeExtends | momentRange.DateRange | moment.Moment; + value?: (momentRange.MomentRange & typeof moment) | momentRange.DateRange | moment.Moment; } export interface DateState { diff --git a/types/react-daterange-picker/package.json b/types/react-daterange-picker/package.json index ac2bb42bad..2b2c8ec5b5 100644 --- a/types/react-daterange-picker/package.json +++ b/types/react-daterange-picker/package.json @@ -1,6 +1,7 @@ { "private": true, "dependencies": { - "moment": "^2.18.1" + "moment": "^2.18.1", + "moment-range": "^4.0.0" } }