diff options
author | 2022-04-20 17:17:11 -0400 | |
---|---|---|
committer | 2022-04-20 17:17:11 -0400 | |
commit | 700d4f9649b72e98a56586a480e6d3c413cf45f1 (patch) | |
tree | af69b638d0e7de89357cbfbdcb5508c7162e0f39 /packages/integrations/netlify | |
parent | 12f6b6099810f3f56e5ca956c84216725a6d777c (diff) | |
download | astro-700d4f9649b72e98a56586a480e6d3c413cf45f1.tar.gz astro-700d4f9649b72e98a56586a480e6d3c413cf45f1.tar.zst astro-700d4f9649b72e98a56586a480e6d3c413cf45f1.zip |
Fixes using React.lazy and Suspense
Diffstat (limited to 'packages/integrations/netlify')
8 files changed, 38 insertions, 2 deletions
diff --git a/packages/integrations/netlify/src/integration-edge-functions.ts b/packages/integrations/netlify/src/integration-edge-functions.ts index 0165c7831..991838312 100644 --- a/packages/integrations/netlify/src/integration-edge-functions.ts +++ b/packages/integrations/netlify/src/integration-edge-functions.ts @@ -86,6 +86,9 @@ export function netlifyEdgeFunctions({ dist }: NetlifyEdgeFunctionsOptions = {}) }, 'astro:build:setup': ({ vite, target }) => { if (target === 'server') { + vite.resolve = vite.resolve || {}; + vite.resolve.alias = vite.resolve.alias || {}; + vite.resolve.alias['react-dom/server'] = 'react-dom/server.browser' vite.ssr = { noExternal: true, }; diff --git a/packages/integrations/netlify/test/edge-functions/deps.ts b/packages/integrations/netlify/test/edge-functions/deps.ts index f3e46181a..1b23a94f7 100644 --- a/packages/integrations/netlify/test/edge-functions/deps.ts +++ b/packages/integrations/netlify/test/edge-functions/deps.ts @@ -1,3 +1,4 @@ // @ts-nocheck export { fromFileUrl } from 'https://deno.land/std@0.110.0/path/mod.ts'; export { assertEquals, assert } from 'https://deno.land/std@0.132.0/testing/asserts.ts'; +export * from 'https://deno.land/x/deno_dom/deno-dom-wasm.ts'; diff --git a/packages/integrations/netlify/test/edge-functions/edge-basic.test.ts b/packages/integrations/netlify/test/edge-functions/edge-basic.test.ts index 7fc8877bd..0b29fc1a9 100644 --- a/packages/integrations/netlify/test/edge-functions/edge-basic.test.ts +++ b/packages/integrations/netlify/test/edge-functions/edge-basic.test.ts @@ -1,7 +1,7 @@ // @ts-ignore import { runBuild } from './test-utils.ts'; // @ts-ignore -import { assertEquals, assert } from './deps.ts'; +import { assertEquals, assert, DOMParser } from './deps.ts'; // @ts-ignore Deno.test({ @@ -9,12 +9,17 @@ Deno.test({ async fn() { let close = await runBuild('./fixtures/edge-basic/'); const { default: handler } = await import( - './fixtures/edge-basic/dist/edge-functions/entry.mjs' + './fixtures/edge-basic/dist/edge-functions/entry.js' ); const response = await handler(new Request('http://example.com/')); assertEquals(response.status, 200); const html = await response.text(); assert(html, 'got some html'); + + const doc = new DOMParser().parseFromString(html, `text/html`)!; + const div = doc.querySelector('#react'); + assert(div, 'div exists'); + await close(); }, }); diff --git a/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/.netlify/edge-functions/manifest.json b/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/.netlify/edge-functions/manifest.json new file mode 100644 index 000000000..f49242402 --- /dev/null +++ b/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/.netlify/edge-functions/manifest.json @@ -0,0 +1,13 @@ +{ + "functions": [ + { + "function": "entry", + "path": "/" + }, + { + "function": "entry", + "path": "/two" + } + ], + "version": 1 +}
\ No newline at end of file diff --git a/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/astro.config.mjs b/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/astro.config.mjs index c55135e43..d7c899264 100644 --- a/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/astro.config.mjs +++ b/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/astro.config.mjs @@ -1,10 +1,12 @@ import { defineConfig } from 'astro/config'; import { netlifyEdgeFunctions } from '@astrojs/netlify'; +import react from "@astrojs/react"; export default defineConfig({ adapter: netlifyEdgeFunctions({ dist: new URL('./dist/', import.meta.url), }), + integrations: [react()], experimental: { ssr: true } diff --git a/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/package.json b/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/package.json index bbda2476b..16ff30088 100644 --- a/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/package.json +++ b/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/package.json @@ -4,6 +4,7 @@ "private": true, "dependencies": { "astro": "workspace:*", + "@astrojs/react": "workspace:*", "@astrojs/netlify": "workspace:*" } } diff --git a/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/src/components/React.jsx b/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/src/components/React.jsx new file mode 100644 index 000000000..c6cf39aa5 --- /dev/null +++ b/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/src/components/React.jsx @@ -0,0 +1,7 @@ +import React from 'react'; + +export default function() { + return ( + <div id="react">testing</div> + ) +} diff --git a/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/src/pages/index.astro b/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/src/pages/index.astro index a87de65db..80d2eed75 100644 --- a/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/src/pages/index.astro +++ b/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/src/pages/index.astro @@ -1,3 +1,6 @@ +--- +import ReactComponent from '../components/React.jsx'; +--- <html> <head><title>Testing</title></head> <body> @@ -6,5 +9,6 @@ <ul> <li><a href="/two/">Two</a></li> </ul> + <ReactComponent /> </body> </html> |