Skip to content

Commit fa5022f

Browse files
Revert "chore(deps): upgrade date-fns to v4.1.0"
1 parent b8cbd65 commit fa5022f

File tree

7 files changed

+106
-97
lines changed

7 files changed

+106
-97
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@
8585
"dependencies": {
8686
"@floating-ui/react": "^0.27.0",
8787
"clsx": "^2.1.1",
88-
"date-fns": "^4.1.0"
88+
"date-fns": "^3.6.0"
8989
},
9090
"scripts": {
9191
"eslint": "eslint --ext .js,.jsx,.ts,.tsx ./src",

rollup.config.mjs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,25 @@ const banner = `/*!
2424
Released under the ${pkg.license} License.
2525
*/`;
2626

27+
// it's important to mark all subpackages of data-fns as externals
28+
// see https://github.com/Hacker0x01/react-datepicker/issues/1606
29+
// We're relying on date-fn's package.json `exports` field to
30+
// determine the list of directories to include.
31+
const dateFnsPackageJson = JSON.parse(
32+
fs
33+
.readFileSync(
34+
path.join(
35+
path.dirname(fileURLToPath(import.meta.url)),
36+
"node_modules/date-fns/package.json",
37+
),
38+
)
39+
.toString(),
40+
);
41+
const dateFnsSubpackages = Object.keys(dateFnsPackageJson.exports)
42+
.map((key) => key.replace("./", ""))
43+
.filter((key) => key !== "." && key !== "package.json")
44+
.map((key) => `date-fns/${key}`);
45+
2746
const globals = {
2847
react: "React",
2948
"prop-types": "PropTypes",
@@ -90,6 +109,7 @@ const config = {
90109
external: [
91110
...Object.keys(pkg.dependencies || {}),
92111
...Object.keys(pkg.peerDependencies || {}),
112+
...dateFnsSubpackages,
93113
],
94114
};
95115

src/date_utils.ts

Lines changed: 72 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,64 @@
1-
import {
2-
addDays,
3-
addHours,
4-
addMinutes,
5-
addMonths,
6-
addQuarters,
7-
addSeconds,
8-
addWeeks,
9-
addYears,
10-
isEqual as dfIsEqual,
11-
isSameDay as dfIsSameDay,
12-
isSameMonth as dfIsSameMonth,
13-
isSameQuarter as dfIsSameQuarter,
14-
isSameYear as dfIsSameYear,
15-
differenceInCalendarDays,
16-
differenceInCalendarMonths,
17-
differenceInCalendarQuarters,
18-
differenceInCalendarYears,
19-
endOfDay,
20-
endOfMonth,
21-
endOfWeek,
22-
endOfYear,
23-
format,
24-
getDate,
25-
getDay,
26-
getHours,
27-
getISOWeek,
28-
getMinutes,
29-
getMonth,
30-
getQuarter,
31-
getSeconds,
32-
getTime,
33-
getYear,
34-
isAfter,
35-
isBefore,
36-
isDate,
37-
isValid as isValidDate,
38-
isWithinInterval,
39-
longFormatters,
40-
max,
41-
min,
42-
parse,
43-
parseISO,
44-
set,
45-
setHours,
46-
setMinutes,
47-
setMonth,
48-
setQuarter,
49-
setSeconds,
50-
setYear,
51-
startOfDay,
52-
startOfMonth,
53-
startOfQuarter,
54-
startOfWeek,
55-
startOfYear,
56-
subDays,
57-
subMonths,
58-
subQuarters,
59-
subWeeks,
60-
subYears,
61-
toDate,
62-
} from "date-fns";
63-
64-
import type { Locale as DateFnsLocale, Day } from "date-fns";
1+
import { addDays } from "date-fns/addDays";
2+
import { addHours } from "date-fns/addHours";
3+
import { addMinutes } from "date-fns/addMinutes";
4+
import { addMonths } from "date-fns/addMonths";
5+
import { addQuarters } from "date-fns/addQuarters";
6+
import { addSeconds } from "date-fns/addSeconds";
7+
import { addWeeks } from "date-fns/addWeeks";
8+
import { addYears } from "date-fns/addYears";
9+
import { differenceInCalendarDays } from "date-fns/differenceInCalendarDays";
10+
import { differenceInCalendarMonths } from "date-fns/differenceInCalendarMonths";
11+
import { differenceInCalendarQuarters } from "date-fns/differenceInCalendarQuarters";
12+
import { differenceInCalendarYears } from "date-fns/differenceInCalendarYears";
13+
import { endOfDay } from "date-fns/endOfDay";
14+
import { endOfMonth } from "date-fns/endOfMonth";
15+
import { endOfWeek } from "date-fns/endOfWeek";
16+
import { endOfYear } from "date-fns/endOfYear";
17+
import { format, longFormatters } from "date-fns/format";
18+
import { getDate } from "date-fns/getDate";
19+
import { getDay } from "date-fns/getDay";
20+
import { getHours } from "date-fns/getHours";
21+
import { getISOWeek } from "date-fns/getISOWeek";
22+
import { getMinutes } from "date-fns/getMinutes";
23+
import { getMonth } from "date-fns/getMonth";
24+
import { getQuarter } from "date-fns/getQuarter";
25+
import { getSeconds } from "date-fns/getSeconds";
26+
import { getTime } from "date-fns/getTime";
27+
import { getYear } from "date-fns/getYear";
28+
import { isAfter } from "date-fns/isAfter";
29+
import { isBefore } from "date-fns/isBefore";
30+
import { isDate } from "date-fns/isDate";
31+
import { isEqual as dfIsEqual } from "date-fns/isEqual";
32+
import { isSameDay as dfIsSameDay } from "date-fns/isSameDay";
33+
import { isSameMonth as dfIsSameMonth } from "date-fns/isSameMonth";
34+
import { isSameQuarter as dfIsSameQuarter } from "date-fns/isSameQuarter";
35+
import { isSameYear as dfIsSameYear } from "date-fns/isSameYear";
36+
import { isValid as isValidDate } from "date-fns/isValid";
37+
import { isWithinInterval } from "date-fns/isWithinInterval";
38+
import { max } from "date-fns/max";
39+
import { min } from "date-fns/min";
40+
import { parse } from "date-fns/parse";
41+
import { parseISO } from "date-fns/parseISO";
42+
import { set } from "date-fns/set";
43+
import { setHours } from "date-fns/setHours";
44+
import { setMinutes } from "date-fns/setMinutes";
45+
import { setMonth } from "date-fns/setMonth";
46+
import { setQuarter } from "date-fns/setQuarter";
47+
import { setSeconds } from "date-fns/setSeconds";
48+
import { setYear } from "date-fns/setYear";
49+
import { startOfDay } from "date-fns/startOfDay";
50+
import { startOfMonth } from "date-fns/startOfMonth";
51+
import { startOfQuarter } from "date-fns/startOfQuarter";
52+
import { startOfWeek } from "date-fns/startOfWeek";
53+
import { startOfYear } from "date-fns/startOfYear";
54+
import { subDays } from "date-fns/subDays";
55+
import { subMonths } from "date-fns/subMonths";
56+
import { subQuarters } from "date-fns/subQuarters";
57+
import { subWeeks } from "date-fns/subWeeks";
58+
import { subYears } from "date-fns/subYears";
59+
import { toDate } from "date-fns/toDate";
60+
61+
import type { Day, Locale as DateFnsLocale } from "date-fns";
6562

6663
export type DateNumberType = Day;
6764
interface LocaleObj
@@ -343,21 +340,21 @@ export function setTime(
343340
return setHours(setMinutes(setSeconds(date, second), minute), hour);
344341
}
345342

346-
export { setHours, setMinutes, setMonth, setQuarter, setYear };
343+
export { setMinutes, setHours, setMonth, setQuarter, setYear };
347344

348345
// ** Date Getters **
349346

350347
// getDay Returns day of week, getDate returns day of month
351348
export {
352-
getDate,
353-
getDay,
354-
getHours,
349+
getSeconds,
355350
getMinutes,
351+
getHours,
356352
getMonth,
357353
getQuarter,
358-
getSeconds,
359-
getTime,
360354
getYear,
355+
getDay,
356+
getDate,
357+
getTime,
361358
};
362359

363360
/**
@@ -490,22 +487,22 @@ export function getEndOfMonth(date: Date): Date {
490487
// *** Addition ***
491488

492489
export {
493-
addDays,
490+
addSeconds,
494491
addMinutes,
492+
addDays,
493+
addWeeks,
495494
addMonths,
496495
addQuarters,
497-
addSeconds,
498-
addWeeks,
499496
addYears,
500497
};
501498

502499
// *** Subtraction ***
503500

504-
export { addHours, subDays, subMonths, subQuarters, subWeeks, subYears };
501+
export { addHours, subDays, subWeeks, subMonths, subQuarters, subYears };
505502

506503
// ** Date Comparison **
507504

508-
export { isAfter, isBefore };
505+
export { isBefore, isAfter };
509506

510507
/**
511508
* Checks if two dates are in the same year.

src/test/calendar_test.test.tsx

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,9 @@
33
*/
44

55
import { render, fireEvent, act, waitFor } from "@testing-library/react";
6-
import {
7-
setDate,
8-
startOfMonth,
9-
eachDayOfInterval,
10-
endOfMonth,
11-
endOfYear,
12-
isSunday,
13-
} from "date-fns";
6+
import { setDate, startOfMonth, eachDayOfInterval, endOfMonth } from "date-fns";
7+
import { endOfYear } from "date-fns/endOfYear";
8+
import { isSunday } from "date-fns/isSunday";
149
import { eo } from "date-fns/locale/eo";
1510
import { fi } from "date-fns/locale/fi";
1611
import React from "react";

src/test/date_utils_test.test.ts

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
1-
import {
2-
addYears,
3-
setSeconds,
4-
addQuarters,
5-
setHours,
6-
setMinutes,
7-
} from "date-fns";
1+
import { addYears, setSeconds } from "date-fns";
2+
import { addQuarters } from "date-fns/addQuarters";
83
import { ptBR } from "date-fns/locale/pt-BR";
4+
import { setHours } from "date-fns/setHours";
5+
import { setMinutes } from "date-fns/setMinutes";
96

107
import {
118
newDate,

src/test/month_test.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* eslint jest/expect-expect: ["error", { "assertFunctionNames": ["expect", "assertDateRangeInclusive", "runAxe"] }] */
22
import { render, fireEvent } from "@testing-library/react";
3-
import { es } from "date-fns/locale/es";
3+
import { es } from "date-fns/locale";
44
import React from "react";
55

66
import DatePicker from "../";

yarn.lock

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4178,10 +4178,10 @@ __metadata:
41784178
languageName: node
41794179
linkType: hard
41804180

4181-
"date-fns@npm:^4.1.0":
4182-
version: 4.1.0
4183-
resolution: "date-fns@npm:4.1.0"
4184-
checksum: 10c0/b79ff32830e6b7faa009590af6ae0fb8c3fd9ffad46d930548fbb5acf473773b4712ae887e156ba91a7b3dc30591ce0f517d69fd83bd9c38650fdc03b4e0bac8
4181+
"date-fns@npm:^3.6.0":
4182+
version: 3.6.0
4183+
resolution: "date-fns@npm:3.6.0"
4184+
checksum: 10c0/0b5fb981590ef2f8e5a3ba6cd6d77faece0ea7f7158948f2eaae7bbb7c80a8f63ae30b01236c2923cf89bb3719c33aeb150c715ea4fe4e86e37dcf06bed42fb6
41854185
languageName: node
41864186
linkType: hard
41874187

@@ -8413,7 +8413,7 @@ __metadata:
84138413
babel-plugin-transform-react-remove-prop-types: "npm:^0.4.24"
84148414
clsx: "npm:^2.1.1"
84158415
core-js: "npm:^3.38.1"
8416-
date-fns: "npm:^4.1.0"
8416+
date-fns: "npm:^3.6.0"
84178417
eslint: "npm:^8.57.0"
84188418
eslint-config-prettier: "npm:^9.1.0"
84198419
eslint-plugin-import: "npm:^2.29.1"

0 commit comments

Comments
 (0)