Просмотр исходного кода

refactor: update date-fns imports to specific functions for better tree-shaking

Yuki Takei 1 месяц назад
Родитель
Сommit
ad2f756a28

+ 3 - 2
apps/app/src/client/components/Admin/AuditLog/DateRangePicker.tsx

@@ -1,6 +1,7 @@
 import type { FC } from 'react';
 import type { FC } from 'react';
-import React, { forwardRef, useCallback } from 'react';
-import { addDays, format } from 'date-fns';
+import { forwardRef, useCallback } from 'react';
+import { addDays } from 'date-fns/addDays';
+import { format } from 'date-fns/format';
 import DatePicker from 'react-datepicker';
 import DatePicker from 'react-datepicker';
 import 'react-datepicker/dist/react-datepicker.css';
 import 'react-datepicker/dist/react-datepicker.css';
 
 

+ 3 - 2
apps/app/src/client/components/FormattedDistanceDate.jsx

@@ -1,5 +1,6 @@
-import React from 'react';
-import { differenceInSeconds, format, formatDistanceStrict } from 'date-fns';
+import { differenceInSeconds } from 'date-fns/differenceInSeconds';
+import { format } from 'date-fns/format';
+import { formatDistanceStrict } from 'date-fns/formatDistanceStrict';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 import { UncontrolledTooltip } from 'reactstrap';
 import { UncontrolledTooltip } from 'reactstrap';
 
 

+ 5 - 2
apps/app/src/client/components/PageAccessoriesModal/ShareLink/ShareLinkForm.tsx

@@ -1,6 +1,9 @@
 import type { FC } from 'react';
 import type { FC } from 'react';
-import React, { useCallback, useState } from 'react';
-import { addDays, format, parse, set } from 'date-fns';
+import { useCallback, useState } from 'react';
+import { addDays } from 'date-fns/addDays';
+import { format } from 'date-fns/format';
+import { parse } from 'date-fns/parse';
+import { set } from 'date-fns/set';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 
 
 import { apiv3Post } from '~/client/util/apiv3-client';
 import { apiv3Post } from '~/client/util/apiv3-client';

+ 3 - 2
apps/app/src/client/components/PageComment/Comment.tsx

@@ -1,9 +1,10 @@
-import React, { type JSX, useEffect, useMemo, useState } from 'react';
+import { type JSX, useEffect, useMemo, useState } from 'react';
 import Link from 'next/link';
 import Link from 'next/link';
 import { type IUser, isPopulated } from '@growi/core';
 import { type IUser, isPopulated } from '@growi/core';
 import * as pathUtils from '@growi/core/dist/utils/path-utils';
 import * as pathUtils from '@growi/core/dist/utils/path-utils';
 import { UserPicture } from '@growi/ui/dist/components';
 import { UserPicture } from '@growi/ui/dist/components';
-import { format, parseISO } from 'date-fns';
+import { format } from 'date-fns/format';
+import { parseISO } from 'date-fns/parseISO';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 import { UncontrolledTooltip } from 'reactstrap';
 import { UncontrolledTooltip } from 'reactstrap';
 import urljoin from 'url-join';
 import urljoin from 'url-join';

+ 1 - 1
apps/app/src/client/components/RecentActivity/ActivityListItem.tsx

@@ -1,4 +1,4 @@
-import { formatDistanceToNow } from 'date-fns';
+import { formatDistanceToNow } from 'date-fns/formatDistanceToNow';
 import type { Locale } from 'date-fns/locale';
 import type { Locale } from 'date-fns/locale';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 
 

+ 1 - 1
apps/app/src/features/openai/server/models/thread-relation.ts

@@ -1,4 +1,4 @@
-import { addDays } from 'date-fns';
+import { addDays } from 'date-fns/addDays';
 import { type Document, type PaginateModel, Schema } from 'mongoose';
 import { type Document, type PaginateModel, Schema } from 'mongoose';
 import mongoosePaginate from 'mongoose-paginate-v2';
 import mongoosePaginate from 'mongoose-paginate-v2';
 
 

+ 2 - 1
apps/app/src/features/openai/server/services/normalize-data/normalize-thread-relation-expired-at/normalize-thread-relation-expired-at.integ.ts

