diff --git a/examples/web-worker/e2e/basic.test.ts b/examples/web-worker/e2e/basic.test.ts index 09221dc..228fd87 100644 --- a/examples/web-worker/e2e/basic.test.ts +++ b/examples/web-worker/e2e/basic.test.ts @@ -2,7 +2,7 @@ import { expect, test } from "@playwright/test"; test("basic", async ({ page }) => { await page.goto("/"); - await expect(page.getByTestId("worker-message")).toContainText( + await expect(page.getByTestId("worker")).toContainText( "Rendered in web worker", ); }); @@ -19,7 +19,17 @@ test("erorr stack", async ({ page }) => { test("worker in worker", async ({ page }) => { await page.goto("/?worker-in-worker"); - await expect(page.getByTestId("worker-message")).toContainText( + await expect(page.getByTestId("worker")).toContainText( "Rendered in web worker in web worker", ); }); + +test("condition", async ({ page }) => { + await page.goto("/"); + await expect(page.getByTestId("client")).toContainText( + "test-dep-conditions: index.browser.js", + ); + await expect(page.getByTestId("worker")).toContainText( + "test-dep-conditions: index.worker.js", + ); +}); diff --git a/examples/web-worker/fixtures/test-dep-conditions/index.browser.js b/examples/web-worker/fixtures/test-dep-conditions/index.browser.js new file mode 100644 index 0000000..fa4a800 --- /dev/null +++ b/examples/web-worker/fixtures/test-dep-conditions/index.browser.js @@ -0,0 +1 @@ +export default "index.browser.js"; diff --git a/examples/web-worker/fixtures/test-dep-conditions/index.d.ts b/examples/web-worker/fixtures/test-dep-conditions/index.d.ts new file mode 100644 index 0000000..e95dc15 --- /dev/null +++ b/examples/web-worker/fixtures/test-dep-conditions/index.d.ts @@ -0,0 +1,2 @@ +declare const value: string; +export default value; diff --git a/examples/web-worker/fixtures/test-dep-conditions/index.js b/examples/web-worker/fixtures/test-dep-conditions/index.js new file mode 100644 index 0000000..4ab8d2e --- /dev/null +++ b/examples/web-worker/fixtures/test-dep-conditions/index.js @@ -0,0 +1 @@ +export default "index.js"; diff --git a/examples/web-worker/fixtures/test-dep-conditions/index.worker.js b/examples/web-worker/fixtures/test-dep-conditions/index.worker.js new file mode 100644 index 0000000..260be01 --- /dev/null +++ b/examples/web-worker/fixtures/test-dep-conditions/index.worker.js @@ -0,0 +1 @@ +export default "index.worker.js"; diff --git a/examples/web-worker/fixtures/test-dep-conditions/package.json b/examples/web-worker/fixtures/test-dep-conditions/package.json new file mode 100644 index 0000000..41fbdff --- /dev/null +++ b/examples/web-worker/fixtures/test-dep-conditions/package.json @@ -0,0 +1,13 @@ +{ + "name": "test-dep-browser-or-worker", + "private": true, + "type": "module", + "exports": { + ".": { + "types": "./index.d.ts", + "worker": "./index.worker.js", + "browser": "./index.browser.js", + "default": "./index.js" + } + } +} diff --git a/examples/web-worker/package.json b/examples/web-worker/package.json index b085359..f140541 100644 --- a/examples/web-worker/package.json +++ b/examples/web-worker/package.json @@ -9,7 +9,9 @@ "test-e2e": "playwright test", "test-e2e-preview": "E2E_PREVIEW=1 playwright test" }, - "dependencies": {}, + "dependencies": { + "test-dep-conditions": "file:./fixtures/test-dep-conditions" + }, "devDependencies": {}, "volta": { "extends": "../../package.json" diff --git a/examples/web-worker/src/app.tsx b/examples/web-worker/src/app.tsx index 75d17da..7cb0751 100644 --- a/examples/web-worker/src/app.tsx +++ b/examples/web-worker/src/app.tsx @@ -1,4 +1,5 @@ import React from "react"; +import depCondition from "test-dep-conditions"; import workerUrl from "./worker/entry?worker-runner"; export function App() { @@ -36,14 +37,18 @@ export function App() { return (
-
Count: {count}
- - +
+

Client

+
Count: {count}
+ + +
test-dep-conditions: {depCondition}
+

-
+
+

Worker

+
+
); } diff --git a/examples/web-worker/src/worker/dep.tsx b/examples/web-worker/src/worker/dep.tsx index c332443..a42ee12 100644 --- a/examples/web-worker/src/worker/dep.tsx +++ b/examples/web-worker/src/worker/dep.tsx @@ -1 +1 @@ -export default "dep-ok"; +export default "user-dep-ok"; diff --git a/examples/web-worker/src/worker/entry.tsx b/examples/web-worker/src/worker/entry.tsx index c0a4067..b7509d7 100644 --- a/examples/web-worker/src/worker/entry.tsx +++ b/examples/web-worker/src/worker/entry.tsx @@ -1,4 +1,5 @@ import ReactDomServer from "react-dom/server"; +import depCondition from "test-dep-conditions"; import dep from "./dep"; import { depThrowError } from "./dep-error"; import workerInWorkerUrl from "./worker-in-worker?worker-runner"; @@ -9,6 +10,7 @@ self.addEventListener("message", (e) => {
Rendered in web worker
{dep}
+
test-dep-conditions: {depCondition}
); const result = ReactDomServer.renderToString(root); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b2ba6d6..5e94cec 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -160,7 +160,11 @@ importers: specifier: ^2.0.26 version: 2.0.26(typescript@5.5.3) - examples/web-worker: {} + examples/web-worker: + dependencies: + test-dep-conditions: + specifier: file:./fixtures/test-dep-conditions + version: test-dep-browser-or-worker@file:examples/web-worker/fixtures/test-dep-conditions examples/web-worker-rsc: {} @@ -2547,6 +2551,9 @@ packages: engines: {node: '>=10'} hasBin: true + test-dep-browser-or-worker@file:examples/web-worker/fixtures/test-dep-conditions: + resolution: {directory: examples/web-worker/fixtures/test-dep-conditions, type: directory} + thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} @@ -5070,6 +5077,8 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 + test-dep-browser-or-worker@file:examples/web-worker/fixtures/test-dep-conditions: {} + thenify-all@1.6.0: dependencies: thenify: 3.3.1