diff --git a/CHANGELOG.md b/CHANGELOG.md
index b2c56fd9ce..62ae69ffce 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -15,14 +15,6 @@ for the list of changes made since `v2.0.0-alpha.1`.
### Added
-- New interval, month, and year helpers to fetch a list of all Saturdays and Sundays (weekends) for a given date interval. `eachWeekendOfInterval` is the handler function while the other two are wrapper functions.
-
- - `eachWeekendOfInterval`
-
- - `eachWeekendOfMonth`
-
- - `eachWeekendOfYear`
-
- FP functions like those in [lodash](https://github.com/lodash/lodash/wiki/FP-Guide),
that support [currying](https://en.wikipedia.org/wiki/Currying), and, as a consequence,
functional-style [function composing](https://medium.com/making-internets/why-using-chain-is-a-mistake-9bc1f80d51ba).
@@ -141,7 +133,6 @@ for the list of changes made since `v2.0.0-alpha.1`.
- [fi locale is updated for v2 format](https://github.com/date-fns/date-fns/pull/775). Kudos to [@sjuvonen](https://github.com/sjuvonen).
-
- New locale-dependent week-numbering year helpers:
- `getWeek`
@@ -172,6 +163,14 @@ for the list of changes made since `v2.0.0-alpha.1`.
- Added new function `fromUnixTime`. Thansk to [@xkizer](https://github.com/xkizer).
+- New interval, month, and year helpers to fetch a list of all Saturdays and Sundays (weekends) for a given date interval. `eachWeekendOfInterval` is the handler function while the other two are wrapper functions. Kudos to [@laekettavong](https://github.com/laekettavong)!
+
+ - `eachWeekendOfInterval`
+
+ - `eachWeekendOfMonth`
+
+ - `eachWeekendOfYear`
+
### Changed
- **BREAKING**: new format string API for `format` function
diff --git a/package.json b/package.json
index 083ec6213a..4ea292183f 100644
--- a/package.json
+++ b/package.json
@@ -48,7 +48,7 @@
"babel-preset-power-assert": "^1.0.0",
"cloc": "^2.2.0",
"firebase": "^3.7.1",
- "flow-bin": "0.72",
+ "flow-bin": "0.84.0",
"fs-promise": "^1.0.0",
"glob-promise": "^2.0.0",
"gzip-size-cli": "^1.0.0",
diff --git a/src/eachWeekendOfInterval/index.d.ts b/src/eachWeekendOfInterval/index.d.ts
index 23b580937b..3f4e8969c5 100644
--- a/src/eachWeekendOfInterval/index.d.ts
+++ b/src/eachWeekendOfInterval/index.d.ts
@@ -1,4 +1,4 @@
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
-import {eachWeekendOfInterval} from 'date-fns'
+import { eachWeekendOfInterval } from 'date-fns'
export = eachWeekendOfInterval
diff --git a/src/eachWeekendOfInterval/index.js b/src/eachWeekendOfInterval/index.js
index 0a5dfa88dc..fc43ca5ddc 100755
--- a/src/eachWeekendOfInterval/index.js
+++ b/src/eachWeekendOfInterval/index.js
@@ -17,52 +17,48 @@ import isWeekend from '../isWeekend/index.js'
* @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}
* @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)
* @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}
- * @returns {Array} an array containing all the Saturdays and Sundays
+ * @returns {Date[]} an array containing all the Saturdays and Sundays
* @throws {TypeError} 1 argument required
* @throws {RangeError} The start of an interval cannot be after its end
* @throws {RangeError} Date in interval cannot be `Invalid Date`
*
* @example
* // Lists all Saturdays and Sundays in the given date interval
- * var result = eachWeekendOfInterval(
- * {start: new Date(2022, 8, 17),
+ * var result = eachWeekendOfInterval({
+ * start: new Date(2022, 8, 17),
* end: new Date(2022, 8, 30)
- * },
- * {weekStartsOn: 2}
- * )
- * //=> ['Sat Sep 17 2022', 'Sun Sep 18 2022', 'Sat Sep 24 2022', 'Sun Sep 25 2022']
+ * })
+ * //=> [
+ * 2022-09-17T22:00:00.000Z,
+ * 2022-09-23T22:00:00.000Z,
+ * 2022-09-24T22:00:00.000Z
+ * ]
*
* @example
* // Lists all Saturdays and Sundays in the given date interval
- * var result = eachWeekendOfInterval(
- * {start: new Date(2016, 2, 5),
- * end: new Date(2016, 2, 19)
- * },
- * {weekStartsOn: 2}
- * )
- * //=> ['Sat Mar 05 2016', 'Sun Mar 06 2016, 'Sat Mar 12 2016', 'Sun Mar 13 2016', 'Sat Mar 19 2016']
- *
- * @example
- * // Lists all Saturdays and Sundays in the given date interval
- * var result = eachWeekendOfInterval(
- * {start: new Date(2016, 2, 25),
+ * var result = eachWeekendOfInterval({
+ * start: new Date(2016, 2, 25),
* end: new Date(2016, 2, 5)
- * },
- * {weekStartsOn: 2}
- * )
- * //=> RangeError
+ * })
+ * //=> RangeError: Invalid interval
*/
-
-export default function eachWeekendOfInterval (dirtyInterval, dirtyOptions) {
+export default function eachWeekendOfInterval(dirtyInterval, dirtyOptions) {
if (arguments.length < 1) {
- throw new TypeError('1 argument required, but only ' + arguments.length + ' present')
+ throw new TypeError(
+ '1 argument required, but only ' + arguments.length + ' present'
+ )
}
var options = dirtyOptions || {}
var locale = options.locale
- var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn
- var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn)
- var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn)
+ var localeWeekStartsOn =
+ locale && locale.options && locale.options.weekStartsOn
+ var defaultWeekStartsOn =
+ localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn)
+ var weekStartsOn =
+ options.weekStartsOn == null
+ ? defaultWeekStartsOn
+ : toInteger(options.weekStartsOn)
// Test if weekStartsOn is between 0 and 6 _and_ is not NaN
if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
diff --git a/src/eachWeekendOfInterval/index.js.flow b/src/eachWeekendOfInterval/index.js.flow
index 3043b51ee7..57e27d8b6d 100755
--- a/src/eachWeekendOfInterval/index.js.flow
+++ b/src/eachWeekendOfInterval/index.js.flow
@@ -14,7 +14,8 @@ type Options = {
includeSeconds?: boolean,
addSuffix?: boolean,
unit?: 'second' | 'minute' | 'hour' | 'day' | 'month' | 'year',
- roundingMethod?: 'floor' | 'ceil' | 'round'
+ roundingMethod?: 'floor' | 'ceil' | 'round',
+ awareOfUnicodeTokens?: boolean
}
type Locale = {
@@ -46,7 +47,4 @@ type Locale = {
}
}
-declare module.exports: (
- interval: Interval,
- options?: Options
-) => Array
+declare module.exports: (interval: Interval, options?: Options) => Date[]
diff --git a/src/eachWeekendOfInterval/test.js b/src/eachWeekendOfInterval/test.js
index 9f1daa30a7..671a0a210f 100755
--- a/src/eachWeekendOfInterval/test.js
+++ b/src/eachWeekendOfInterval/test.js
@@ -4,8 +4,8 @@
import assert from 'power-assert'
import eachWeekendOfInterval from '.'
-describe('eachWeekendOfInterval', function () {
- it('returns array length of 4', function () {
+describe('eachWeekendOfInterval', function() {
+ it('returns array length of 4', function() {
var result = eachWeekendOfInterval({
start: new Date(2018, 8 /* Sept */, 17),
end: new Date(2018, 8 /* Sept */, 30)
@@ -13,7 +13,7 @@ describe('eachWeekendOfInterval', function () {
assert(result.length === 4)
})
- it('returns array length of 4 with date.toISOString()', function () {
+ it('returns array length of 4 with date.toISOString()', function() {
var result = eachWeekendOfInterval({
start: new Date(2018, 8 /* Sept */, 17).toISOString(),
end: new Date(2018, 8 /* Sept */, 30).toISOString()
@@ -21,7 +21,7 @@ describe('eachWeekendOfInterval', function () {
assert(result.length === 4)
})
- it('returns array length of 4 when date strings are used', function () {
+ it('returns array length of 4 when date strings are used', function() {
var result = eachWeekendOfInterval({
start: new Date('September 17, 2019'),
end: new Date('September 30, 2019')
@@ -29,7 +29,7 @@ describe('eachWeekendOfInterval', function () {
assert(result.length === 4)
})
- it('the first Saturday returned is Sat Sep 22 2018', function () {
+ it('the first Saturday returned is Sat Sep 22 2018', function() {
var result = eachWeekendOfInterval({
start: new Date(2018, 8 /* Sept */, 17),
end: new Date(2018, 8 /* Sept */, 30)
@@ -37,7 +37,7 @@ describe('eachWeekendOfInterval', function () {
assert(result[0].toDateString() === 'Sat Sep 22 2018')
})
- it('the first Sunday returned is Sun Sep 23 2018', function () {
+ it('the first Sunday returned is Sun Sep 23 2018', function() {
var result = eachWeekendOfInterval({
start: new Date(2018, 8, 17),
end: new Date(2018, 8, 30)
@@ -45,7 +45,7 @@ describe('eachWeekendOfInterval', function () {
assert(result[1].toDateString() === 'Sun Sep 23 2018')
})
- it('the second Saturday returned is Sat Sep 29 2018', function () {
+ it('the second Saturday returned is Sat Sep 29 2018', function() {
var result = eachWeekendOfInterval({
start: new Date(2018, 8 /* Sept */, 17),
end: new Date(2018, 8 /* Sept */, 30)
@@ -53,7 +53,7 @@ describe('eachWeekendOfInterval', function () {
assert(result[2].toDateString() === 'Sat Sep 29 2018')
})
- it('the second Sunday returned is Sun Sep 30 2018', function () {
+ it('the second Sunday returned is Sun Sep 30 2018', function() {
var result = eachWeekendOfInterval({
start: new Date(2018, 8 /* Sept */, 17),
end: new Date(2018, 8 /* Sept */, 30)
@@ -61,7 +61,7 @@ describe('eachWeekendOfInterval', function () {
assert(result[3].toDateString() === 'Sun Sep 30 2018')
})
- it('returns array length of 104', function () {
+ it('returns array length of 104', function() {
var result = eachWeekendOfInterval({
start: new Date(2019, 0 /* Jan */, 1),
end: new Date(2019, 11 /* Dec */, 31)
@@ -69,7 +69,7 @@ describe('eachWeekendOfInterval', function () {
assert(result.length === 104)
})
- it('returns Sun Mar 17 2019', function () {
+ it('returns Sun Mar 17 2019', function() {
var result = eachWeekendOfInterval({
start: new Date(2019, 0 /* Jan */, 1),
end: new Date(2019, 11 /* Dec */, 31)
@@ -77,7 +77,7 @@ describe('eachWeekendOfInterval', function () {
assert(result[21].toDateString() === 'Sun Mar 17 2019')
})
- it('returns Sat Oct 26 2019', function () {
+ it('returns Sat Oct 26 2019', function() {
var result = eachWeekendOfInterval({
start: new Date(2019, 0 /* Jan */, 1),
end: new Date(2019, 11 /* Dec */, 31)
@@ -85,62 +85,72 @@ describe('eachWeekendOfInterval', function () {
assert(result[84].toDateString() === 'Sat Oct 26 2019')
})
- it('throws `RangeError` invalid interval start date is used', function () {
+ it('throws `RangeError` invalid interval start date is used', function() {
// $ExpectedMistake
- var block = eachWeekendOfInterval.bind(null,
+ var block = eachWeekendOfInterval.bind(
+ null,
{
start: new Date(NaN),
end: new Date(2019, 11 /* Dec */, 31)
},
- { weekStartsOn: 6 })
+ { weekStartsOn: 6 }
+ )
assert.throws(block, RangeError)
})
- it('throws `RangeError` invalid interval end date is used', function () {
+ it('throws `RangeError` invalid interval end date is used', function() {
// $ExpectedMistake
- var block = eachWeekendOfInterval.bind(null,
+ var block = eachWeekendOfInterval.bind(
+ null,
{
start: new Date(2019, 0 /* Jan */, 1),
end: new Date(NaN)
},
- { weekStartsOn: 6 })
+ { weekStartsOn: 6 }
+ )
assert.throws(block, RangeError)
})
- it('throws TypeError exception if passed less than 1 argument', function () {
- assert.throws(eachWeekendOfInterval.bind(), TypeError)
+ it('throws TypeError exception if passed less than 1 argument', function() {
+ assert.throws(eachWeekendOfInterval, TypeError)
})
- it('throws `RangeError` if `options.weekStartsOn` is not convertable to 0, 1, ..., 6 or undefined', function () {
- // $ExpectedMistake
- var block = eachWeekendOfInterval.bind(null,
+ it('throws `RangeError` if `options.weekStartsOn` is not convertable to 0, 1, ..., 6 or undefined', function() {
+ var block = eachWeekendOfInterval.bind(
+ null,
+ // $ExpectedMistake
{
start: new Date(2018, 8 /* Sept */, 17),
end: new Date(2018, 8 /* Sept */, 30)
},
- { weekStartsOn: 9 })
+ { weekStartsOn: 9 }
+ )
assert.throws(block, RangeError)
})
- it('throws `RangeError` if `options.weekStartsOn` when passing in invalid value', function () {
- // $ExpectedMistake
- var block = eachWeekendOfInterval.bind(null,
+ it('throws `RangeError` if `options.weekStartsOn` when passing in invalid value', function() {
+ var block = eachWeekendOfInterval.bind(
+ null,
+ // $ExpectedMistake
{
start: new Date(2018, 8 /* Sept */, 17),
end: new Date(2018, 8 /* Sept */, 30)
},
- { weekStartsOn: NaN })
+ { weekStartsOn: NaN }
+ )
assert.throws(block, RangeError)
})
- it('throws `RangeError` if start of an interval is after its end', function () {
- // $ExpectedMistake
- var block = eachWeekendOfInterval.bind(null,
+ it('throws `RangeError` if start of an interval is after its end', function() {
+ var block = eachWeekendOfInterval.bind(
+ null,
+ // $ExpectedMistake
{
start: new Date(2018, 8 /* Sept */, 25),
end: new Date(2018, 8 /* Sept */, 6)
},
- { weekStartsOn: NaN })
+ { weekStartsOn: NaN }
+ )
assert.throws(block, RangeError)
})
})
diff --git a/src/eachWeekendOfMonth/index.d.ts b/src/eachWeekendOfMonth/index.d.ts
index 25be83b5d7..f687eb281e 100644
--- a/src/eachWeekendOfMonth/index.d.ts
+++ b/src/eachWeekendOfMonth/index.d.ts
@@ -1,4 +1,4 @@
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
-import {eachWeekendOfMonth} from 'date-fns'
+import { eachWeekendOfMonth } from 'date-fns'
export = eachWeekendOfMonth
diff --git a/src/eachWeekendOfMonth/index.js b/src/eachWeekendOfMonth/index.js
index 9067437f9c..988012d591 100644
--- a/src/eachWeekendOfMonth/index.js
+++ b/src/eachWeekendOfMonth/index.js
@@ -13,16 +13,21 @@ import endOfMonth from '../endOfMonth/index.js'
* @param {Date|String|Number} date - the given month
* @param {Options} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}
* @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}
- * @returns {Array} an array containing all the Saturdays and Sundays
+ * @returns {Date[]} an array containing all the Saturdays and Sundays
* @throws {TypeError} 1 argument required
*
* @example
* // Lists all Saturdays and Sundays in the given month
* var result = eachWeekendOfMonth(new Date(2020, 1, 1))
- * //=> ['Sat Feb 01 2020', 'Sun Feb 02 2020', 'Sat Feb 08 2020', ... , 'Sat Feb 22 2020', 'Sun Feb 23 2020', 'Sat Feb 29 2020']
+ * //=> [
+ * 2020-02-01T23:00:00.000Z,
+ * 2020-02-07T23:00:00.000Z,
+ * 2020-02-08T23:00:00.000Z,
+ * ...
+ * 2020-02-28T23:00:00.000Z
+ * ]
*/
-
-export default function eachWeekendOfMonth (dirtyDate, dirtyOptions) {
+export default function eachWeekendOfMonth(dirtyDate, dirtyOptions) {
if (arguments.length < 1) {
throw new TypeError(
'1 arguments required, but only ' + arguments.length + ' present'
diff --git a/src/eachWeekendOfMonth/index.js.flow b/src/eachWeekendOfMonth/index.js.flow
index 912b0cfd58..a748e1f2fa 100644
--- a/src/eachWeekendOfMonth/index.js.flow
+++ b/src/eachWeekendOfMonth/index.js.flow
@@ -14,7 +14,8 @@ type Options = {
includeSeconds?: boolean,
addSuffix?: boolean,
unit?: 'second' | 'minute' | 'hour' | 'day' | 'month' | 'year',
- roundingMethod?: 'floor' | 'ceil' | 'round'
+ roundingMethod?: 'floor' | 'ceil' | 'round',
+ awareOfUnicodeTokens?: boolean
}
type Locale = {
@@ -49,4 +50,4 @@ type Locale = {
declare module.exports: (
date: Date | string | number,
options?: Options
-) => Array
+) => Date[]
diff --git a/src/eachWeekendOfMonth/test.js b/src/eachWeekendOfMonth/test.js
index d8d5e4f51c..82973f63d5 100644
--- a/src/eachWeekendOfMonth/test.js
+++ b/src/eachWeekendOfMonth/test.js
@@ -4,35 +4,42 @@
import assert from 'power-assert'
import eachWeekendOfMonth from '.'
-describe('eachWeekendOfMonth', function () {
- it('returns array length of 8', function () {
+describe('eachWeekendOfMonth', function() {
+ it('returns array length of 8', function() {
var result = eachWeekendOfMonth(new Date(2022, 1, 20))
assert(result.length === 8)
})
- it('returns the first date in array: Sat Feb 05 2022', function () {
+ it('returns the first date in array: Sat Feb 05 2022', function() {
var result = eachWeekendOfMonth(new Date(2022, 1, 13))
assert(result.length === 8)
assert(result[0].toDateString() === 'Sat Feb 05 2022')
})
- it('returns the last date in array: Sun Feb 27 2022', function () {
+ it('returns the last date in array: Sun Feb 27 2022', function() {
var result = eachWeekendOfMonth(new Date(2022, 1, 5))
assert(result.length === 8)
assert(result[result.length - 1].toDateString() === 'Sun Feb 27 2022')
})
- it('throws TypeError exception when passed less than 1 argument', function () {
+ it('throws TypeError exception when passed less than 1 argument', function() {
assert.throws(eachWeekendOfMonth.bind(null), TypeError)
})
- it('throws TypeError exception when the expected year is a NaN', function () {
+ it('throws TypeError exception when the expected year is a NaN', function() {
assert.throws(eachWeekendOfMonth.bind(1, NaN), RangeError)
})
- it('throws RangeError exception when the additionalDigits option is a NaN', function () {
+ it('throws RangeError exception when the additionalDigits option is a NaN', function() {
assert.throws(
- eachWeekendOfMonth.bind(null, new Date(2020, 1, 5), { additionalDigits: NaN }),
+ eachWeekendOfMonth.bind(
+ null,
+ // $ExpectedMistake
+ new Date(2020, 1, 5),
+ {
+ additionalDigits: NaN
+ }
+ ),
RangeError
)
})
diff --git a/src/eachWeekendOfYear/index.d.ts b/src/eachWeekendOfYear/index.d.ts
index 3cc9dd4330..bfa802e790 100644
--- a/src/eachWeekendOfYear/index.d.ts
+++ b/src/eachWeekendOfYear/index.d.ts
@@ -1,4 +1,4 @@
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
-import {eachWeekendOfYear} from 'date-fns'
+import { eachWeekendOfYear } from 'date-fns'
export = eachWeekendOfYear
diff --git a/src/eachWeekendOfYear/index.js b/src/eachWeekendOfYear/index.js
index 26cb21f82d..11c71fff8e 100644
--- a/src/eachWeekendOfYear/index.js
+++ b/src/eachWeekendOfYear/index.js
@@ -13,16 +13,21 @@ import endOfYear from '../endOfYear/index.js'
* @param {Date|String|Number} date - the given year
* @param {Options} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}
* @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}
- * @returns {Array} an array containing all the Saturdays and Sundays
+ * @returns {Date[]} an array containing all the Saturdays and Sundays
* @throws {TypeError} 1 argument required
*
* @example
* // Lists all Saturdays and Sundays in the year
* var result = eachWeekendOfYear(new Date(2020, 1, 1))
- * //=> ['Sat Jan 04 2020', 'Sun Jan 05 2020', 'Sat Jan 11 2020', ... , 'Sun Dec 20 2020', 'Sat Dec 26 2020', 'Sun Dec 27 2020']
+ * //=> [
+ * 2020-01-03T23:00:00.000Z,
+ * 2020-01-04T23:00:00.000Z,
+ * 2020-01-10T23:00:00.000Z,
+ * ...
+ * 2020-12-26T23:00:00.000Z
+ * ]
*/
-
-export default function eachWeekendOfYear (dirtyDate, dirtyOptions) {
+export default function eachWeekendOfYear(dirtyDate, dirtyOptions) {
if (arguments.length < 1) {
throw new TypeError(
'1 arguments required, but only ' + arguments.length + ' present'
diff --git a/src/eachWeekendOfYear/index.js.flow b/src/eachWeekendOfYear/index.js.flow
index 912b0cfd58..a748e1f2fa 100644
--- a/src/eachWeekendOfYear/index.js.flow
+++ b/src/eachWeekendOfYear/index.js.flow
@@ -14,7 +14,8 @@ type Options = {
includeSeconds?: boolean,
addSuffix?: boolean,
unit?: 'second' | 'minute' | 'hour' | 'day' | 'month' | 'year',
- roundingMethod?: 'floor' | 'ceil' | 'round'
+ roundingMethod?: 'floor' | 'ceil' | 'round',
+ awareOfUnicodeTokens?: boolean
}
type Locale = {
@@ -49,4 +50,4 @@ type Locale = {
declare module.exports: (
date: Date | string | number,
options?: Options
-) => Array
+) => Date[]
diff --git a/src/eachWeekendOfYear/test.js b/src/eachWeekendOfYear/test.js
index 64acd9ae26..4da3ab1072 100644
--- a/src/eachWeekendOfYear/test.js
+++ b/src/eachWeekendOfYear/test.js
@@ -4,43 +4,48 @@
import assert from 'power-assert'
import eachWeekendOfYear from '.'
-describe('eachWeekendOfYear', function () {
- it('returns array length of 104', function () {
+describe('eachWeekendOfYear', function() {
+ it('returns array length of 104', function() {
var result = eachWeekendOfYear(new Date(2020, 0, 1))
assert(result.length === 104)
})
- it('returns array length of 104 when year value is a string', function () {
+ it('returns array length of 104 when year value is a string', function() {
var result = eachWeekendOfYear(new Date(2018, 11, 31))
assert(result.length === 104)
})
- it('returns the date of index 60: Sat Aug 01 2020', function () {
+ it('returns the date of index 60: Sat Aug 01 2020', function() {
var result = eachWeekendOfYear(new Date(2020, 2, 22))
assert(result[60].toDateString() === 'Sat Aug 01 2020')
})
- it('returns the last Sunday of the year: Sun Dec 27 2020', function () {
+ it('returns the last Sunday of the year: Sun Dec 27 2020', function() {
var result = eachWeekendOfYear(new Date(2020, 8, 12))
assert(result[103].toDateString() === 'Sun Dec 27 2020')
})
- it('throws TypeError exception when no argument is passed in', function () {
+ it('throws TypeError exception when no argument is passed in', function() {
assert.throws(eachWeekendOfYear.bind(null), TypeError)
})
- it('throws TypeError exception when the expected year is a NaN', function () {
+ it('throws TypeError exception when the expected year is a NaN', function() {
assert.throws(eachWeekendOfYear.bind(NaN), TypeError)
})
- it('throws RangeError exception when the additionalDigits option is a NaN', function () {
+ it('throws RangeError exception when the additionalDigits option is a NaN', function() {
assert.throws(
- eachWeekendOfYear.bind(null, new Date(2020, 5, 28), { additionalDigits: NaN }),
+ eachWeekendOfYear.bind(
+ null,
+ // $ExpectedMistake
+ new Date(2020, 5, 28),
+ { additionalDigits: NaN }
+ ),
RangeError
)
})
- it('throws RangeError exception when date is invalid', function () {
+ it('throws RangeError exception when date is invalid', function() {
assert.throws(
eachWeekendOfYear.bind(null, new Date(NaN), { additionalDigits: 2 }),
RangeError
diff --git a/src/esm/fp/index.js b/src/esm/fp/index.js
index 30ca3946d7..ba3fba3dd4 100644
--- a/src/esm/fp/index.js
+++ b/src/esm/fp/index.js
@@ -150,6 +150,20 @@ export { default as eachWeekOfInterval } from './eachWeekOfInterval/index.js'
export {
default as eachWeekOfIntervalWithOptions
} from './eachWeekOfIntervalWithOptions/index.js'
+export {
+ default as eachWeekendOfInterval
+} from './eachWeekendOfInterval/index.js'
+export {
+ default as eachWeekendOfIntervalWithOptions
+} from './eachWeekendOfIntervalWithOptions/index.js'
+export { default as eachWeekendOfMonth } from './eachWeekendOfMonth/index.js'
+export {
+ default as eachWeekendOfMonthWithOptions
+} from './eachWeekendOfMonthWithOptions/index.js'
+export { default as eachWeekendOfYear } from './eachWeekendOfYear/index.js'
+export {
+ default as eachWeekendOfYearWithOptions
+} from './eachWeekendOfYearWithOptions/index.js'
export { default as endOfDay } from './endOfDay/index.js'
export { default as endOfDayWithOptions } from './endOfDayWithOptions/index.js'
export { default as endOfDecade } from './endOfDecade/index.js'
diff --git a/src/esm/index.js b/src/esm/index.js
index 80a45a8d76..75121f08f1 100644
--- a/src/esm/index.js
+++ b/src/esm/index.js
@@ -56,6 +56,11 @@ export { default as differenceInWeeks } from './differenceInWeeks/index.js'
export { default as differenceInYears } from './differenceInYears/index.js'
export { default as eachDayOfInterval } from './eachDayOfInterval/index.js'
export { default as eachWeekOfInterval } from './eachWeekOfInterval/index.js'
+export {
+ default as eachWeekendOfInterval
+} from './eachWeekendOfInterval/index.js'
+export { default as eachWeekendOfMonth } from './eachWeekendOfMonth/index.js'
+export { default as eachWeekendOfYear } from './eachWeekendOfYear/index.js'
export { default as endOfDay } from './endOfDay/index.js'
export { default as endOfDecade } from './endOfDecade/index.js'
export { default as endOfHour } from './endOfHour/index.js'
diff --git a/src/fp/eachWeekendOfInterval/index.d.ts b/src/fp/eachWeekendOfInterval/index.d.ts
new file mode 100644
index 0000000000..114d516588
--- /dev/null
+++ b/src/fp/eachWeekendOfInterval/index.d.ts
@@ -0,0 +1,4 @@
+// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
+
+import { eachWeekendOfInterval } from 'date-fns/fp'
+export = eachWeekendOfInterval
diff --git a/src/fp/eachWeekendOfInterval/index.js b/src/fp/eachWeekendOfInterval/index.js
new file mode 100644
index 0000000000..91f0e2cc23
--- /dev/null
+++ b/src/fp/eachWeekendOfInterval/index.js
@@ -0,0 +1,8 @@
+// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.
+
+import fn from '../../eachWeekendOfInterval/index.js'
+import convertToFP from '../_lib/convertToFP/index.js'
+
+var eachWeekendOfInterval = convertToFP(fn, 1)
+
+export default eachWeekendOfInterval
diff --git a/src/getWeekendsBetween/index.js.flow b/src/fp/eachWeekendOfInterval/index.js.flow
old mode 100755
new mode 100644
similarity index 85%
rename from src/getWeekendsBetween/index.js.flow
rename to src/fp/eachWeekendOfInterval/index.js.flow
index a8bf6e920d..1c82971e1f
--- a/src/getWeekendsBetween/index.js.flow
+++ b/src/fp/eachWeekendOfInterval/index.js.flow
@@ -14,7 +14,8 @@ type Options = {
includeSeconds?: boolean,
addSuffix?: boolean,
unit?: 'second' | 'minute' | 'hour' | 'day' | 'month' | 'year',
- roundingMethod?: 'floor' | 'ceil' | 'round'
+ roundingMethod?: 'floor' | 'ceil' | 'round',
+ awareOfUnicodeTokens?: boolean
}
type Locale = {
@@ -46,8 +47,6 @@ type Locale = {
}
}
-declare module.exports: (
- dateStart: Date | string | number,
- dateEnd: Date | string | number,
- options?: Options
-) => Array
+type CurriedFn1 = (a: A) => R
+
+declare module.exports: CurriedFn1
diff --git a/src/fp/eachWeekendOfIntervalWithOptions/index.d.ts b/src/fp/eachWeekendOfIntervalWithOptions/index.d.ts
new file mode 100644
index 0000000000..571b1400db
--- /dev/null
+++ b/src/fp/eachWeekendOfIntervalWithOptions/index.d.ts
@@ -0,0 +1,4 @@
+// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
+
+import { eachWeekendOfIntervalWithOptions } from 'date-fns/fp'
+export = eachWeekendOfIntervalWithOptions
diff --git a/src/fp/eachWeekendOfIntervalWithOptions/index.js b/src/fp/eachWeekendOfIntervalWithOptions/index.js
new file mode 100644
index 0000000000..92cbb61fa6
--- /dev/null
+++ b/src/fp/eachWeekendOfIntervalWithOptions/index.js
@@ -0,0 +1,8 @@
+// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.
+
+import fn from '../../eachWeekendOfInterval/index.js'
+import convertToFP from '../_lib/convertToFP/index.js'
+
+var eachWeekendOfIntervalWithOptions = convertToFP(fn, 2)
+
+export default eachWeekendOfIntervalWithOptions
diff --git a/src/fp/eachWeekendOfIntervalWithOptions/index.js.flow b/src/fp/eachWeekendOfIntervalWithOptions/index.js.flow
new file mode 100644
index 0000000000..89bbe4f337
--- /dev/null
+++ b/src/fp/eachWeekendOfIntervalWithOptions/index.js.flow
@@ -0,0 +1,56 @@
+// @flow
+// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
+
+type Interval = {
+ start: Date | string | number,
+ end: Date | string | number
+}
+
+type Options = {
+ weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
+ firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
+ additionalDigits?: 0 | 1 | 2,
+ locale?: Locale,
+ includeSeconds?: boolean,
+ addSuffix?: boolean,
+ unit?: 'second' | 'minute' | 'hour' | 'day' | 'month' | 'year',
+ roundingMethod?: 'floor' | 'ceil' | 'round',
+ awareOfUnicodeTokens?: boolean
+}
+
+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/eachWeekendOfMonth/index.d.ts b/src/fp/eachWeekendOfMonth/index.d.ts
new file mode 100644
index 0000000000..924022412c
--- /dev/null
+++ b/src/fp/eachWeekendOfMonth/index.d.ts
@@ -0,0 +1,4 @@
+// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
+
+import { eachWeekendOfMonth } from 'date-fns/fp'
+export = eachWeekendOfMonth
diff --git a/src/fp/eachWeekendOfMonth/index.js b/src/fp/eachWeekendOfMonth/index.js
new file mode 100644
index 0000000000..62dc29e0a2
--- /dev/null
+++ b/src/fp/eachWeekendOfMonth/index.js
@@ -0,0 +1,8 @@
+// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.
+
+import fn from '../../eachWeekendOfMonth/index.js'
+import convertToFP from '../_lib/convertToFP/index.js'
+
+var eachWeekendOfMonth = convertToFP(fn, 1)
+
+export default eachWeekendOfMonth
diff --git a/src/fp/eachWeekendOfMonth/index.js.flow b/src/fp/eachWeekendOfMonth/index.js.flow
new file mode 100644
index 0000000000..5667a58081
--- /dev/null
+++ b/src/fp/eachWeekendOfMonth/index.js.flow
@@ -0,0 +1,52 @@
+// @flow
+// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
+
+type Interval = {
+ start: Date | string | number,
+ end: Date | string | number
+}
+
+type Options = {
+ weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
+ firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
+ additionalDigits?: 0 | 1 | 2,
+ locale?: Locale,
+ includeSeconds?: boolean,
+ addSuffix?: boolean,
+ unit?: 'second' | 'minute' | 'hour' | 'day' | 'month' | 'year',
+ roundingMethod?: 'floor' | 'ceil' | 'round',
+ awareOfUnicodeTokens?: boolean
+}
+
+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
+
+declare module.exports: CurriedFn1
diff --git a/src/fp/eachWeekendOfMonthWithOptions/index.d.ts b/src/fp/eachWeekendOfMonthWithOptions/index.d.ts
new file mode 100644
index 0000000000..c965b39564
--- /dev/null
+++ b/src/fp/eachWeekendOfMonthWithOptions/index.d.ts
@@ -0,0 +1,4 @@
+// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
+
+import { eachWeekendOfMonthWithOptions } from 'date-fns/fp'
+export = eachWeekendOfMonthWithOptions
diff --git a/src/fp/eachWeekendOfMonthWithOptions/index.js b/src/fp/eachWeekendOfMonthWithOptions/index.js
new file mode 100644
index 0000000000..00c9261160
--- /dev/null
+++ b/src/fp/eachWeekendOfMonthWithOptions/index.js
@@ -0,0 +1,8 @@
+// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.
+
+import fn from '../../eachWeekendOfMonth/index.js'
+import convertToFP from '../_lib/convertToFP/index.js'
+
+var eachWeekendOfMonthWithOptions = convertToFP(fn, 2)
+
+export default eachWeekendOfMonthWithOptions
diff --git a/src/fp/eachWeekendOfMonthWithOptions/index.js.flow b/src/fp/eachWeekendOfMonthWithOptions/index.js.flow
new file mode 100644
index 0000000000..4a0c0ac39c
--- /dev/null
+++ b/src/fp/eachWeekendOfMonthWithOptions/index.js.flow
@@ -0,0 +1,56 @@
+// @flow
+// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
+
+type Interval = {
+ start: Date | string | number,
+ end: Date | string | number
+}
+
+type Options = {
+ weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
+ firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
+ additionalDigits?: 0 | 1 | 2,
+ locale?: Locale,
+ includeSeconds?: boolean,
+ addSuffix?: boolean,
+ unit?: 'second' | 'minute' | 'hour' | 'day' | 'month' | 'year',
+ roundingMethod?: 'floor' | 'ceil' | 'round',
+ awareOfUnicodeTokens?: boolean
+}
+
+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/getWeekendsBetween/index.d.ts b/src/fp/eachWeekendOfYear/index.d.ts
similarity index 56%
rename from src/getWeekendsBetween/index.d.ts
rename to src/fp/eachWeekendOfYear/index.d.ts
index 620be7b2d8..35b5b0d3c5 100644
--- a/src/getWeekendsBetween/index.d.ts
+++ b/src/fp/eachWeekendOfYear/index.d.ts
@@ -1,4 +1,4 @@
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
-import {getWeekendsBetween} from 'date-fns'
-export = getWeekendsBetween
+import { eachWeekendOfYear } from 'date-fns/fp'
+export = eachWeekendOfYear
diff --git a/src/fp/eachWeekendOfYear/index.js b/src/fp/eachWeekendOfYear/index.js
new file mode 100644
index 0000000000..ecac091c49
--- /dev/null
+++ b/src/fp/eachWeekendOfYear/index.js
@@ -0,0 +1,8 @@
+// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.
+
+import fn from '../../eachWeekendOfYear/index.js'
+import convertToFP from '../_lib/convertToFP/index.js'
+
+var eachWeekendOfYear = convertToFP(fn, 1)
+
+export default eachWeekendOfYear
diff --git a/src/fp/eachWeekendOfYear/index.js.flow b/src/fp/eachWeekendOfYear/index.js.flow
new file mode 100644
index 0000000000..5667a58081
--- /dev/null
+++ b/src/fp/eachWeekendOfYear/index.js.flow
@@ -0,0 +1,52 @@
+// @flow
+// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
+
+type Interval = {
+ start: Date | string | number,
+ end: Date | string | number
+}
+
+type Options = {
+ weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
+ firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
+ additionalDigits?: 0 | 1 | 2,
+ locale?: Locale,
+ includeSeconds?: boolean,
+ addSuffix?: boolean,
+ unit?: 'second' | 'minute' | 'hour' | 'day' | 'month' | 'year',
+ roundingMethod?: 'floor' | 'ceil' | 'round',
+ awareOfUnicodeTokens?: boolean
+}
+
+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
+
+declare module.exports: CurriedFn1
diff --git a/src/fp/eachWeekendOfYearWithOptions/index.d.ts b/src/fp/eachWeekendOfYearWithOptions/index.d.ts
new file mode 100644
index 0000000000..caef63dd47
--- /dev/null
+++ b/src/fp/eachWeekendOfYearWithOptions/index.d.ts
@@ -0,0 +1,4 @@
+// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
+
+import { eachWeekendOfYearWithOptions } from 'date-fns/fp'
+export = eachWeekendOfYearWithOptions
diff --git a/src/fp/eachWeekendOfYearWithOptions/index.js b/src/fp/eachWeekendOfYearWithOptions/index.js
new file mode 100644
index 0000000000..d6700bcaca
--- /dev/null
+++ b/src/fp/eachWeekendOfYearWithOptions/index.js
@@ -0,0 +1,8 @@
+// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.
+
+import fn from '../../eachWeekendOfYear/index.js'
+import convertToFP from '../_lib/convertToFP/index.js'
+
+var eachWeekendOfYearWithOptions = convertToFP(fn, 2)
+
+export default eachWeekendOfYearWithOptions
diff --git a/src/fp/eachWeekendOfYearWithOptions/index.js.flow b/src/fp/eachWeekendOfYearWithOptions/index.js.flow
new file mode 100644
index 0000000000..4a0c0ac39c
--- /dev/null
+++ b/src/fp/eachWeekendOfYearWithOptions/index.js.flow
@@ -0,0 +1,56 @@
+// @flow
+// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
+
+type Interval = {
+ start: Date | string | number,
+ end: Date | string | number
+}
+
+type Options = {
+ weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
+ firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
+ additionalDigits?: 0 | 1 | 2,
+ locale?: Locale,
+ includeSeconds?: boolean,
+ addSuffix?: boolean,
+ unit?: 'second' | 'minute' | 'hour' | 'day' | 'month' | 'year',
+ roundingMethod?: 'floor' | 'ceil' | 'round',
+ awareOfUnicodeTokens?: boolean
+}
+
+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 f72c761f49..f5a2e70bdb 100644
--- a/src/fp/index.js
+++ b/src/fp/index.js
@@ -69,6 +69,12 @@ module.exports = {
eachDayOfIntervalWithOptions: require('./eachDayOfIntervalWithOptions/index.js'),
eachWeekOfInterval: require('./eachWeekOfInterval/index.js'),
eachWeekOfIntervalWithOptions: require('./eachWeekOfIntervalWithOptions/index.js'),
+ eachWeekendOfInterval: require('./eachWeekendOfInterval/index.js'),
+ eachWeekendOfIntervalWithOptions: require('./eachWeekendOfIntervalWithOptions/index.js'),
+ eachWeekendOfMonth: require('./eachWeekendOfMonth/index.js'),
+ eachWeekendOfMonthWithOptions: require('./eachWeekendOfMonthWithOptions/index.js'),
+ eachWeekendOfYear: require('./eachWeekendOfYear/index.js'),
+ eachWeekendOfYearWithOptions: require('./eachWeekendOfYearWithOptions/index.js'),
endOfDay: require('./endOfDay/index.js'),
endOfDayWithOptions: require('./endOfDayWithOptions/index.js'),
endOfDecade: require('./endOfDecade/index.js'),
diff --git a/src/fp/index.js.flow b/src/fp/index.js.flow
index 3440f493e2..95068239ad 100644
--- a/src/fp/index.js.flow
+++ b/src/fp/index.js.flow
@@ -383,6 +383,20 @@ declare module.exports: {
>,
eachDayOfInterval: CurriedFn1,
eachDayOfIntervalWithOptions: CurriedFn2,
+ eachWeekendOfInterval: CurriedFn1,
+ eachWeekendOfIntervalWithOptions: CurriedFn2,
+ eachWeekendOfMonth: CurriedFn1,
+ eachWeekendOfMonthWithOptions: CurriedFn2<
+ Options,
+ Date | string | number,
+ Date[]
+ >,
+ eachWeekendOfYear: CurriedFn1,
+ eachWeekendOfYearWithOptions: CurriedFn2<
+ Options,
+ Date | string | number,
+ Date[]
+ >,
eachWeekOfInterval: CurriedFn1,
eachWeekOfIntervalWithOptions: CurriedFn2,
endOfDay: CurriedFn1,
diff --git a/src/getWeekendsBetween/benchmark.js b/src/getWeekendsBetween/benchmark.js
deleted file mode 100755
index c48b6114a5..0000000000
--- a/src/getWeekendsBetween/benchmark.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// @flow
-/* eslint-env mocha */
-/* global suite, benchmark */
-
-import getWeekendsBetween from '.'
-
-suite('getWeekendsBetween', function () {
- benchmark('date-fns', function () {
- return getWeekendsBetween({start: this.dateStart, end: this.dateEnd})
- })
-}, {
- setup: function () {
- this.dateStart = new Date(2022, 0, 1)
- this.dateEnd = new Date(2022, 11, 31)
- }
-})
diff --git a/src/getWeekendsBetween/index.js b/src/getWeekendsBetween/index.js
deleted file mode 100755
index 9f62ed8d84..0000000000
--- a/src/getWeekendsBetween/index.js
+++ /dev/null
@@ -1,81 +0,0 @@
-import toInteger from '../_lib/toInteger/index.js'
-import eachDayOfInterval from '../eachDayOfInterval/index.js'
-import isSunday from '../isSunday/index.js'
-import isWeekend from '../isWeekend/index.js'
-
-/**
- * @name getWeekendsBetween
- * @category Week Helpers
- * @summary List all the Saturdays and Sundays in the given date interval.
- *
- * @description
- * Get all the Saturdays and Sundays in the given date interval.
- *
- * @param {Date|String|Number} dateStart - the start date
- * @param {Date|String|Number} dateEnd - the end date
- * @param {Options} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}
- * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}
- * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)
- * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}
- * @returns {Array} an array containing all the Saturdays and Sundays
- * @throws {TypeError} 2 arguments required
- *
- * @example
- * // Lists all Saturdays and Sundays in the given date interval
- * let result = getWeekendsBetween(
- * {start: new Date(2022, 8, 17),
- * end: new Date(2022, 8, 30)},
- * {weekStartsOn: 2}
- * )
- * //=> ['Sat Sep 17 2022', 'Sun Sep 18 2022', 'Sat Sep 24 2022', 'Sun Sep 25 2022']
- *
- * @example
- * // Lists all Saturdays and Sundays in the given date interval
- * let result = getWeekendsBetween(
- * {start: new Date('March 5, 2016'),
- * end: new Date('March 19, 2016')},
- * {weekStartsOn: 2}
- * )
- * //=> ['Sat Mar 05 2016', 'Sun Mar 06 2016, 'Sat Mar 12 2016', 'Sun Mar 13 2016', 'Sat Mar 19 2016']
- *
- * @example
- * // Lists all Saturdays and Sundays in the given date interval
- * let result = getWeekendsBetween(
- * {start: new Date('March 25, 2016'),
- * end: new Date('March 5, 2016')},
- * {weekStartsOn: 2}
- * )
- * //=> []
- */
-
-export default function getWeekendsBetween (dirtyInterval, dirtyOptions) {
- if (arguments.length < 1) {
- throw new TypeError('1 argument required, but only ' + arguments.length + ' present')
- }
-
- var options = dirtyOptions || {}
- var locale = options.locale
- var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn
- var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn)
- var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn)
-
- // Test if weekStartsOn is between 0 and 6 _and_ is not NaN
- if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
- throw new RangeError('weekStartsOn must be between 0 and 6 inclusively')
- }
-
- var interval = dirtyInterval || {}
- var dateInterval = eachDayOfInterval(interval)
- var weekends = []
- var index = 0
- while (index++ < dateInterval.length) {
- var date = dateInterval[index]
- if (isWeekend(date)) {
- weekends.push(new Date(date))
- if (isSunday(date)) {
- index = index + 5
- }
- }
- }
- return weekends
-}
diff --git a/src/getWeekendsBetween/test.js b/src/getWeekendsBetween/test.js
deleted file mode 100755
index bf951b8e2a..0000000000
--- a/src/getWeekendsBetween/test.js
+++ /dev/null
@@ -1,135 +0,0 @@
-// @flow
-/* eslint-env mocha */
-
-import assert from 'power-assert'
-import getWeekendsBetween from '.'
-
-describe('getWeekendsBetween', function () {
- it('returns array length of 4', function () {
- var result = getWeekendsBetween({
- start: new Date(2018, 8 /* Sept */, 17),
- end: new Date(2018, 8 /* Sept */, 30)
- })
- assert(result.length === 4)
- })
-
- it('returns array length of 4 with date.toISOString()', function () {
- var result = getWeekendsBetween({
- start: new Date(2018, 8 /* Sept */, 17).toISOString(),
- end: new Date(2018, 8 /* Sept */, 30).toISOString()
- })
- assert(result.length === 4)
- })
-
- it('returns array length of 4 when date strings are used', function () {
- var result = getWeekendsBetween({
- start: new Date('September 17, 2019'),
- end: new Date('September 30, 2019')
- })
- assert(result.length === 4)
- })
-
- it('the first Saturday returned is Sat Sep 22 2018', function () {
- var result = getWeekendsBetween({
- start: new Date(2018, 8 /* Sept */, 17),
- end: new Date(2018, 8 /* Sept */, 30)
- })
- assert(result[0].toDateString() === 'Sat Sep 22 2018')
- })
-
- it('the first Sunday returned is Sun Sep 23 2018', function () {
- var result = getWeekendsBetween({
- start: new Date(2018, 8, 17),
- end: new Date(2018, 8, 30)
- })
- assert(result[1].toDateString() === 'Sun Sep 23 2018')
- })
-
- it('the second Saturday returned is Sat Sep 29 2018', function () {
- var result = getWeekendsBetween({
- start: new Date(2018, 8 /* Sept */, 17),
- end: new Date(2018, 8 /* Sept */, 30)
- })
- assert(result[2].toDateString() === 'Sat Sep 29 2018')
- })
-
- it('the second Sunday returned is Sun Sep 30 2018', function () {
- var result = getWeekendsBetween({
- start: new Date(2018, 8 /* Sept */, 17),
- end: new Date(2018, 8 /* Sept */, 30)
- })
- assert(result[3].toDateString() === 'Sun Sep 30 2018')
- })
-
- it('returns array length of 104', function () {
- var result = getWeekendsBetween({
- start: new Date(2019, 0 /* Jan */, 1),
- end: new Date(2019, 11 /* Dec */, 31)
- })
- assert(result.length === 104)
- })
-
- it('returns Sun Mar 17 2019', function () {
- var result = getWeekendsBetween({
- start: new Date(2019, 0 /* Jan */, 1),
- end: new Date(2019, 11 /* Dec */, 31)
- })
- assert(result[21].toDateString() === 'Sun Mar 17 2019')
- })
-
- it('returns Sat Oct 26 2019', function () {
- var result = getWeekendsBetween({
- start: new Date(2019, 0 /* Jan */, 1),
- end: new Date(2019, 11 /* Dec */, 31)
- })
- assert(result[84].toDateString() === 'Sat Oct 26 2019')
- })
-
- it('throws `RangeError` invalid interval start date is used', function () {
- // $ExpectedMistake
- var block = getWeekendsBetween.bind(null,
- {
- start: new Date(NaN),
- end: new Date(2019, 11 /* Dec */, 31)
- },
- { weekStartsOn: 6 })
- assert.throws(block, RangeError)
- })
-
- it('throws `RangeError` invalid interval end date is used', function () {
- // $ExpectedMistake
- var block = getWeekendsBetween.bind(null,
- {
- start: new Date(2019, 0 /* Jan */, 1),
- end: new Date(NaN)
- },
- { weekStartsOn: 6 })
- assert.throws(block, RangeError)
- })
-
- it('throws TypeError exception if passed less than 1 argument', function () {
- assert.throws(getWeekendsBetween.bind(), TypeError)
- })
-
- it('throws `RangeError` if `options.weekStartsOn` is not convertable to 0, 1, ..., 6 or undefined', function () {
- // $ExpectedMistake
- var block = getWeekendsBetween.bind(null,
- {
- start: new Date(2018, 8 /* Sept */, 17),
- end: new Date(2018, 8 /* Sept */, 30)
- },
- { weekStartsOn: 9 })
- assert.throws(block, RangeError)
- })
-
- it('throws `RangeError` if `options.weekStartsOn` when passing in invalid value', function () {
- // $ExpectedMistake
- var block = getWeekendsBetween.bind(null,
- {
- start: new Date(2018, 8 /* Sept */, 17),
- end: new Date(2018, 8 /* Sept */, 30)
- },
- { weekStartsOn: NaN })
- assert.throws(block, RangeError)
- })
-})
diff --git a/src/index.js b/src/index.js
index fc0ac58719..f8a2c7879e 100644
--- a/src/index.js
+++ b/src/index.js
@@ -35,6 +35,9 @@ module.exports = {
differenceInYears: require('./differenceInYears/index.js'),
eachDayOfInterval: require('./eachDayOfInterval/index.js'),
eachWeekOfInterval: require('./eachWeekOfInterval/index.js'),
+ eachWeekendOfInterval: require('./eachWeekendOfInterval/index.js'),
+ eachWeekendOfMonth: require('./eachWeekendOfMonth/index.js'),
+ eachWeekendOfYear: require('./eachWeekendOfYear/index.js'),
endOfDay: require('./endOfDay/index.js'),
endOfDecade: require('./endOfDecade/index.js'),
endOfHour: require('./endOfHour/index.js'),
diff --git a/src/index.js.flow b/src/index.js.flow
index 534598ed94..043c89c6a9 100644
--- a/src/index.js.flow
+++ b/src/index.js.flow
@@ -242,6 +242,18 @@ declare module.exports: {
eachDayOfInterval: (interval: Interval, options?: Options) => Date[],
+ eachWeekendOfInterval: (interval: Interval, options?: Options) => Date[],
+
+ eachWeekendOfMonth: (
+ date: Date | string | number,
+ options?: Options
+ ) => Date[],
+
+ eachWeekendOfYear: (
+ date: Date | string | number,
+ options?: Options
+ ) => Date[],
+
eachWeekOfInterval: (interval: Interval, options?: Options) => Date[],
endOfDay: (date: Date | string | number, options?: Options) => Date,
diff --git a/typings.d.ts b/typings.d.ts
index 69a199a5b3..21488c36db 100644
--- a/typings.d.ts
+++ b/typings.d.ts
@@ -381,6 +381,27 @@ declare module 'date-fns' {
}
+ function eachWeekendOfInterval(interval: Interval, options?: Options): Date[]
+ namespace eachWeekendOfInterval {
+
+ }
+
+ function eachWeekendOfMonth(
+ date: Date | string | number,
+ options?: Options
+ ): Date[]
+ namespace eachWeekendOfMonth {
+
+ }
+
+ function eachWeekendOfYear(
+ date: Date | string | number,
+ options?: Options
+ ): Date[]
+ namespace eachWeekendOfYear {
+
+ }
+
function eachWeekOfInterval(interval: Interval, options?: Options): Date[]
namespace eachWeekOfInterval {
@@ -1365,6 +1386,21 @@ declare module 'date-fns/eachDayOfInterval' {
export = eachDayOfInterval
}
+declare module 'date-fns/eachWeekendOfInterval' {
+ import { eachWeekendOfInterval } from 'date-fns'
+ export = eachWeekendOfInterval
+}
+
+declare module 'date-fns/eachWeekendOfMonth' {
+ import { eachWeekendOfMonth } from 'date-fns'
+ export = eachWeekendOfMonth
+}
+
+declare module 'date-fns/eachWeekendOfYear' {
+ import { eachWeekendOfYear } from 'date-fns'
+ export = eachWeekendOfYear
+}
+
declare module 'date-fns/eachWeekOfInterval' {
import { eachWeekOfInterval } from 'date-fns'
export = eachWeekOfInterval
@@ -2115,6 +2151,21 @@ declare module 'date-fns/eachDayOfInterval/index' {
export = eachDayOfInterval
}
+declare module 'date-fns/eachWeekendOfInterval/index' {
+ import { eachWeekendOfInterval } from 'date-fns'
+ export = eachWeekendOfInterval
+}
+
+declare module 'date-fns/eachWeekendOfMonth/index' {
+ import { eachWeekendOfMonth } from 'date-fns'
+ export = eachWeekendOfMonth
+}
+
+declare module 'date-fns/eachWeekendOfYear/index' {
+ import { eachWeekendOfYear } from 'date-fns'
+ export = eachWeekendOfYear
+}
+
declare module 'date-fns/eachWeekOfInterval/index' {
import { eachWeekOfInterval } from 'date-fns'
export = eachWeekOfInterval
@@ -2865,6 +2916,21 @@ declare module 'date-fns/eachDayOfInterval/index.js' {
export = eachDayOfInterval
}
+declare module 'date-fns/eachWeekendOfInterval/index.js' {
+ import { eachWeekendOfInterval } from 'date-fns'
+ export = eachWeekendOfInterval
+}
+
+declare module 'date-fns/eachWeekendOfMonth/index.js' {
+ import { eachWeekendOfMonth } from 'date-fns'
+ export = eachWeekendOfMonth
+}
+
+declare module 'date-fns/eachWeekendOfYear/index.js' {
+ import { eachWeekendOfYear } from 'date-fns'
+ export = eachWeekendOfYear
+}
+
declare module 'date-fns/eachWeekOfInterval/index.js' {
import { eachWeekOfInterval } from 'date-fns'
export = eachWeekOfInterval
@@ -4027,6 +4093,44 @@ declare module 'date-fns/fp' {
}
+ const eachWeekendOfInterval: CurriedFn1
+ namespace eachWeekendOfInterval {
+
+ }
+
+ const eachWeekendOfIntervalWithOptions: CurriedFn2
+ namespace eachWeekendOfIntervalWithOptions {
+
+ }
+
+ const eachWeekendOfMonth: CurriedFn1
+ namespace eachWeekendOfMonth {
+
+ }
+
+ const eachWeekendOfMonthWithOptions: CurriedFn2<
+ Options,
+ Date | string | number,
+ Date[]
+ >
+ namespace eachWeekendOfMonthWithOptions {
+
+ }
+
+ const eachWeekendOfYear: CurriedFn1
+ namespace eachWeekendOfYear {
+
+ }
+
+ const eachWeekendOfYearWithOptions: CurriedFn2<
+ Options,
+ Date | string | number,
+ Date[]
+ >
+ namespace eachWeekendOfYearWithOptions {
+
+ }
+
const eachWeekOfInterval: CurriedFn1
namespace eachWeekOfInterval {
@@ -6027,6 +6131,36 @@ declare module 'date-fns/fp/eachDayOfIntervalWithOptions' {
export = eachDayOfIntervalWithOptions
}
+declare module 'date-fns/fp/eachWeekendOfInterval' {
+ import { eachWeekendOfInterval } from 'date-fns/fp'
+ export = eachWeekendOfInterval
+}
+
+declare module 'date-fns/fp/eachWeekendOfIntervalWithOptions' {
+ import { eachWeekendOfIntervalWithOptions } from 'date-fns/fp'
+ export = eachWeekendOfIntervalWithOptions
+}
+
+declare module 'date-fns/fp/eachWeekendOfMonth' {
+ import { eachWeekendOfMonth } from 'date-fns/fp'
+ export = eachWeekendOfMonth
+}
+
+declare module 'date-fns/fp/eachWeekendOfMonthWithOptions' {
+ import { eachWeekendOfMonthWithOptions } from 'date-fns/fp'
+ export = eachWeekendOfMonthWithOptions
+}
+
+declare module 'date-fns/fp/eachWeekendOfYear' {
+ import { eachWeekendOfYear } from 'date-fns/fp'
+ export = eachWeekendOfYear
+}
+
+declare module 'date-fns/fp/eachWeekendOfYearWithOptions' {
+ import { eachWeekendOfYearWithOptions } from 'date-fns/fp'
+ export = eachWeekendOfYearWithOptions
+}
+
declare module 'date-fns/fp/eachWeekOfInterval' {
import { eachWeekOfInterval } from 'date-fns/fp'
export = eachWeekOfInterval
@@ -7527,6 +7661,36 @@ declare module 'date-fns/fp/eachDayOfIntervalWithOptions/index' {
export = eachDayOfIntervalWithOptions
}
+declare module 'date-fns/fp/eachWeekendOfInterval/index' {
+ import { eachWeekendOfInterval } from 'date-fns/fp'
+ export = eachWeekendOfInterval
+}
+
+declare module 'date-fns/fp/eachWeekendOfIntervalWithOptions/index' {
+ import { eachWeekendOfIntervalWithOptions } from 'date-fns/fp'
+ export = eachWeekendOfIntervalWithOptions
+}
+
+declare module 'date-fns/fp/eachWeekendOfMonth/index' {
+ import { eachWeekendOfMonth } from 'date-fns/fp'
+ export = eachWeekendOfMonth
+}
+
+declare module 'date-fns/fp/eachWeekendOfMonthWithOptions/index' {
+ import { eachWeekendOfMonthWithOptions } from 'date-fns/fp'
+ export = eachWeekendOfMonthWithOptions
+}
+
+declare module 'date-fns/fp/eachWeekendOfYear/index' {
+ import { eachWeekendOfYear } from 'date-fns/fp'
+ export = eachWeekendOfYear
+}
+
+declare module 'date-fns/fp/eachWeekendOfYearWithOptions/index' {
+ import { eachWeekendOfYearWithOptions } from 'date-fns/fp'
+ export = eachWeekendOfYearWithOptions
+}
+
declare module 'date-fns/fp/eachWeekOfInterval/index' {
import { eachWeekOfInterval } from 'date-fns/fp'
export = eachWeekOfInterval
@@ -9027,6 +9191,36 @@ declare module 'date-fns/fp/eachDayOfIntervalWithOptions/index.js' {
export = eachDayOfIntervalWithOptions
}
+declare module 'date-fns/fp/eachWeekendOfInterval/index.js' {
+ import { eachWeekendOfInterval } from 'date-fns/fp'
+ export = eachWeekendOfInterval
+}
+
+declare module 'date-fns/fp/eachWeekendOfIntervalWithOptions/index.js' {
+ import { eachWeekendOfIntervalWithOptions } from 'date-fns/fp'
+ export = eachWeekendOfIntervalWithOptions
+}
+
+declare module 'date-fns/fp/eachWeekendOfMonth/index.js' {
+ import { eachWeekendOfMonth } from 'date-fns/fp'
+ export = eachWeekendOfMonth
+}
+
+declare module 'date-fns/fp/eachWeekendOfMonthWithOptions/index.js' {
+ import { eachWeekendOfMonthWithOptions } from 'date-fns/fp'
+ export = eachWeekendOfMonthWithOptions
+}
+
+declare module 'date-fns/fp/eachWeekendOfYear/index.js' {
+ import { eachWeekendOfYear } from 'date-fns/fp'
+ export = eachWeekendOfYear
+}
+
+declare module 'date-fns/fp/eachWeekendOfYearWithOptions/index.js' {
+ import { eachWeekendOfYearWithOptions } from 'date-fns/fp'
+ export = eachWeekendOfYearWithOptions
+}
+
declare module 'date-fns/fp/eachWeekOfInterval/index.js' {
import { eachWeekOfInterval } from 'date-fns/fp'
export = eachWeekOfInterval
@@ -10493,6 +10687,27 @@ declare module 'date-fns/esm' {
}
+ function eachWeekendOfInterval(interval: Interval, options?: Options): Date[]
+ namespace eachWeekendOfInterval {
+
+ }
+
+ function eachWeekendOfMonth(
+ date: Date | string | number,
+ options?: Options
+ ): Date[]
+ namespace eachWeekendOfMonth {
+
+ }
+
+ function eachWeekendOfYear(
+ date: Date | string | number,
+ options?: Options
+ ): Date[]
+ namespace eachWeekendOfYear {
+
+ }
+
function eachWeekOfInterval(interval: Interval, options?: Options): Date[]
namespace eachWeekOfInterval {
@@ -11477,6 +11692,21 @@ declare module 'date-fns/esm/eachDayOfInterval' {
export default eachDayOfInterval
}
+declare module 'date-fns/esm/eachWeekendOfInterval' {
+ import { eachWeekendOfInterval } from 'date-fns/esm'
+ export default eachWeekendOfInterval
+}
+
+declare module 'date-fns/esm/eachWeekendOfMonth' {
+ import { eachWeekendOfMonth } from 'date-fns/esm'
+ export default eachWeekendOfMonth
+}
+
+declare module 'date-fns/esm/eachWeekendOfYear' {
+ import { eachWeekendOfYear } from 'date-fns/esm'
+ export default eachWeekendOfYear
+}
+
declare module 'date-fns/esm/eachWeekOfInterval' {
import { eachWeekOfInterval } from 'date-fns/esm'
export default eachWeekOfInterval
@@ -12227,6 +12457,21 @@ declare module 'date-fns/esm/eachDayOfInterval/index' {
export default eachDayOfInterval
}
+declare module 'date-fns/esm/eachWeekendOfInterval/index' {
+ import { eachWeekendOfInterval } from 'date-fns/esm'
+ export default eachWeekendOfInterval
+}
+
+declare module 'date-fns/esm/eachWeekendOfMonth/index' {
+ import { eachWeekendOfMonth } from 'date-fns/esm'
+ export default eachWeekendOfMonth
+}
+
+declare module 'date-fns/esm/eachWeekendOfYear/index' {
+ import { eachWeekendOfYear } from 'date-fns/esm'
+ export default eachWeekendOfYear
+}
+
declare module 'date-fns/esm/eachWeekOfInterval/index' {
import { eachWeekOfInterval } from 'date-fns/esm'
export default eachWeekOfInterval
@@ -12977,6 +13222,21 @@ declare module 'date-fns/esm/eachDayOfInterval/index.js' {
export default eachDayOfInterval
}
+declare module 'date-fns/esm/eachWeekendOfInterval/index.js' {
+ import { eachWeekendOfInterval } from 'date-fns/esm'
+ export default eachWeekendOfInterval
+}
+
+declare module 'date-fns/esm/eachWeekendOfMonth/index.js' {
+ import { eachWeekendOfMonth } from 'date-fns/esm'
+ export default eachWeekendOfMonth
+}
+
+declare module 'date-fns/esm/eachWeekendOfYear/index.js' {
+ import { eachWeekendOfYear } from 'date-fns/esm'
+ export default eachWeekendOfYear
+}
+
declare module 'date-fns/esm/eachWeekOfInterval/index.js' {
import { eachWeekOfInterval } from 'date-fns/esm'
export default eachWeekOfInterval
@@ -14139,6 +14399,44 @@ declare module 'date-fns/esm/fp' {
}
+ const eachWeekendOfInterval: CurriedFn1
+ namespace eachWeekendOfInterval {
+
+ }
+
+ const eachWeekendOfIntervalWithOptions: CurriedFn2
+ namespace eachWeekendOfIntervalWithOptions {
+
+ }
+
+ const eachWeekendOfMonth: CurriedFn1
+ namespace eachWeekendOfMonth {
+
+ }
+
+ const eachWeekendOfMonthWithOptions: CurriedFn2<
+ Options,
+ Date | string | number,
+ Date[]
+ >
+ namespace eachWeekendOfMonthWithOptions {
+
+ }
+
+ const eachWeekendOfYear: CurriedFn1
+ namespace eachWeekendOfYear {
+
+ }
+
+ const eachWeekendOfYearWithOptions: CurriedFn2<
+ Options,
+ Date | string | number,
+ Date[]
+ >
+ namespace eachWeekendOfYearWithOptions {
+
+ }
+
const eachWeekOfInterval: CurriedFn1
namespace eachWeekOfInterval {
@@ -16139,6 +16437,36 @@ declare module 'date-fns/esm/fp/eachDayOfIntervalWithOptions' {
export default eachDayOfIntervalWithOptions
}
+declare module 'date-fns/esm/fp/eachWeekendOfInterval' {
+ import { eachWeekendOfInterval } from 'date-fns/esm/fp'
+ export default eachWeekendOfInterval
+}
+
+declare module 'date-fns/esm/fp/eachWeekendOfIntervalWithOptions' {
+ import { eachWeekendOfIntervalWithOptions } from 'date-fns/esm/fp'
+ export default eachWeekendOfIntervalWithOptions
+}
+
+declare module 'date-fns/esm/fp/eachWeekendOfMonth' {
+ import { eachWeekendOfMonth } from 'date-fns/esm/fp'
+ export default eachWeekendOfMonth
+}
+
+declare module 'date-fns/esm/fp/eachWeekendOfMonthWithOptions' {
+ import { eachWeekendOfMonthWithOptions } from 'date-fns/esm/fp'
+ export default eachWeekendOfMonthWithOptions
+}
+
+declare module 'date-fns/esm/fp/eachWeekendOfYear' {
+ import { eachWeekendOfYear } from 'date-fns/esm/fp'
+ export default eachWeekendOfYear
+}
+
+declare module 'date-fns/esm/fp/eachWeekendOfYearWithOptions' {
+ import { eachWeekendOfYearWithOptions } from 'date-fns/esm/fp'
+ export default eachWeekendOfYearWithOptions
+}
+
declare module 'date-fns/esm/fp/eachWeekOfInterval' {
import { eachWeekOfInterval } from 'date-fns/esm/fp'
export default eachWeekOfInterval
@@ -17639,6 +17967,36 @@ declare module 'date-fns/esm/fp/eachDayOfIntervalWithOptions/index' {
export default eachDayOfIntervalWithOptions
}
+declare module 'date-fns/esm/fp/eachWeekendOfInterval/index' {
+ import { eachWeekendOfInterval } from 'date-fns/esm/fp'
+ export default eachWeekendOfInterval
+}
+
+declare module 'date-fns/esm/fp/eachWeekendOfIntervalWithOptions/index' {
+ import { eachWeekendOfIntervalWithOptions } from 'date-fns/esm/fp'
+ export default eachWeekendOfIntervalWithOptions
+}
+
+declare module 'date-fns/esm/fp/eachWeekendOfMonth/index' {
+ import { eachWeekendOfMonth } from 'date-fns/esm/fp'
+ export default eachWeekendOfMonth
+}
+
+declare module 'date-fns/esm/fp/eachWeekendOfMonthWithOptions/index' {
+ import { eachWeekendOfMonthWithOptions } from 'date-fns/esm/fp'
+ export default eachWeekendOfMonthWithOptions
+}
+
+declare module 'date-fns/esm/fp/eachWeekendOfYear/index' {
+ import { eachWeekendOfYear } from 'date-fns/esm/fp'
+ export default eachWeekendOfYear
+}
+
+declare module 'date-fns/esm/fp/eachWeekendOfYearWithOptions/index' {
+ import { eachWeekendOfYearWithOptions } from 'date-fns/esm/fp'
+ export default eachWeekendOfYearWithOptions
+}
+
declare module 'date-fns/esm/fp/eachWeekOfInterval/index' {
import { eachWeekOfInterval } from 'date-fns/esm/fp'
export default eachWeekOfInterval
@@ -19139,6 +19497,36 @@ declare module 'date-fns/esm/fp/eachDayOfIntervalWithOptions/index.js' {
export default eachDayOfIntervalWithOptions
}
+declare module 'date-fns/esm/fp/eachWeekendOfInterval/index.js' {
+ import { eachWeekendOfInterval } from 'date-fns/esm/fp'
+ export default eachWeekendOfInterval
+}
+
+declare module 'date-fns/esm/fp/eachWeekendOfIntervalWithOptions/index.js' {
+ import { eachWeekendOfIntervalWithOptions } from 'date-fns/esm/fp'
+ export default eachWeekendOfIntervalWithOptions
+}
+
+declare module 'date-fns/esm/fp/eachWeekendOfMonth/index.js' {
+ import { eachWeekendOfMonth } from 'date-fns/esm/fp'
+ export default eachWeekendOfMonth
+}
+
+declare module 'date-fns/esm/fp/eachWeekendOfMonthWithOptions/index.js' {
+ import { eachWeekendOfMonthWithOptions } from 'date-fns/esm/fp'
+ export default eachWeekendOfMonthWithOptions
+}
+
+declare module 'date-fns/esm/fp/eachWeekendOfYear/index.js' {
+ import { eachWeekendOfYear } from 'date-fns/esm/fp'
+ export default eachWeekendOfYear
+}
+
+declare module 'date-fns/esm/fp/eachWeekendOfYearWithOptions/index.js' {
+ import { eachWeekendOfYearWithOptions } from 'date-fns/esm/fp'
+ export default eachWeekendOfYearWithOptions
+}
+
declare module 'date-fns/esm/fp/eachWeekOfInterval/index.js' {
import { eachWeekOfInterval } from 'date-fns/esm/fp'
export default eachWeekOfInterval
@@ -22550,6 +22938,12 @@ interface dateFns {
eachDayOfInterval(interval: Interval, options?: Options): Date[]
+ eachWeekendOfInterval(interval: Interval, options?: Options): Date[]
+
+ eachWeekendOfMonth(date: Date | string | number, options?: Options): Date[]
+
+ eachWeekendOfYear(date: Date | string | number, options?: Options): Date[]
+
eachWeekOfInterval(interval: Interval, options?: Options): Date[]
endOfDay(date: Date | string | number, options?: Options): Date
diff --git a/yarn.lock b/yarn.lock
index 315c4b9f0f..755b08bbc1 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2624,10 +2624,10 @@ firebase@^3.7.1:
rsvp "3.2.1"
xmlhttprequest "1.8.0"
-flow-bin@0.72:
- version "0.72.0"
- resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.72.0.tgz#12051180fb2db7ccb728fefe67c77e955e92a44d"
- integrity sha1-EgURgPstt8y3KP7+Z8d+lV6SpE0=
+flow-bin@0.84.0:
+ version "0.84.0"
+ resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.84.0.tgz#4cb2364c750fb37a7840524fa62456b53f64cdcb"
+ integrity sha512-ocji8eEYp+YfICsm+F6cIHUcD7v5sb0/ADEXm6gyUKdjQzmSckMrPUdZtyfP973t3YGHKliUMxMvIBHyR5LbXQ==
for-in@^0.1.5:
version "0.1.6"