From d6c4b1492b3df559b16c940e095121546b9f4b75 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 4 Apr 2024 08:52:49 +0200 Subject: [PATCH] build(deps-dev): bump vite from 3.2.8 to 3.2.10 (#30) Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 3.2.8 to 3.2.10. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v3.2.10/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v3.2.10/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/main.yml | 23 +++++++++++++++++++++++ package-lock.json | 12 ++++++------ package.json | 2 +- src/useDisposable.test.ts | 6 ++++-- src/useIsStrictMode.ts | 20 ++++++++++++++++---- 5 files changed, 50 insertions(+), 13 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 5bc4595..1d1ce99 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -26,3 +26,26 @@ jobs: run: | git status --porcelain git diff-index --quiet HEAD -- || exit 1 + + compat: + strategy: + matrix: + # rc tag should be react 19 release candidate + react: [18, rc] + env: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + name: Checkout [main] + with: + fetch-depth: 0 + - name: Setup node + uses: actions/setup-node@v3.5.1 + with: + node-version: 16.x + - run: npm install + - run: npm install react@${{matrix.react}} react-dom@${{matrix.react}} --force + - run: npm run test:ci + env: + REACT_VERSION: ${{matrix.react}} + - run: npm run build \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 41d84ba..48df6da 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7865,9 +7865,9 @@ "dev": true }, "node_modules/vite": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.8.tgz", - "integrity": "sha512-EtQU16PLIJpAZol2cTLttNP1mX6L0SyI0pgQB1VOoWeQnMSvtiwovV3D6NcjN8CZQWWyESD2v5NGnpz5RvgOZA==", + "version": "3.2.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.10.tgz", + "integrity": "sha512-Dx3olBo/ODNiMVk/cA5Yft9Ws+snLOXrhLtrI3F4XLt4syz2Yg8fayZMWScPKoz12v5BUv7VEmQHnsfpY80fYw==", "dev": true, "dependencies": { "esbuild": "^0.15.9", @@ -14119,9 +14119,9 @@ "dev": true }, "vite": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.8.tgz", - "integrity": "sha512-EtQU16PLIJpAZol2cTLttNP1mX6L0SyI0pgQB1VOoWeQnMSvtiwovV3D6NcjN8CZQWWyESD2v5NGnpz5RvgOZA==", + "version": "3.2.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.10.tgz", + "integrity": "sha512-Dx3olBo/ODNiMVk/cA5Yft9Ws+snLOXrhLtrI3F4XLt4syz2Yg8fayZMWScPKoz12v5BUv7VEmQHnsfpY80fYw==", "dev": true, "requires": { "esbuild": "^0.15.9", diff --git a/package.json b/package.json index 5913766..903232a 100644 --- a/package.json +++ b/package.json @@ -46,6 +46,6 @@ "release-it": "^15.5.1", "tsup": "^6.5.0", "typescript": "^4.9.4", - "vitest": "^0.25.6" + "vitest": "^1.6.0" } } diff --git a/src/useDisposable.test.ts b/src/useDisposable.test.ts index 7e5ec7f..fb46c50 100644 --- a/src/useDisposable.test.ts +++ b/src/useDisposable.test.ts @@ -3,6 +3,8 @@ import { renderHook } from "@testing-library/react"; import * as React from "react"; import { useDisposable } from "./useDisposable"; +const _maybe_it = process.env.REACT_VERSION === "rc" ? it.skip : it; + describe("useDisposable", () => { describe("in strict mode", () => { it("should call factory once during mount", () => { @@ -23,7 +25,7 @@ describe("useDisposable", () => { expect(dispose).toHaveBeenCalledTimes(0); }); - it("should call dispose on unmount", () => { + _maybe_it("should call dispose on unmount", () => { const dispose = vi.fn(); const { unmount } = renderHook( () => useDisposable(() => ["foo", dispose], []), @@ -37,7 +39,7 @@ describe("useDisposable", () => { expect(dispose).toHaveBeenCalledTimes(1); }); - it("should call dispose and call factory if dependencies update", () => { + _maybe_it("should call dispose and call factory if dependencies update", () => { const dispose = vi.fn(); const factory = vi.fn().mockReturnValue(["foo", dispose]); let dep = "foo"; diff --git a/src/useIsStrictMode.ts b/src/useIsStrictMode.ts index 5cd5540..a61ad52 100644 --- a/src/useIsStrictMode.ts +++ b/src/useIsStrictMode.ts @@ -3,10 +3,22 @@ import * as React from "react"; /** * @returns Current react fiber being rendered */ -export const getCurrentOwner = () => - // @ts-ignore - using react internals - React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner - .current; +export const getCurrentOwner = () => { + try { + // React 19 + // @ts-ignore - using react internals + return React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.A.getOwner(); + } catch {} + + try { + // React <18 + // @ts-ignore - using react internals + return React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED + .ReactCurrentOwner.current; + } catch { + console.error("use-disposable: failed to get current fiber, please report this bug to maintainers"); + } +}; const REACT_STRICT_MODE_TYPE = /*#__PURE__*/ Symbol.for("react.strict_mode");