@@ -1,5 +1,6 @@
 import { faker } from '@faker-js/faker';
 import { faker } from '@faker-js/faker';
-import { addDays, subDays } from 'date-fns';
+import { addDays } from 'date-fns/addDays';
+import { subDays } from 'date-fns/subDays';
 import { Types } from 'mongoose';
 import { Types } from 'mongoose';
 
 
 import { ThreadType } from '../../../../interfaces/thread-relation';
 import { ThreadType } from '../../../../interfaces/thread-relation';

+ 1 - 1
apps/app/src/features/openai/server/services/normalize-data/normalize-thread-relation-expired-at/normalize-thread-relation-expired-at.ts

@@ -1,4 +1,4 @@
-import { addDays } from 'date-fns';
+import { addDays } from 'date-fns/addDays';
 
 
 import ThreadRelation from '../../../models/thread-relation';
 import ThreadRelation from '../../../models/thread-relation';
 
 

+ 3 - 1
apps/app/src/server/routes/apiv3/activity.ts

@@ -1,6 +1,8 @@
 import { SCOPE } from '@growi/core/dist/interfaces';
 import { SCOPE } from '@growi/core/dist/interfaces';
 import { serializeUserSecurely } from '@growi/core/dist/models/serializers';
 import { serializeUserSecurely } from '@growi/core/dist/models/serializers';
-import { addMinutes, isValid, parseISO } from 'date-fns';
+import { addMinutes } from 'date-fns/addMinutes';
+import { isValid } from 'date-fns/isValid';
+import { parseISO } from 'date-fns/parseISO';
 import type { Request, Router } from 'express';
 import type { Request, Router } from 'express';
 import express from 'express';
 import express from 'express';
 import { query } from 'express-validator';
 import { query } from 'express-validator';

+ 2 - 1
apps/app/src/server/routes/apiv3/forgot-password.js

@@ -1,6 +1,7 @@
 import { ErrorV3 } from '@growi/core/dist/models';
 import { ErrorV3 } from '@growi/core/dist/models';
 import { serializeUserSecurely } from '@growi/core/dist/models/serializers';
 import { serializeUserSecurely } from '@growi/core/dist/models/serializers';
-import { format, subSeconds } from 'date-fns';
+import { format } from 'date-fns/format';
+import { subSeconds } from 'date-fns/subSeconds';
 import { join } from 'pathe';
 import { join } from 'pathe';
 
 
 import { SupportedAction } from '~/interfaces/activity';
 import { SupportedAction } from '~/interfaces/activity';

+ 3 - 2
apps/app/src/server/routes/apiv3/user-activation.ts

@@ -1,9 +1,10 @@
+import path from 'node:path';
 import type { IUser } from '@growi/core';
 import type { IUser } from '@growi/core';
 import { ErrorV3 } from '@growi/core/dist/models';
 import { ErrorV3 } from '@growi/core/dist/models';
-import { format, subSeconds } from 'date-fns';
+import { format } from 'date-fns/format';
+import { subSeconds } from 'date-fns/subSeconds';
 import { body, validationResult } from 'express-validator';
 import { body, validationResult } from 'express-validator';
 import mongoose from 'mongoose';
 import mongoose from 'mongoose';
-import path from 'path';
 
 
 import { SupportedAction } from '~/interfaces/activity';
 import { SupportedAction } from '~/interfaces/activity';
 import { RegistrationMode } from '~/interfaces/registration-mode';
 import { RegistrationMode } from '~/interfaces/registration-mode';

+ 1 - 1
apps/app/src/utils/axios/create-custom-axios.ts

@@ -1,7 +1,7 @@
 /** biome-ignore-all lint/style/noRestrictedImports: This file provides a factory method for custom axios instance */
 /** biome-ignore-all lint/style/noRestrictedImports: This file provides a factory method for custom axios instance */
 import type { AxiosRequestConfig } from 'axios';
 import type { AxiosRequestConfig } from 'axios';
 import axios from 'axios';
 import axios from 'axios';
-import { formatISO } from 'date-fns';
+import { formatISO } from 'date-fns/formatISO';
 import qs from 'qs';
 import qs from 'qs';
 
 
 import { convertStringsToDates } from './convert-strings-to-dates';
 import { convertStringsToDates } from './convert-strings-to-dates';