From c08f3a7d6692bf021f2e720e54e2853187f9bbf2 Mon Sep 17 00:00:00 2001 From: Archimedes Trajano Date: Fri, 23 Dec 2022 13:38:54 -0500 Subject: [PATCH] Used per package imports for lodash Per https://lodash.com/per-method-packages if you import or require methods directly, e.g. const throttle = require('lodash/throttle'), only the subset of lodash code your package uses will be bundled in projects that use your package. https://github.com/fnando/i18n/pull/41 also has done it and had a measurable decrease --- package.json | 2 +- src/debounce.test.ts | 2 +- src/usePolling/usePollingIfError.test.tsx | 2 +- src/useStates/useDebouncedDeepState.ts | 2 +- src/useStates/useDebouncedState.ts | 2 +- src/useStates/useDeepState.ts | 4 ++-- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 70a86b2..7673893 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "react": "18", "react-dom": "18", "react-scripts": "^5.0.1", - "typedoc": "^0.23.22", + "typedoc": "^0.23.23", "typescript": "^4.9.4" }, "eslintConfig": { diff --git a/src/debounce.test.ts b/src/debounce.test.ts index e9c8bab..e7c1f2e 100644 --- a/src/debounce.test.ts +++ b/src/debounce.test.ts @@ -1,4 +1,4 @@ -import { debounce } from "lodash"; +import { debounce } from "lodash/debounce"; describe("debounce", () => { beforeEach(() => { jest.useFakeTimers("modern"); diff --git a/src/usePolling/usePollingIfError.test.tsx b/src/usePolling/usePollingIfError.test.tsx index 27ff821..c35c211 100644 --- a/src/usePolling/usePollingIfError.test.tsx +++ b/src/usePolling/usePollingIfError.test.tsx @@ -2,7 +2,7 @@ * @jest-environment jsdom */ import { render, waitFor } from '@testing-library/react'; -import { noop } from 'lodash'; +import noop from 'lodash/noop'; import React from 'react'; import { usePollingIf } from './usePollingIf'; diff --git a/src/useStates/useDebouncedDeepState.ts b/src/useStates/useDebouncedDeepState.ts index 40bcafb..8f31fb5 100644 --- a/src/useStates/useDebouncedDeepState.ts +++ b/src/useStates/useDebouncedDeepState.ts @@ -1,4 +1,4 @@ -import { debounce } from "lodash"; +import debounce from "lodash/debounce"; import { Dispatch, useCallback, useEffect } from "react"; import { useDeepState } from "./useDeepState"; diff --git a/src/useStates/useDebouncedState.ts b/src/useStates/useDebouncedState.ts index 0fba87a..9201864 100644 --- a/src/useStates/useDebouncedState.ts +++ b/src/useStates/useDebouncedState.ts @@ -1,4 +1,4 @@ -import { debounce } from "lodash"; +import debounce from "lodash/debounce"; import { Dispatch, useCallback, useEffect, useState } from "react"; /** diff --git a/src/useStates/useDeepState.ts b/src/useStates/useDeepState.ts index 044beff..3656555 100644 --- a/src/useStates/useDeepState.ts +++ b/src/useStates/useDeepState.ts @@ -1,4 +1,4 @@ -import { isEqual } from "lodash"; +import isEqual from "lodash/isequal"; import { Dispatch, useReducer } from "react"; /** @@ -12,7 +12,7 @@ import { Dispatch, useReducer } from "react"; export function useDeepState(initialState: S | (() => S)): [S, Dispatch] { const initialStateIsFunction = typeof initialState === "function"; return useReducer( - (state: S, newState: S) => isEqual(state, newState) ? state : newState, + (state: S, newState: S) => (isEqual(state, newState) ? state : newState), initialStateIsFunction ? (null as unknown as S) : initialState, initialStateIsFunction ? (initialState as () => S)