From 6239053494dbf8bc3301930b01dccaeb6189d32a Mon Sep 17 00:00:00 2001 From: Thorr Stevens Date: Fri, 26 Apr 2019 18:16:27 +0200 Subject: [PATCH 1/9] Add new feature addWeekDays --- src/addWeekDays/index.d.ts | 4 ++ src/addWeekDays/index.js | 42 ++++++++++++++++ src/addWeekDays/index.js.flow | 38 ++++++++++++++ src/addWeekDays/test.js | 49 ++++++++++++++++++ src/esm/fp/index.js | 1 + src/esm/index.js | 1 + src/format/index.js.flow | 1 + src/fp/addWeekDays/index.d.ts | 4 ++ src/fp/addWeekDays/index.js | 8 +++ src/fp/addWeekDays/index.js.flow | 44 +++++++++++++++++ src/fp/index.js | 1 + src/fp/index.js.flow | 1 + src/index.js | 1 + src/index.js.flow | 3 ++ typings.d.ts | 85 ++++++++++++++++++++++++++++++++ 15 files changed, 283 insertions(+) create mode 100644 src/addWeekDays/index.d.ts create mode 100644 src/addWeekDays/index.js create mode 100644 src/addWeekDays/index.js.flow create mode 100644 src/addWeekDays/test.js create mode 100644 src/fp/addWeekDays/index.d.ts create mode 100644 src/fp/addWeekDays/index.js create mode 100644 src/fp/addWeekDays/index.js.flow diff --git a/src/addWeekDays/index.d.ts b/src/addWeekDays/index.d.ts new file mode 100644 index 0000000000..37899995db --- /dev/null +++ b/src/addWeekDays/index.d.ts @@ -0,0 +1,4 @@ +// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it. + +import { addWeekDays } from 'date-fns' +export = addWeekDays diff --git a/src/addWeekDays/index.js b/src/addWeekDays/index.js new file mode 100644 index 0000000000..a933808022 --- /dev/null +++ b/src/addWeekDays/index.js @@ -0,0 +1,42 @@ +import toInteger from '../_lib/toInteger/index.js' +import isWeekend from '../isWeekend/index.js' +import toDate from '../toDate/index.js' + +/** + * @name addWeekDays + * @category Day Helpers + * @summary Add the specified number of weekdays (mo - fri) to the given date, ignoring weekends. + * + * @description + * Add the specified number of weekdays (mo - fri) to the given date, ignoring weekends. + * + * @param {Date|Number} date - the date to be changed + * @param {Number} amount - the amount of weekdays to be added + * @returns {Date} the new date with the weekdays added + * @throws {TypeError} 2 arguments required + * + * @example + * // Add 10 weekdays to 1 September 2014: + * var result = addWeekDays(new Date(2014, 8, 1), 10) + * //=> Mon Sep 15 2014 00:00:00 (skipped weekend days) + */ +export default function addWeekDays(dirtyDate, dirtyAmount) { + if (arguments.length < 2) { + throw new TypeError( + '2 arguments required, but only ' + arguments.length + ' present' + ) + } + + var date = toDate(dirtyDate) + var amount = toInteger(dirtyAmount) + + if (isNaN(amount)) return new Date(NaN) + + var numWeekDays = 0 + while (numWeekDays < amount) { + date.setDate(date.getDate() + 1) + if (!isWeekend(date)) numWeekDays++ + } + + return date +} diff --git a/src/addWeekDays/index.js.flow b/src/addWeekDays/index.js.flow new file mode 100644 index 0000000000..3a0eb45a59 --- /dev/null +++ b/src/addWeekDays/index.js.flow @@ -0,0 +1,38 @@ +// @flow +// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it. + +type Interval = { + start: Date | number, + end: Date | number +} + +type Locale = { + formatDistance: Function, + formatRelative: Function, + localize: { + ordinalNumber: Function, + era: Function, + quarter: Function, + month: Function, + day: Function, + dayPeriod: Function + }, + formatLong: Object, + date: Function, + time: Function, + dateTime: Function, + match: { + ordinalNumber: Function, + era: Function, + quarter: Function, + month: Function, + day: Function, + dayPeriod: Function + }, + options?: { + weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6, + firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7 + } +} + +declare module.exports: (date: Date | number, amount: number) => Date diff --git a/src/addWeekDays/test.js b/src/addWeekDays/test.js new file mode 100644 index 0000000000..a2334d617e --- /dev/null +++ b/src/addWeekDays/test.js @@ -0,0 +1,49 @@ +// @flow +/* eslint-env mocha */ + +import assert from 'power-assert' +import addWeekDays from '.' + +describe('addWeekDays', function() { + it('adds the given number of weekdays', function() { + var result = addWeekDays(new Date(2014, 8 /* Sep */, 1), 10) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 15)) + }) + + it('accepts a timestamp', function() { + var result = addWeekDays(new Date(2014, 8 /* Sep */, 1).getTime(), 10) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 15)) + }) + + it('converts a fractional number to an integer', function() { + var result = addWeekDays(new Date(2014, 8 /* Sep */, 1), 10.5) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 15)) + }) + + it('implicitly converts number arguments', function() { + // $ExpectedMistake + var result = addWeekDays(new Date(2014, 8 /* Sep */, 1), '10') + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 15)) + }) + + it('does not mutate the original date', function() { + var date = new Date(2014, 8 /* Sep */, 1) + addWeekDays(date, 11) + assert.deepEqual(date, new Date(2014, 8 /* Sep */, 1)) + }) + + it('returns `Invalid Date` if the given date is invalid', function() { + var result = addWeekDays(new Date(NaN), 10) + assert(result instanceof Date && isNaN(result)) + }) + + it('returns `Invalid Date` if the given amount is NaN', function() { + var result = addWeekDays(new Date(2014, 8 /* Sep */, 1), NaN) + assert(result instanceof Date && isNaN(result)) + }) + + it('throws TypeError exception if passed less than 2 arguments', function() { + assert.throws(addWeekDays.bind(null), TypeError) + assert.throws(addWeekDays.bind(null, 1), TypeError) + }) +}) diff --git a/src/esm/fp/index.js b/src/esm/fp/index.js index 2d6a5016ee..9ea777217e 100644 --- a/src/esm/fp/index.js +++ b/src/esm/fp/index.js @@ -8,6 +8,7 @@ export { default as addMinutes } from './addMinutes/index.js' export { default as addMonths } from './addMonths/index.js' export { default as addQuarters } from './addQuarters/index.js' export { default as addSeconds } from './addSeconds/index.js' +export { default as addWeekDays } from './addWeekDays/index.js' export { default as addWeeks } from './addWeeks/index.js' export { default as addYears } from './addYears/index.js' export { diff --git a/src/esm/index.js b/src/esm/index.js index 4f2c2ed493..ced564cfc7 100644 --- a/src/esm/index.js +++ b/src/esm/index.js @@ -8,6 +8,7 @@ export { default as addMinutes } from './addMinutes/index.js' export { default as addMonths } from './addMonths/index.js' export { default as addQuarters } from './addQuarters/index.js' export { default as addSeconds } from './addSeconds/index.js' +export { default as addWeekDays } from './addWeekDays/index.js' export { default as addWeeks } from './addWeeks/index.js' export { default as addYears } from './addYears/index.js' export { diff --git a/src/format/index.js.flow b/src/format/index.js.flow index 9e600db9b5..6002bb93b0 100644 --- a/src/format/index.js.flow +++ b/src/format/index.js.flow @@ -42,6 +42,7 @@ declare module.exports: ( locale?: Locale, weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6, firstWeekContainsDate?: number, + locale?: Locale, useAdditionalWeekYearTokens?: boolean, useAdditionalDayOfYearTokens?: boolean } diff --git a/src/fp/addWeekDays/index.d.ts b/src/fp/addWeekDays/index.d.ts new file mode 100644 index 0000000000..6b8c80717f --- /dev/null +++ b/src/fp/addWeekDays/index.d.ts @@ -0,0 +1,4 @@ +// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it. + +import { addWeekDays } from 'date-fns/fp' +export = addWeekDays diff --git a/src/fp/addWeekDays/index.js b/src/fp/addWeekDays/index.js new file mode 100644 index 0000000000..6b6a3a55ce --- /dev/null +++ b/src/fp/addWeekDays/index.js @@ -0,0 +1,8 @@ +// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it. + +import fn from '../../addWeekDays/index.js' +import convertToFP from '../_lib/convertToFP/index.js' + +var addWeekDays = convertToFP(fn, 2) + +export default addWeekDays diff --git a/src/fp/addWeekDays/index.js.flow b/src/fp/addWeekDays/index.js.flow new file mode 100644 index 0000000000..03e03ee8c0 --- /dev/null +++ b/src/fp/addWeekDays/index.js.flow @@ -0,0 +1,44 @@ +// @flow +// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it. + +type Interval = { + start: Date | number, + end: Date | number +} + +type Locale = { + formatDistance: Function, + formatRelative: Function, + localize: { + ordinalNumber: Function, + era: Function, + quarter: Function, + month: Function, + day: Function, + dayPeriod: Function + }, + formatLong: Object, + date: Function, + time: Function, + dateTime: Function, + match: { + ordinalNumber: Function, + era: Function, + quarter: Function, + month: Function, + day: Function, + dayPeriod: Function + }, + options?: { + weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6, + firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7 + } +} + +type CurriedFn1 = (a: A) => R + +type CurriedFn2 = ( + a: A +) => CurriedFn1 | ((a: A, b: B) => R) + +declare module.exports: CurriedFn2 diff --git a/src/fp/index.js b/src/fp/index.js index 261e022c14..2330d32b7e 100644 --- a/src/fp/index.js +++ b/src/fp/index.js @@ -11,6 +11,7 @@ module.exports = { addMonths: require('./addMonths/index.js'), addQuarters: require('./addQuarters/index.js'), addSeconds: require('./addSeconds/index.js'), + addWeekDays: require('./addWeekDays/index.js'), addWeeks: require('./addWeeks/index.js'), addYears: require('./addYears/index.js'), areIntervalsOverlapping: require('./areIntervalsOverlapping/index.js'), diff --git a/src/fp/index.js.flow b/src/fp/index.js.flow index 4fd6141bf9..6ca215f449 100644 --- a/src/fp/index.js.flow +++ b/src/fp/index.js.flow @@ -74,6 +74,7 @@ declare module.exports: { addMonths: CurriedFn2, addQuarters: CurriedFn2, addSeconds: CurriedFn2, + addWeekDays: CurriedFn2, addWeeks: CurriedFn2, addYears: CurriedFn2, areIntervalsOverlapping: CurriedFn2, diff --git a/src/index.js b/src/index.js index 2ae1382dae..4e29493391 100644 --- a/src/index.js +++ b/src/index.js @@ -11,6 +11,7 @@ module.exports = { addMonths: require('./addMonths/index.js'), addQuarters: require('./addQuarters/index.js'), addSeconds: require('./addSeconds/index.js'), + addWeekDays: require('./addWeekDays/index.js'), addWeeks: require('./addWeeks/index.js'), addYears: require('./addYears/index.js'), areIntervalsOverlapping: require('./areIntervalsOverlapping/index.js'), diff --git a/src/index.js.flow b/src/index.js.flow index 53f5aaf286..9f99713dd3 100644 --- a/src/index.js.flow +++ b/src/index.js.flow @@ -52,6 +52,8 @@ declare module.exports: { addSeconds: (date: Date | number, amount: number) => Date, + addWeekDays: (date: Date | number, amount: number) => Date, + addWeeks: (date: Date | number, amount: number) => Date, addYears: (date: Date | number, amount: number) => Date, @@ -230,6 +232,7 @@ declare module.exports: { locale?: Locale, weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6, firstWeekContainsDate?: number, + locale?: Locale, useAdditionalWeekYearTokens?: boolean, useAdditionalDayOfYearTokens?: boolean } diff --git a/typings.d.ts b/typings.d.ts index 1318494fe0..c0593cf218 100644 --- a/typings.d.ts +++ b/typings.d.ts @@ -97,6 +97,11 @@ declare module 'date-fns' { function addSeconds(date: Date | number, amount: number): Date namespace addSeconds {} + function addWeekDays(date: Date | number, amount: number): Date + namespace addWeekDays { + + } + function addWeeks(date: Date | number, amount: number): Date namespace addWeeks {} @@ -319,6 +324,7 @@ declare module 'date-fns' { locale?: Locale weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 firstWeekContainsDate?: number + locale?: Locale useAdditionalWeekYearTokens?: boolean useAdditionalDayOfYearTokens?: boolean } @@ -840,6 +846,11 @@ declare module 'date-fns/addSeconds' { export default addSeconds } +declare module 'date-fns/addWeekDays' { + import { addWeekDays } from 'date-fns' + export = addWeekDays +} + declare module 'date-fns/addWeeks' { import { addWeeks } from 'date-fns' export default addWeeks @@ -1620,6 +1631,11 @@ declare module 'date-fns/addSeconds/index' { export default addSeconds } +declare module 'date-fns/addWeekDays/index' { + import { addWeekDays } from 'date-fns' + export = addWeekDays +} + declare module 'date-fns/addWeeks/index' { import { addWeeks } from 'date-fns' export default addWeeks @@ -2400,6 +2416,11 @@ declare module 'date-fns/addSeconds/index.js' { export default addSeconds } +declare module 'date-fns/addWeekDays/index.js' { + import { addWeekDays } from 'date-fns' + export = addWeekDays +} + declare module 'date-fns/addWeeks/index.js' { import { addWeeks } from 'date-fns' export default addWeeks @@ -3167,6 +3188,11 @@ declare module 'date-fns/fp' { const addSeconds: CurriedFn2 namespace addSeconds {} + const addWeekDays: CurriedFn2 + namespace addWeekDays { + + } + const addWeeks: CurriedFn2 namespace addWeeks {} @@ -3803,6 +3829,11 @@ declare module 'date-fns/fp/addSeconds' { export = addSeconds } +declare module 'date-fns/fp/addWeekDays' { + import { addWeekDays } from 'date-fns/fp' + export = addWeekDays +} + declare module 'date-fns/fp/addWeeks' { import { addWeeks } from 'date-fns/fp' export = addWeeks @@ -4703,6 +4734,11 @@ declare module 'date-fns/fp/addSeconds/index' { export = addSeconds } +declare module 'date-fns/fp/addWeekDays/index' { + import { addWeekDays } from 'date-fns/fp' + export = addWeekDays +} + declare module 'date-fns/fp/addWeeks/index' { import { addWeeks } from 'date-fns/fp' export = addWeeks @@ -5603,6 +5639,11 @@ declare module 'date-fns/fp/addSeconds/index.js' { export = addSeconds } +declare module 'date-fns/fp/addWeekDays/index.js' { + import { addWeekDays } from 'date-fns/fp' + export = addWeekDays +} + declare module 'date-fns/fp/addWeeks/index.js' { import { addWeeks } from 'date-fns/fp' export = addWeeks @@ -6490,6 +6531,11 @@ declare module 'date-fns/esm' { function addSeconds(date: Date | number, amount: number): Date namespace addSeconds {} + function addWeekDays(date: Date | number, amount: number): Date + namespace addWeekDays { + + } + function addWeeks(date: Date | number, amount: number): Date namespace addWeeks {} @@ -6712,6 +6758,7 @@ declare module 'date-fns/esm' { locale?: Locale weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 firstWeekContainsDate?: number + locale?: Locale useAdditionalWeekYearTokens?: boolean useAdditionalDayOfYearTokens?: boolean } @@ -7233,6 +7280,11 @@ declare module 'date-fns/esm/addSeconds' { export default addSeconds } +declare module 'date-fns/esm/addWeekDays' { + import { addWeekDays } from 'date-fns/esm' + export default addWeekDays +} + declare module 'date-fns/esm/addWeeks' { import { addWeeks } from 'date-fns/esm' export default addWeeks @@ -8013,6 +8065,11 @@ declare module 'date-fns/esm/addSeconds/index' { export default addSeconds } +declare module 'date-fns/esm/addWeekDays/index' { + import { addWeekDays } from 'date-fns/esm' + export default addWeekDays +} + declare module 'date-fns/esm/addWeeks/index' { import { addWeeks } from 'date-fns/esm' export default addWeeks @@ -8793,6 +8850,11 @@ declare module 'date-fns/esm/addSeconds/index.js' { export default addSeconds } +declare module 'date-fns/esm/addWeekDays/index.js' { + import { addWeekDays } from 'date-fns/esm' + export default addWeekDays +} + declare module 'date-fns/esm/addWeeks/index.js' { import { addWeeks } from 'date-fns/esm' export default addWeeks @@ -9560,6 +9622,11 @@ declare module 'date-fns/esm/fp' { const addSeconds: CurriedFn2 namespace addSeconds {} + const addWeekDays: CurriedFn2 + namespace addWeekDays { + + } + const addWeeks: CurriedFn2 namespace addWeeks {} @@ -10196,6 +10263,11 @@ declare module 'date-fns/esm/fp/addSeconds' { export default addSeconds } +declare module 'date-fns/esm/fp/addWeekDays' { + import { addWeekDays } from 'date-fns/esm/fp' + export default addWeekDays +} + declare module 'date-fns/esm/fp/addWeeks' { import { addWeeks } from 'date-fns/esm/fp' export default addWeeks @@ -11096,6 +11168,11 @@ declare module 'date-fns/esm/fp/addSeconds/index' { export default addSeconds } +declare module 'date-fns/esm/fp/addWeekDays/index' { + import { addWeekDays } from 'date-fns/esm/fp' + export default addWeekDays +} + declare module 'date-fns/esm/fp/addWeeks/index' { import { addWeeks } from 'date-fns/esm/fp' export default addWeeks @@ -11996,6 +12073,11 @@ declare module 'date-fns/esm/fp/addSeconds/index.js' { export default addSeconds } +declare module 'date-fns/esm/fp/addWeekDays/index.js' { + import { addWeekDays } from 'date-fns/esm/fp' + export default addWeekDays +} + declare module 'date-fns/esm/fp/addWeeks/index.js' { import { addWeeks } from 'date-fns/esm/fp' export default addWeeks @@ -14935,6 +15017,8 @@ interface dateFns { addSeconds(date: Date | number, amount: number): Date + addWeekDays(date: Date | number, amount: number): Date + addWeeks(date: Date | number, amount: number): Date addYears(date: Date | number, amount: number): Date @@ -15089,6 +15173,7 @@ interface dateFns { locale?: Locale weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 firstWeekContainsDate?: number + locale?: Locale useAdditionalWeekYearTokens?: boolean useAdditionalDayOfYearTokens?: boolean } From 4b40c83488920a197ac76cf03a341a1960ab6cf5 Mon Sep 17 00:00:00 2001 From: Thorr Stevens Date: Fri, 26 Apr 2019 18:29:27 +0200 Subject: [PATCH 2/9] Update CHANGELOG.md with addWeekDays addition --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a65b1367e..6f6dcd6cf6 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,15 @@ This change log follows the format documented in [Keep a CHANGELOG]. [See v2 Pre-Releases Change Log](https://gist.github.com/kossnocorp/a307a464760b405bb78ef5020a4ab136) for the list of changes made since `v2.0.0-alpha.1`. +### Added + +- New function [addWeekDays](https://github.com/date-fns/date-fns/pull/1154), + similar to addDays but ignoring weekends. + + End date can thus only ever be mon/tue/wed/thu/fri. + + Does not count as businessdays since it doesn't avoid counting on holidays. + ### Fixed - Fix the `toDate` bug occurring when parsing ISO-8601 style dates (but not valid ISO format) From 61e88ff63d1e0f8b963e9b04d7c636b362167b4f Mon Sep 17 00:00:00 2001 From: Thorr Stevens Date: Sun, 9 Jun 2019 20:07:01 +0200 Subject: [PATCH 3/9] Update addWeekdays name to addBusinessDays --- CHANGELOG.md | 2 +- .../index.d.ts | 4 +- src/{addWeekDays => addBusinessDays}/index.js | 6 +- .../index.js.flow | 0 src/{addWeekDays => addBusinessDays}/test.js | 22 ++--- src/esm/fp/index.js | 2 +- src/esm/index.js | 2 +- .../index.d.ts | 4 +- .../{addWeekDays => addBusinessDays}/index.js | 6 +- .../index.js.flow | 0 src/fp/index.js | 2 +- src/fp/index.js.flow | 2 +- src/index.js | 2 +- src/index.js.flow | 2 +- typings.d.ts | 90 +++++++++---------- 15 files changed, 73 insertions(+), 73 deletions(-) rename src/{addWeekDays => addBusinessDays}/index.d.ts (58%) rename src/{addWeekDays => addBusinessDays}/index.js (88%) rename src/{addWeekDays => addBusinessDays}/index.js.flow (100%) rename src/{addWeekDays => addBusinessDays}/test.js (63%) rename src/fp/{addWeekDays => addBusinessDays}/index.d.ts (57%) rename src/fp/{addWeekDays => addBusinessDays}/index.js (55%) rename src/fp/{addWeekDays => addBusinessDays}/index.js.flow (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f6dcd6cf6..a2dc257c69 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ for the list of changes made since `v2.0.0-alpha.1`. ### Added -- New function [addWeekDays](https://github.com/date-fns/date-fns/pull/1154), +- New function [addBusinessDays](https://github.com/date-fns/date-fns/pull/1154), similar to addDays but ignoring weekends. End date can thus only ever be mon/tue/wed/thu/fri. diff --git a/src/addWeekDays/index.d.ts b/src/addBusinessDays/index.d.ts similarity index 58% rename from src/addWeekDays/index.d.ts rename to src/addBusinessDays/index.d.ts index 37899995db..7175811372 100644 --- a/src/addWeekDays/index.d.ts +++ b/src/addBusinessDays/index.d.ts @@ -1,4 +1,4 @@ // This file is generated automatically by `scripts/build/typings.js`. Please, don't change it. -import { addWeekDays } from 'date-fns' -export = addWeekDays +import { addBusinessDays } from 'date-fns' +export = addBusinessDays diff --git a/src/addWeekDays/index.js b/src/addBusinessDays/index.js similarity index 88% rename from src/addWeekDays/index.js rename to src/addBusinessDays/index.js index a933808022..1adf49e8b9 100644 --- a/src/addWeekDays/index.js +++ b/src/addBusinessDays/index.js @@ -3,7 +3,7 @@ import isWeekend from '../isWeekend/index.js' import toDate from '../toDate/index.js' /** - * @name addWeekDays + * @name addBusinessDays * @category Day Helpers * @summary Add the specified number of weekdays (mo - fri) to the given date, ignoring weekends. * @@ -17,10 +17,10 @@ import toDate from '../toDate/index.js' * * @example * // Add 10 weekdays to 1 September 2014: - * var result = addWeekDays(new Date(2014, 8, 1), 10) + * var result = addBusinessDays(new Date(2014, 8, 1), 10) * //=> Mon Sep 15 2014 00:00:00 (skipped weekend days) */ -export default function addWeekDays(dirtyDate, dirtyAmount) { +export default function addBusinessDays(dirtyDate, dirtyAmount) { if (arguments.length < 2) { throw new TypeError( '2 arguments required, but only ' + arguments.length + ' present' diff --git a/src/addWeekDays/index.js.flow b/src/addBusinessDays/index.js.flow similarity index 100% rename from src/addWeekDays/index.js.flow rename to src/addBusinessDays/index.js.flow diff --git a/src/addWeekDays/test.js b/src/addBusinessDays/test.js similarity index 63% rename from src/addWeekDays/test.js rename to src/addBusinessDays/test.js index a2334d617e..932e87fa1f 100644 --- a/src/addWeekDays/test.js +++ b/src/addBusinessDays/test.js @@ -2,48 +2,48 @@ /* eslint-env mocha */ import assert from 'power-assert' -import addWeekDays from '.' +import addBusinessDays from '.' -describe('addWeekDays', function() { +describe('addBusinessDays', function() { it('adds the given number of weekdays', function() { - var result = addWeekDays(new Date(2014, 8 /* Sep */, 1), 10) + var result = addBusinessDays(new Date(2014, 8 /* Sep */, 1), 10) assert.deepEqual(result, new Date(2014, 8 /* Sep */, 15)) }) it('accepts a timestamp', function() { - var result = addWeekDays(new Date(2014, 8 /* Sep */, 1).getTime(), 10) + var result = addBusinessDays(new Date(2014, 8 /* Sep */, 1).getTime(), 10) assert.deepEqual(result, new Date(2014, 8 /* Sep */, 15)) }) it('converts a fractional number to an integer', function() { - var result = addWeekDays(new Date(2014, 8 /* Sep */, 1), 10.5) + var result = addBusinessDays(new Date(2014, 8 /* Sep */, 1), 10.5) assert.deepEqual(result, new Date(2014, 8 /* Sep */, 15)) }) it('implicitly converts number arguments', function() { // $ExpectedMistake - var result = addWeekDays(new Date(2014, 8 /* Sep */, 1), '10') + var result = addBusinessDays(new Date(2014, 8 /* Sep */, 1), '10') assert.deepEqual(result, new Date(2014, 8 /* Sep */, 15)) }) it('does not mutate the original date', function() { var date = new Date(2014, 8 /* Sep */, 1) - addWeekDays(date, 11) + addBusinessDays(date, 11) assert.deepEqual(date, new Date(2014, 8 /* Sep */, 1)) }) it('returns `Invalid Date` if the given date is invalid', function() { - var result = addWeekDays(new Date(NaN), 10) + var result = addBusinessDays(new Date(NaN), 10) assert(result instanceof Date && isNaN(result)) }) it('returns `Invalid Date` if the given amount is NaN', function() { - var result = addWeekDays(new Date(2014, 8 /* Sep */, 1), NaN) + var result = addBusinessDays(new Date(2014, 8 /* Sep */, 1), NaN) assert(result instanceof Date && isNaN(result)) }) it('throws TypeError exception if passed less than 2 arguments', function() { - assert.throws(addWeekDays.bind(null), TypeError) - assert.throws(addWeekDays.bind(null, 1), TypeError) + assert.throws(addBusinessDays.bind(null), TypeError) + assert.throws(addBusinessDays.bind(null, 1), TypeError) }) }) diff --git a/src/esm/fp/index.js b/src/esm/fp/index.js index 9ea777217e..083f98d2fd 100644 --- a/src/esm/fp/index.js +++ b/src/esm/fp/index.js @@ -8,7 +8,7 @@ export { default as addMinutes } from './addMinutes/index.js' export { default as addMonths } from './addMonths/index.js' export { default as addQuarters } from './addQuarters/index.js' export { default as addSeconds } from './addSeconds/index.js' -export { default as addWeekDays } from './addWeekDays/index.js' +export { default as addBusinessDays } from './addBusinessDays/index.js' export { default as addWeeks } from './addWeeks/index.js' export { default as addYears } from './addYears/index.js' export { diff --git a/src/esm/index.js b/src/esm/index.js index ced564cfc7..f35bc4ee03 100644 --- a/src/esm/index.js +++ b/src/esm/index.js @@ -8,7 +8,7 @@ export { default as addMinutes } from './addMinutes/index.js' export { default as addMonths } from './addMonths/index.js' export { default as addQuarters } from './addQuarters/index.js' export { default as addSeconds } from './addSeconds/index.js' -export { default as addWeekDays } from './addWeekDays/index.js' +export { default as addBusinessDays } from './addBusinessDays/index.js' export { default as addWeeks } from './addWeeks/index.js' export { default as addYears } from './addYears/index.js' export { diff --git a/src/fp/addWeekDays/index.d.ts b/src/fp/addBusinessDays/index.d.ts similarity index 57% rename from src/fp/addWeekDays/index.d.ts rename to src/fp/addBusinessDays/index.d.ts index 6b8c80717f..2b10071cd2 100644 --- a/src/fp/addWeekDays/index.d.ts +++ b/src/fp/addBusinessDays/index.d.ts @@ -1,4 +1,4 @@ // This file is generated automatically by `scripts/build/typings.js`. Please, don't change it. -import { addWeekDays } from 'date-fns/fp' -export = addWeekDays +import { addBusinessDays } from 'date-fns/fp' +export = addBusinessDays diff --git a/src/fp/addWeekDays/index.js b/src/fp/addBusinessDays/index.js similarity index 55% rename from src/fp/addWeekDays/index.js rename to src/fp/addBusinessDays/index.js index 6b6a3a55ce..e1f14a0215 100644 --- a/src/fp/addWeekDays/index.js +++ b/src/fp/addBusinessDays/index.js @@ -1,8 +1,8 @@ // This file is generated automatically by `scripts/build/fp.js`. Please, don't change it. -import fn from '../../addWeekDays/index.js' +import fn from '../../addBusinessDays/index.js' import convertToFP from '../_lib/convertToFP/index.js' -var addWeekDays = convertToFP(fn, 2) +var addBusinessDays = convertToFP(fn, 2) -export default addWeekDays +export default addBusinessDays diff --git a/src/fp/addWeekDays/index.js.flow b/src/fp/addBusinessDays/index.js.flow similarity index 100% rename from src/fp/addWeekDays/index.js.flow rename to src/fp/addBusinessDays/index.js.flow diff --git a/src/fp/index.js b/src/fp/index.js index 2330d32b7e..f15a1a498f 100644 --- a/src/fp/index.js +++ b/src/fp/index.js @@ -11,7 +11,7 @@ module.exports = { addMonths: require('./addMonths/index.js'), addQuarters: require('./addQuarters/index.js'), addSeconds: require('./addSeconds/index.js'), - addWeekDays: require('./addWeekDays/index.js'), + addBusinessDays: require('./addBusinessDays/index.js'), addWeeks: require('./addWeeks/index.js'), addYears: require('./addYears/index.js'), areIntervalsOverlapping: require('./areIntervalsOverlapping/index.js'), diff --git a/src/fp/index.js.flow b/src/fp/index.js.flow index 6ca215f449..2c6087e44c 100644 --- a/src/fp/index.js.flow +++ b/src/fp/index.js.flow @@ -74,7 +74,7 @@ declare module.exports: { addMonths: CurriedFn2, addQuarters: CurriedFn2, addSeconds: CurriedFn2, - addWeekDays: CurriedFn2, + addBusinessDays: CurriedFn2, addWeeks: CurriedFn2, addYears: CurriedFn2, areIntervalsOverlapping: CurriedFn2, diff --git a/src/index.js b/src/index.js index 4e29493391..09c45edf75 100644 --- a/src/index.js +++ b/src/index.js @@ -11,7 +11,7 @@ module.exports = { addMonths: require('./addMonths/index.js'), addQuarters: require('./addQuarters/index.js'), addSeconds: require('./addSeconds/index.js'), - addWeekDays: require('./addWeekDays/index.js'), + addBusinessDays: require('./addBusinessDays/index.js'), addWeeks: require('./addWeeks/index.js'), addYears: require('./addYears/index.js'), areIntervalsOverlapping: require('./areIntervalsOverlapping/index.js'), diff --git a/src/index.js.flow b/src/index.js.flow index 9f99713dd3..b757243b7a 100644 --- a/src/index.js.flow +++ b/src/index.js.flow @@ -52,7 +52,7 @@ declare module.exports: { addSeconds: (date: Date | number, amount: number) => Date, - addWeekDays: (date: Date | number, amount: number) => Date, + addBusinessDays: (date: Date | number, amount: number) => Date, addWeeks: (date: Date | number, amount: number) => Date, diff --git a/typings.d.ts b/typings.d.ts index c0593cf218..9f55f9c1f9 100644 --- a/typings.d.ts +++ b/typings.d.ts @@ -97,8 +97,8 @@ declare module 'date-fns' { function addSeconds(date: Date | number, amount: number): Date namespace addSeconds {} - function addWeekDays(date: Date | number, amount: number): Date - namespace addWeekDays { + function addBusinessDays(date: Date | number, amount: number): Date + namespace addBusinessDays { } @@ -846,9 +846,9 @@ declare module 'date-fns/addSeconds' { export default addSeconds } -declare module 'date-fns/addWeekDays' { - import { addWeekDays } from 'date-fns' - export = addWeekDays +declare module 'date-fns/addBusinessDays' { + import { addBusinessDays } from 'date-fns' + export = addBusinessDays } declare module 'date-fns/addWeeks' { @@ -1631,9 +1631,9 @@ declare module 'date-fns/addSeconds/index' { export default addSeconds } -declare module 'date-fns/addWeekDays/index' { - import { addWeekDays } from 'date-fns' - export = addWeekDays +declare module 'date-fns/addBusinessDays/index' { + import { addBusinessDays } from 'date-fns' + export = addBusinessDays } declare module 'date-fns/addWeeks/index' { @@ -2416,9 +2416,9 @@ declare module 'date-fns/addSeconds/index.js' { export default addSeconds } -declare module 'date-fns/addWeekDays/index.js' { - import { addWeekDays } from 'date-fns' - export = addWeekDays +declare module 'date-fns/addBusinessDays/index.js' { + import { addBusinessDays } from 'date-fns' + export = addBusinessDays } declare module 'date-fns/addWeeks/index.js' { @@ -3188,8 +3188,8 @@ declare module 'date-fns/fp' { const addSeconds: CurriedFn2 namespace addSeconds {} - const addWeekDays: CurriedFn2 - namespace addWeekDays { + const addBusinessDays: CurriedFn2 + namespace addBusinessDays { } @@ -3829,9 +3829,9 @@ declare module 'date-fns/fp/addSeconds' { export = addSeconds } -declare module 'date-fns/fp/addWeekDays' { - import { addWeekDays } from 'date-fns/fp' - export = addWeekDays +declare module 'date-fns/fp/addBusinessDays' { + import { addBusinessDays } from 'date-fns/fp' + export = addBusinessDays } declare module 'date-fns/fp/addWeeks' { @@ -4734,9 +4734,9 @@ declare module 'date-fns/fp/addSeconds/index' { export = addSeconds } -declare module 'date-fns/fp/addWeekDays/index' { - import { addWeekDays } from 'date-fns/fp' - export = addWeekDays +declare module 'date-fns/fp/addBusinessDays/index' { + import { addBusinessDays } from 'date-fns/fp' + export = addBusinessDays } declare module 'date-fns/fp/addWeeks/index' { @@ -5639,9 +5639,9 @@ declare module 'date-fns/fp/addSeconds/index.js' { export = addSeconds } -declare module 'date-fns/fp/addWeekDays/index.js' { - import { addWeekDays } from 'date-fns/fp' - export = addWeekDays +declare module 'date-fns/fp/addBusinessDays/index.js' { + import { addBusinessDays } from 'date-fns/fp' + export = addBusinessDays } declare module 'date-fns/fp/addWeeks/index.js' { @@ -6531,8 +6531,8 @@ declare module 'date-fns/esm' { function addSeconds(date: Date | number, amount: number): Date namespace addSeconds {} - function addWeekDays(date: Date | number, amount: number): Date - namespace addWeekDays { + function addBusinessDays(date: Date | number, amount: number): Date + namespace addBusinessDays { } @@ -7280,9 +7280,9 @@ declare module 'date-fns/esm/addSeconds' { export default addSeconds } -declare module 'date-fns/esm/addWeekDays' { - import { addWeekDays } from 'date-fns/esm' - export default addWeekDays +declare module 'date-fns/esm/addBusinessDays' { + import { addBusinessDays } from 'date-fns/esm' + export default addBusinessDays } declare module 'date-fns/esm/addWeeks' { @@ -8065,9 +8065,9 @@ declare module 'date-fns/esm/addSeconds/index' { export default addSeconds } -declare module 'date-fns/esm/addWeekDays/index' { - import { addWeekDays } from 'date-fns/esm' - export default addWeekDays +declare module 'date-fns/esm/addBusinessDays/index' { + import { addBusinessDays } from 'date-fns/esm' + export default addBusinessDays } declare module 'date-fns/esm/addWeeks/index' { @@ -8850,9 +8850,9 @@ declare module 'date-fns/esm/addSeconds/index.js' { export default addSeconds } -declare module 'date-fns/esm/addWeekDays/index.js' { - import { addWeekDays } from 'date-fns/esm' - export default addWeekDays +declare module 'date-fns/esm/addBusinessDays/index.js' { + import { addBusinessDays } from 'date-fns/esm' + export default addBusinessDays } declare module 'date-fns/esm/addWeeks/index.js' { @@ -9622,8 +9622,8 @@ declare module 'date-fns/esm/fp' { const addSeconds: CurriedFn2 namespace addSeconds {} - const addWeekDays: CurriedFn2 - namespace addWeekDays { + const addBusinessDays: CurriedFn2 + namespace addBusinessDays { } @@ -10263,9 +10263,9 @@ declare module 'date-fns/esm/fp/addSeconds' { export default addSeconds } -declare module 'date-fns/esm/fp/addWeekDays' { - import { addWeekDays } from 'date-fns/esm/fp' - export default addWeekDays +declare module 'date-fns/esm/fp/addBusinessDays' { + import { addBusinessDays } from 'date-fns/esm/fp' + export default addBusinessDays } declare module 'date-fns/esm/fp/addWeeks' { @@ -11168,9 +11168,9 @@ declare module 'date-fns/esm/fp/addSeconds/index' { export default addSeconds } -declare module 'date-fns/esm/fp/addWeekDays/index' { - import { addWeekDays } from 'date-fns/esm/fp' - export default addWeekDays +declare module 'date-fns/esm/fp/addBusinessDays/index' { + import { addBusinessDays } from 'date-fns/esm/fp' + export default addBusinessDays } declare module 'date-fns/esm/fp/addWeeks/index' { @@ -12073,9 +12073,9 @@ declare module 'date-fns/esm/fp/addSeconds/index.js' { export default addSeconds } -declare module 'date-fns/esm/fp/addWeekDays/index.js' { - import { addWeekDays } from 'date-fns/esm/fp' - export default addWeekDays +declare module 'date-fns/esm/fp/addBusinessDays/index.js' { + import { addBusinessDays } from 'date-fns/esm/fp' + export default addBusinessDays } declare module 'date-fns/esm/fp/addWeeks/index.js' { @@ -15017,7 +15017,7 @@ interface dateFns { addSeconds(date: Date | number, amount: number): Date - addWeekDays(date: Date | number, amount: number): Date + addBusinessDays(date: Date | number, amount: number): Date addWeeks(date: Date | number, amount: number): Date From c65d9fd172b84228b0825bf1125249ea44607563 Mon Sep 17 00:00:00 2001 From: Thorr Stevens Date: Sun, 9 Jun 2019 21:36:11 +0200 Subject: [PATCH 4/9] Merge upstream changes and edit Changelog --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a2dc257c69..1bc5b1dc78 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,9 +18,9 @@ for the list of changes made since `v2.0.0-alpha.1`. - New function [addBusinessDays](https://github.com/date-fns/date-fns/pull/1154), similar to addDays but ignoring weekends. - End date can thus only ever be mon/tue/wed/thu/fri. + End date can therefore only ever be mon/tue/wed/thu/fri. - Does not count as businessdays since it doesn't avoid counting on holidays. + Doesn't avoid counting holidays that fall on mon/tue/wed/thu/fri. ### Fixed From ad635d91b28907140c89d7c7f2c73cb01c3689c5 Mon Sep 17 00:00:00 2001 From: Sasha Koss Date: Mon, 10 Jun 2019 19:27:40 +0400 Subject: [PATCH 5/9] Fix the DST issue --- scripts/test/dst.sh | 1 + src/addBusinessDays/index.js | 4 +++- test/dst/addBusinessDays/basic.js | 18 ++++++++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 test/dst/addBusinessDays/basic.js diff --git a/scripts/test/dst.sh b/scripts/test/dst.sh index 5c756d2bf5..2c8b198168 100755 --- a/scripts/test/dst.sh +++ b/scripts/test/dst.sh @@ -11,3 +11,4 @@ export PATH="$(yarn bin):$PATH" env TZ=America/Sao_Paulo babel-node ./test/dst/parseISO/basic.js env TZ=Pacific/Apia babel-node ./test/dst/parseISO/samoa.js env TZ=Asia/Damascus babel-node ./test/dst/eachDayOfInterval/basic.js +env TZ=America/Santiago babel-node ./test/dst/addBusinessDays/basic.js diff --git a/src/addBusinessDays/index.js b/src/addBusinessDays/index.js index 1adf49e8b9..55caf3e3e6 100644 --- a/src/addBusinessDays/index.js +++ b/src/addBusinessDays/index.js @@ -1,6 +1,6 @@ -import toInteger from '../_lib/toInteger/index.js' import isWeekend from '../isWeekend/index.js' import toDate from '../toDate/index.js' +import toInteger from '../_lib/toInteger/index.js' /** * @name addBusinessDays @@ -32,9 +32,11 @@ export default function addBusinessDays(dirtyDate, dirtyAmount) { if (isNaN(amount)) return new Date(NaN) + var hours = date.getHours() var numWeekDays = 0 while (numWeekDays < amount) { date.setDate(date.getDate() + 1) + date.setHours(hours) if (!isWeekend(date)) numWeekDays++ } diff --git a/test/dst/addBusinessDays/basic.js b/test/dst/addBusinessDays/basic.js new file mode 100644 index 0000000000..c55a6860e6 --- /dev/null +++ b/test/dst/addBusinessDays/basic.js @@ -0,0 +1,18 @@ +// This is basic DST test for addBusinessDays + +import assert from 'assert' +import addBusinessDays from '../../../src/addBusinessDays' + +if (process.env.TZ !== 'America/Santiago') + throw new Error('The test must be run with TZ=America/Santiago') + +if (parseInt(process.version.match(/^v(\d+)\./)[1]) < 10) + throw new Error('The test must be run on Node.js version >= 10') + +console.log(addBusinessDays(new Date(2014, 8 /* Sep */, 1), 10).toString()) + +assert.deepEqual( + // new Date(2014, 8, 7) is the DST day + addBusinessDays(new Date(2014, 8 /* Sep */, 1), 10).toString(), + 'Mon Sep 15 2014 00:00:00 GMT-0300 (Chile Summer Time)' +) From ec517d955f7b60508097a77b80fd29bee199274c Mon Sep 17 00:00:00 2001 From: Sasha Koss Date: Mon, 10 Jun 2019 19:30:08 +0400 Subject: [PATCH 6/9] Fix test description --- src/addBusinessDays/test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/addBusinessDays/test.js b/src/addBusinessDays/test.js index 932e87fa1f..2b90008fb3 100644 --- a/src/addBusinessDays/test.js +++ b/src/addBusinessDays/test.js @@ -5,7 +5,7 @@ import assert from 'power-assert' import addBusinessDays from '.' describe('addBusinessDays', function() { - it('adds the given number of weekdays', function() { + it('adds the given number of business days', function() { var result = addBusinessDays(new Date(2014, 8 /* Sep */, 1), 10) assert.deepEqual(result, new Date(2014, 8 /* Sep */, 15)) }) From 58242141b4475e8fd182652659e445da66101154 Mon Sep 17 00:00:00 2001 From: Sasha Koss Date: Mon, 10 Jun 2019 21:51:50 +0400 Subject: [PATCH 7/9] Adjust the docs --- CHANGELOG.md | 12 +++--------- src/addBusinessDays/index.js | 6 +++--- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1bc5b1dc78..78662c17a1 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,15 +13,6 @@ This change log follows the format documented in [Keep a CHANGELOG]. [See v2 Pre-Releases Change Log](https://gist.github.com/kossnocorp/a307a464760b405bb78ef5020a4ab136) for the list of changes made since `v2.0.0-alpha.1`. -### Added - -- New function [addBusinessDays](https://github.com/date-fns/date-fns/pull/1154), - similar to addDays but ignoring weekends. - - End date can therefore only ever be mon/tue/wed/thu/fri. - - Doesn't avoid counting holidays that fall on mon/tue/wed/thu/fri. - ### Fixed - Fix the `toDate` bug occurring when parsing ISO-8601 style dates (but not valid ISO format) @@ -770,6 +761,9 @@ for the list of changes made since `v2.0.0-alpha.1`. - [Add new function `differenceInBusinessDays`](https://github.com/date-fns/date-fns/pull/1194) which calculates the difference in business days. Kudos to [@ThorrStevens](https://github.com/ThorrStevens)! +- [Add new function `addBusinessDays`](https://github.com/date-fns/date-fns/pull/1154), + similar to `addDays` but ignoring weekends. Thanks to [@ThorrStevens](https://github.com/ThorrStevens)! + ## [1.30.1] - 2018-12-10 ### Fixed diff --git a/src/addBusinessDays/index.js b/src/addBusinessDays/index.js index 55caf3e3e6..0a00d4c1c3 100644 --- a/src/addBusinessDays/index.js +++ b/src/addBusinessDays/index.js @@ -5,10 +5,10 @@ import toInteger from '../_lib/toInteger/index.js' /** * @name addBusinessDays * @category Day Helpers - * @summary Add the specified number of weekdays (mo - fri) to the given date, ignoring weekends. + * @summary Add the specified number of business days (mon - fri) to the given date. * * @description - * Add the specified number of weekdays (mo - fri) to the given date, ignoring weekends. + * Add the specified number of business days (mon - fri) to the given date, ignoring weekends. * * @param {Date|Number} date - the date to be changed * @param {Number} amount - the amount of weekdays to be added @@ -16,7 +16,7 @@ import toInteger from '../_lib/toInteger/index.js' * @throws {TypeError} 2 arguments required * * @example - * // Add 10 weekdays to 1 September 2014: + * // Add 10 business days to 1 September 2014: * var result = addBusinessDays(new Date(2014, 8, 1), 10) * //=> Mon Sep 15 2014 00:00:00 (skipped weekend days) */ From b7d6265dea57caa496e29f64d0743580bdf73552 Mon Sep 17 00:00:00 2001 From: Sasha Koss Date: Mon, 10 Jun 2019 21:52:58 +0400 Subject: [PATCH 8/9] More docs changes --- src/addBusinessDays/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/addBusinessDays/index.js b/src/addBusinessDays/index.js index 0a00d4c1c3..4f0aa323d5 100644 --- a/src/addBusinessDays/index.js +++ b/src/addBusinessDays/index.js @@ -11,8 +11,8 @@ import toInteger from '../_lib/toInteger/index.js' * Add the specified number of business days (mon - fri) to the given date, ignoring weekends. * * @param {Date|Number} date - the date to be changed - * @param {Number} amount - the amount of weekdays to be added - * @returns {Date} the new date with the weekdays added + * @param {Number} amount - the amount of business days to be added + * @returns {Date} the new date with the business days added * @throws {TypeError} 2 arguments required * * @example From a8cdf72184355db804bdcf6d1428ba294a117b5a Mon Sep 17 00:00:00 2001 From: Sasha Koss Date: Mon, 10 Jun 2019 22:37:54 +0400 Subject: [PATCH 9/9] Rebuild the lib --- src/addBusinessDays/index.d.ts | 2 +- src/esm/fp/index.js | 2 +- src/esm/index.js | 2 +- src/format/index.js.flow | 1 - src/fp/addBusinessDays/index.d.ts | 2 +- src/fp/index.js | 2 +- src/fp/index.js.flow | 2 +- src/index.js | 2 +- src/index.js.flow | 5 +- typings.d.ts | 159 ++++++++++++++---------------- 10 files changed, 83 insertions(+), 96 deletions(-) diff --git a/src/addBusinessDays/index.d.ts b/src/addBusinessDays/index.d.ts index 7175811372..b1c084e3cd 100644 --- a/src/addBusinessDays/index.d.ts +++ b/src/addBusinessDays/index.d.ts @@ -1,4 +1,4 @@ // This file is generated automatically by `scripts/build/typings.js`. Please, don't change it. import { addBusinessDays } from 'date-fns' -export = addBusinessDays +export default addBusinessDays diff --git a/src/esm/fp/index.js b/src/esm/fp/index.js index 083f98d2fd..fdf8246627 100644 --- a/src/esm/fp/index.js +++ b/src/esm/fp/index.js @@ -1,5 +1,6 @@ // This file is generated automatically by `scripts/build/indices.js`. Please, don't change it. +export { default as addBusinessDays } from './addBusinessDays/index.js' export { default as addDays } from './addDays/index.js' export { default as addHours } from './addHours/index.js' export { default as addISOWeekYears } from './addISOWeekYears/index.js' @@ -8,7 +9,6 @@ export { default as addMinutes } from './addMinutes/index.js' export { default as addMonths } from './addMonths/index.js' export { default as addQuarters } from './addQuarters/index.js' export { default as addSeconds } from './addSeconds/index.js' -export { default as addBusinessDays } from './addBusinessDays/index.js' export { default as addWeeks } from './addWeeks/index.js' export { default as addYears } from './addYears/index.js' export { diff --git a/src/esm/index.js b/src/esm/index.js index f35bc4ee03..837ff003ca 100644 --- a/src/esm/index.js +++ b/src/esm/index.js @@ -1,5 +1,6 @@ // This file is generated automatically by `scripts/build/indices.js`. Please, don't change it. +export { default as addBusinessDays } from './addBusinessDays/index.js' export { default as addDays } from './addDays/index.js' export { default as addHours } from './addHours/index.js' export { default as addISOWeekYears } from './addISOWeekYears/index.js' @@ -8,7 +9,6 @@ export { default as addMinutes } from './addMinutes/index.js' export { default as addMonths } from './addMonths/index.js' export { default as addQuarters } from './addQuarters/index.js' export { default as addSeconds } from './addSeconds/index.js' -export { default as addBusinessDays } from './addBusinessDays/index.js' export { default as addWeeks } from './addWeeks/index.js' export { default as addYears } from './addYears/index.js' export { diff --git a/src/format/index.js.flow b/src/format/index.js.flow index 6002bb93b0..9e600db9b5 100644 --- a/src/format/index.js.flow +++ b/src/format/index.js.flow @@ -42,7 +42,6 @@ declare module.exports: ( locale?: Locale, weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6, firstWeekContainsDate?: number, - locale?: Locale, useAdditionalWeekYearTokens?: boolean, useAdditionalDayOfYearTokens?: boolean } diff --git a/src/fp/addBusinessDays/index.d.ts b/src/fp/addBusinessDays/index.d.ts index 2b10071cd2..dd3b8696a7 100644 --- a/src/fp/addBusinessDays/index.d.ts +++ b/src/fp/addBusinessDays/index.d.ts @@ -1,4 +1,4 @@ // This file is generated automatically by `scripts/build/typings.js`. Please, don't change it. import { addBusinessDays } from 'date-fns/fp' -export = addBusinessDays +export default addBusinessDays diff --git a/src/fp/index.js b/src/fp/index.js index f15a1a498f..e2741dc8c2 100644 --- a/src/fp/index.js +++ b/src/fp/index.js @@ -3,6 +3,7 @@ var constants = require('../constants/index.js') module.exports = { + addBusinessDays: require('./addBusinessDays/index.js'), addDays: require('./addDays/index.js'), addHours: require('./addHours/index.js'), addISOWeekYears: require('./addISOWeekYears/index.js'), @@ -11,7 +12,6 @@ module.exports = { addMonths: require('./addMonths/index.js'), addQuarters: require('./addQuarters/index.js'), addSeconds: require('./addSeconds/index.js'), - addBusinessDays: require('./addBusinessDays/index.js'), addWeeks: require('./addWeeks/index.js'), addYears: require('./addYears/index.js'), areIntervalsOverlapping: require('./areIntervalsOverlapping/index.js'), diff --git a/src/fp/index.js.flow b/src/fp/index.js.flow index 2c6087e44c..ceb51ccd26 100644 --- a/src/fp/index.js.flow +++ b/src/fp/index.js.flow @@ -66,6 +66,7 @@ type CurriedFn4 = ( ) => CurriedFn1 | ((a: A, b: B, c: C, d: D) => R))) declare module.exports: { + addBusinessDays: CurriedFn2, addDays: CurriedFn2, addHours: CurriedFn2, addISOWeekYears: CurriedFn2, @@ -74,7 +75,6 @@ declare module.exports: { addMonths: CurriedFn2, addQuarters: CurriedFn2, addSeconds: CurriedFn2, - addBusinessDays: CurriedFn2, addWeeks: CurriedFn2, addYears: CurriedFn2, areIntervalsOverlapping: CurriedFn2, diff --git a/src/index.js b/src/index.js index 09c45edf75..14756b4579 100644 --- a/src/index.js +++ b/src/index.js @@ -3,6 +3,7 @@ var constants = require('./constants/index.js') module.exports = { + addBusinessDays: require('./addBusinessDays/index.js'), addDays: require('./addDays/index.js'), addHours: require('./addHours/index.js'), addISOWeekYears: require('./addISOWeekYears/index.js'), @@ -11,7 +12,6 @@ module.exports = { addMonths: require('./addMonths/index.js'), addQuarters: require('./addQuarters/index.js'), addSeconds: require('./addSeconds/index.js'), - addBusinessDays: require('./addBusinessDays/index.js'), addWeeks: require('./addWeeks/index.js'), addYears: require('./addYears/index.js'), areIntervalsOverlapping: require('./areIntervalsOverlapping/index.js'), diff --git a/src/index.js.flow b/src/index.js.flow index b757243b7a..12ef492dd0 100644 --- a/src/index.js.flow +++ b/src/index.js.flow @@ -36,6 +36,8 @@ type Locale = { } declare module.exports: { + addBusinessDays: (date: Date | number, amount: number) => Date, + addDays: (date: Date | number, amount: number) => Date, addHours: (date: Date | number, amount: number) => Date, @@ -52,8 +54,6 @@ declare module.exports: { addSeconds: (date: Date | number, amount: number) => Date, - addBusinessDays: (date: Date | number, amount: number) => Date, - addWeeks: (date: Date | number, amount: number) => Date, addYears: (date: Date | number, amount: number) => Date, @@ -232,7 +232,6 @@ declare module.exports: { locale?: Locale, weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6, firstWeekContainsDate?: number, - locale?: Locale, useAdditionalWeekYearTokens?: boolean, useAdditionalDayOfYearTokens?: boolean } diff --git a/typings.d.ts b/typings.d.ts index 9f55f9c1f9..611eea81ec 100644 --- a/typings.d.ts +++ b/typings.d.ts @@ -73,6 +73,9 @@ declare module 'date-fns' { // Regular Functions declare module 'date-fns' { + function addBusinessDays(date: Date | number, amount: number): Date + namespace addBusinessDays {} + function addDays(date: Date | number, amount: number): Date namespace addDays {} @@ -97,11 +100,6 @@ declare module 'date-fns' { function addSeconds(date: Date | number, amount: number): Date namespace addSeconds {} - function addBusinessDays(date: Date | number, amount: number): Date - namespace addBusinessDays { - - } - function addWeeks(date: Date | number, amount: number): Date namespace addWeeks {} @@ -324,7 +322,6 @@ declare module 'date-fns' { locale?: Locale weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 firstWeekContainsDate?: number - locale?: Locale useAdditionalWeekYearTokens?: boolean useAdditionalDayOfYearTokens?: boolean } @@ -806,6 +803,11 @@ declare module 'date-fns' { const minTime: number } +declare module 'date-fns/addBusinessDays' { + import { addBusinessDays } from 'date-fns' + export default addBusinessDays +} + declare module 'date-fns/addDays' { import { addDays } from 'date-fns' export default addDays @@ -846,11 +848,6 @@ declare module 'date-fns/addSeconds' { export default addSeconds } -declare module 'date-fns/addBusinessDays' { - import { addBusinessDays } from 'date-fns' - export = addBusinessDays -} - declare module 'date-fns/addWeeks' { import { addWeeks } from 'date-fns' export default addWeeks @@ -1591,6 +1588,11 @@ declare module 'date-fns/toDate' { export default toDate } +declare module 'date-fns/addBusinessDays/index' { + import { addBusinessDays } from 'date-fns' + export default addBusinessDays +} + declare module 'date-fns/addDays/index' { import { addDays } from 'date-fns' export default addDays @@ -1631,11 +1633,6 @@ declare module 'date-fns/addSeconds/index' { export default addSeconds } -declare module 'date-fns/addBusinessDays/index' { - import { addBusinessDays } from 'date-fns' - export = addBusinessDays -} - declare module 'date-fns/addWeeks/index' { import { addWeeks } from 'date-fns' export default addWeeks @@ -2376,6 +2373,11 @@ declare module 'date-fns/toDate/index' { export default toDate } +declare module 'date-fns/addBusinessDays/index.js' { + import { addBusinessDays } from 'date-fns' + export default addBusinessDays +} + declare module 'date-fns/addDays/index.js' { import { addDays } from 'date-fns' export default addDays @@ -2416,11 +2418,6 @@ declare module 'date-fns/addSeconds/index.js' { export default addSeconds } -declare module 'date-fns/addBusinessDays/index.js' { - import { addBusinessDays } from 'date-fns' - export = addBusinessDays -} - declare module 'date-fns/addWeeks/index.js' { import { addWeeks } from 'date-fns' export default addWeeks @@ -3164,6 +3161,9 @@ declare module 'date-fns/toDate/index.js' { // FP Functions declare module 'date-fns/fp' { + const addBusinessDays: CurriedFn2 + namespace addBusinessDays {} + const addDays: CurriedFn2 namespace addDays {} @@ -3188,11 +3188,6 @@ declare module 'date-fns/fp' { const addSeconds: CurriedFn2 namespace addSeconds {} - const addBusinessDays: CurriedFn2 - namespace addBusinessDays { - - } - const addWeeks: CurriedFn2 namespace addWeeks {} @@ -3789,6 +3784,11 @@ declare module 'date-fns/fp' { const minTime: number } +declare module 'date-fns/fp/addBusinessDays' { + import { addBusinessDays } from 'date-fns/fp' + export = addBusinessDays +} + declare module 'date-fns/fp/addDays' { import { addDays } from 'date-fns/fp' export = addDays @@ -3829,11 +3829,6 @@ declare module 'date-fns/fp/addSeconds' { export = addSeconds } -declare module 'date-fns/fp/addBusinessDays' { - import { addBusinessDays } from 'date-fns/fp' - export = addBusinessDays -} - declare module 'date-fns/fp/addWeeks' { import { addWeeks } from 'date-fns/fp' export = addWeeks @@ -4694,6 +4689,11 @@ declare module 'date-fns/fp/toDate' { export = toDate } +declare module 'date-fns/fp/addBusinessDays/index' { + import { addBusinessDays } from 'date-fns/fp' + export = addBusinessDays +} + declare module 'date-fns/fp/addDays/index' { import { addDays } from 'date-fns/fp' export = addDays @@ -4734,11 +4734,6 @@ declare module 'date-fns/fp/addSeconds/index' { export = addSeconds } -declare module 'date-fns/fp/addBusinessDays/index' { - import { addBusinessDays } from 'date-fns/fp' - export = addBusinessDays -} - declare module 'date-fns/fp/addWeeks/index' { import { addWeeks } from 'date-fns/fp' export = addWeeks @@ -5599,6 +5594,11 @@ declare module 'date-fns/fp/toDate/index' { export = toDate } +declare module 'date-fns/fp/addBusinessDays/index.js' { + import { addBusinessDays } from 'date-fns/fp' + export = addBusinessDays +} + declare module 'date-fns/fp/addDays/index.js' { import { addDays } from 'date-fns/fp' export = addDays @@ -5639,11 +5639,6 @@ declare module 'date-fns/fp/addSeconds/index.js' { export = addSeconds } -declare module 'date-fns/fp/addBusinessDays/index.js' { - import { addBusinessDays } from 'date-fns/fp' - export = addBusinessDays -} - declare module 'date-fns/fp/addWeeks/index.js' { import { addWeeks } from 'date-fns/fp' export = addWeeks @@ -6507,6 +6502,9 @@ declare module 'date-fns/fp/toDate/index.js' { // ECMAScript Module Functions declare module 'date-fns/esm' { + function addBusinessDays(date: Date | number, amount: number): Date + namespace addBusinessDays {} + function addDays(date: Date | number, amount: number): Date namespace addDays {} @@ -6531,11 +6529,6 @@ declare module 'date-fns/esm' { function addSeconds(date: Date | number, amount: number): Date namespace addSeconds {} - function addBusinessDays(date: Date | number, amount: number): Date - namespace addBusinessDays { - - } - function addWeeks(date: Date | number, amount: number): Date namespace addWeeks {} @@ -6758,7 +6751,6 @@ declare module 'date-fns/esm' { locale?: Locale weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 firstWeekContainsDate?: number - locale?: Locale useAdditionalWeekYearTokens?: boolean useAdditionalDayOfYearTokens?: boolean } @@ -7240,6 +7232,11 @@ declare module 'date-fns/esm' { const minTime: number } +declare module 'date-fns/esm/addBusinessDays' { + import { addBusinessDays } from 'date-fns/esm' + export default addBusinessDays +} + declare module 'date-fns/esm/addDays' { import { addDays } from 'date-fns/esm' export default addDays @@ -7280,11 +7277,6 @@ declare module 'date-fns/esm/addSeconds' { export default addSeconds } -declare module 'date-fns/esm/addBusinessDays' { - import { addBusinessDays } from 'date-fns/esm' - export default addBusinessDays -} - declare module 'date-fns/esm/addWeeks' { import { addWeeks } from 'date-fns/esm' export default addWeeks @@ -8025,6 +8017,11 @@ declare module 'date-fns/esm/toDate' { export default toDate } +declare module 'date-fns/esm/addBusinessDays/index' { + import { addBusinessDays } from 'date-fns/esm' + export default addBusinessDays +} + declare module 'date-fns/esm/addDays/index' { import { addDays } from 'date-fns/esm' export default addDays @@ -8065,11 +8062,6 @@ declare module 'date-fns/esm/addSeconds/index' { export default addSeconds } -declare module 'date-fns/esm/addBusinessDays/index' { - import { addBusinessDays } from 'date-fns/esm' - export default addBusinessDays -} - declare module 'date-fns/esm/addWeeks/index' { import { addWeeks } from 'date-fns/esm' export default addWeeks @@ -8810,6 +8802,11 @@ declare module 'date-fns/esm/toDate/index' { export default toDate } +declare module 'date-fns/esm/addBusinessDays/index.js' { + import { addBusinessDays } from 'date-fns/esm' + export default addBusinessDays +} + declare module 'date-fns/esm/addDays/index.js' { import { addDays } from 'date-fns/esm' export default addDays @@ -8850,11 +8847,6 @@ declare module 'date-fns/esm/addSeconds/index.js' { export default addSeconds } -declare module 'date-fns/esm/addBusinessDays/index.js' { - import { addBusinessDays } from 'date-fns/esm' - export default addBusinessDays -} - declare module 'date-fns/esm/addWeeks/index.js' { import { addWeeks } from 'date-fns/esm' export default addWeeks @@ -9598,6 +9590,9 @@ declare module 'date-fns/esm/toDate/index.js' { // ECMAScript Module FP Functions declare module 'date-fns/esm/fp' { + const addBusinessDays: CurriedFn2 + namespace addBusinessDays {} + const addDays: CurriedFn2 namespace addDays {} @@ -9622,11 +9617,6 @@ declare module 'date-fns/esm/fp' { const addSeconds: CurriedFn2 namespace addSeconds {} - const addBusinessDays: CurriedFn2 - namespace addBusinessDays { - - } - const addWeeks: CurriedFn2 namespace addWeeks {} @@ -10223,6 +10213,11 @@ declare module 'date-fns/esm/fp' { const minTime: number } +declare module 'date-fns/esm/fp/addBusinessDays' { + import { addBusinessDays } from 'date-fns/esm/fp' + export default addBusinessDays +} + declare module 'date-fns/esm/fp/addDays' { import { addDays } from 'date-fns/esm/fp' export default addDays @@ -10263,11 +10258,6 @@ declare module 'date-fns/esm/fp/addSeconds' { export default addSeconds } -declare module 'date-fns/esm/fp/addBusinessDays' { - import { addBusinessDays } from 'date-fns/esm/fp' - export default addBusinessDays -} - declare module 'date-fns/esm/fp/addWeeks' { import { addWeeks } from 'date-fns/esm/fp' export default addWeeks @@ -11128,6 +11118,11 @@ declare module 'date-fns/esm/fp/toDate' { export default toDate } +declare module 'date-fns/esm/fp/addBusinessDays/index' { + import { addBusinessDays } from 'date-fns/esm/fp' + export default addBusinessDays +} + declare module 'date-fns/esm/fp/addDays/index' { import { addDays } from 'date-fns/esm/fp' export default addDays @@ -11168,11 +11163,6 @@ declare module 'date-fns/esm/fp/addSeconds/index' { export default addSeconds } -declare module 'date-fns/esm/fp/addBusinessDays/index' { - import { addBusinessDays } from 'date-fns/esm/fp' - export default addBusinessDays -} - declare module 'date-fns/esm/fp/addWeeks/index' { import { addWeeks } from 'date-fns/esm/fp' export default addWeeks @@ -12033,6 +12023,11 @@ declare module 'date-fns/esm/fp/toDate/index' { export default toDate } +declare module 'date-fns/esm/fp/addBusinessDays/index.js' { + import { addBusinessDays } from 'date-fns/esm/fp' + export default addBusinessDays +} + declare module 'date-fns/esm/fp/addDays/index.js' { import { addDays } from 'date-fns/esm/fp' export default addDays @@ -12073,11 +12068,6 @@ declare module 'date-fns/esm/fp/addSeconds/index.js' { export default addSeconds } -declare module 'date-fns/esm/fp/addBusinessDays/index.js' { - import { addBusinessDays } from 'date-fns/esm/fp' - export default addBusinessDays -} - declare module 'date-fns/esm/fp/addWeeks/index.js' { import { addWeeks } from 'date-fns/esm/fp' export default addWeeks @@ -15001,6 +14991,8 @@ declare module 'date-fns/esm/locale/zh-TW/index.js' { // dateFns Global Interface interface dateFns { + addBusinessDays(date: Date | number, amount: number): Date + addDays(date: Date | number, amount: number): Date addHours(date: Date | number, amount: number): Date @@ -15017,8 +15009,6 @@ interface dateFns { addSeconds(date: Date | number, amount: number): Date - addBusinessDays(date: Date | number, amount: number): Date - addWeeks(date: Date | number, amount: number): Date addYears(date: Date | number, amount: number): Date @@ -15173,7 +15163,6 @@ interface dateFns { locale?: Locale weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 firstWeekContainsDate?: number - locale?: Locale useAdditionalWeekYearTokens?: boolean useAdditionalDayOfYearTokens?: boolean }