summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Bjorn Lu <bjornlu.dev@gmail.com> 2024-12-13 07:50:00 +0100
committerGravatar GitHub <noreply@github.com> 2024-12-13 07:50:00 +0100
commitb6abc149e763d786e0bd5f90248e3d22256594d4 (patch)
tree346505bec931397cc62510191f4c4dc8e170c971
parent9e5c6174790027afd52fa51d562e000dc46bc46e (diff)
downloadastro-b6abc149e763d786e0bd5f90248e3d22256594d4.tar.gz
astro-b6abc149e763d786e0bd5f90248e3d22256594d4.tar.zst
astro-b6abc149e763d786e0bd5f90248e3d22256594d4.zip
fix: cloudflare resolve conditions (#476)
-rw-r--r--packages/integrations/cloudflare/src/index.ts4
-rw-r--r--packages/integrations/cloudflare/test/fixtures/with-vue/astro.config.mjs9
-rw-r--r--packages/integrations/cloudflare/test/fixtures/with-vue/package.json11
-rw-r--r--packages/integrations/cloudflare/test/fixtures/with-vue/src/components/Component.vue3
-rw-r--r--packages/integrations/cloudflare/test/fixtures/with-vue/src/pages/index.astro13
-rw-r--r--packages/integrations/cloudflare/test/with-vue.test.js37
6 files changed, 75 insertions, 2 deletions
diff --git a/packages/integrations/cloudflare/src/index.ts b/packages/integrations/cloudflare/src/index.ts
index a7242cfca..3193683c2 100644
--- a/packages/integrations/cloudflare/src/index.ts
+++ b/packages/integrations/cloudflare/src/index.ts
@@ -12,7 +12,7 @@ import {
import { createRedirectsFromAstroRoutes } from '@astrojs/underscore-redirects';
import astroWhen from '@inox-tools/astro-when';
import { AstroError } from 'astro/errors';
-import { defaultServerConditions } from 'vite';
+import { defaultClientConditions } from 'vite';
import { type GetPlatformProxyOptions, getPlatformProxy } from 'wrangler';
import {
type CloudflareModulePluginExtra,
@@ -223,7 +223,7 @@ export default function createIntegration(args?: Options): AstroIntegration {
// (previously supported in esbuild instead: https://github.com/withastro/astro/pull/7092)
vite.ssr ||= {};
vite.ssr.resolve ||= {};
- vite.ssr.resolve.conditions ||= [...defaultServerConditions];
+ vite.ssr.resolve.conditions ||= [...defaultClientConditions];
vite.ssr.resolve.conditions.push('workerd', 'worker');
vite.ssr.target = 'webworker';
diff --git a/packages/integrations/cloudflare/test/fixtures/with-vue/astro.config.mjs b/packages/integrations/cloudflare/test/fixtures/with-vue/astro.config.mjs
new file mode 100644
index 000000000..4a4fbd8a4
--- /dev/null
+++ b/packages/integrations/cloudflare/test/fixtures/with-vue/astro.config.mjs
@@ -0,0 +1,9 @@
+import cloudflare from '@astrojs/cloudflare';
+import vue from "@astrojs/vue";
+import { defineConfig } from 'astro/config';
+
+export default defineConfig({
+ integrations: [vue()],
+ adapter: cloudflare(),
+ output: 'server',
+});
diff --git a/packages/integrations/cloudflare/test/fixtures/with-vue/package.json b/packages/integrations/cloudflare/test/fixtures/with-vue/package.json
new file mode 100644
index 000000000..bbf7b5319
--- /dev/null
+++ b/packages/integrations/cloudflare/test/fixtures/with-vue/package.json
@@ -0,0 +1,11 @@
+{
+ "name": "@test/astro-cloudflare-with-vue",
+ "version": "0.0.0",
+ "private": true,
+ "dependencies": {
+ "@astrojs/cloudflare": "workspace:*",
+ "@astrojs/vue": "^5.0.1",
+ "astro": "^5.0.0",
+ "vue": "^3.5.13"
+ }
+}
diff --git a/packages/integrations/cloudflare/test/fixtures/with-vue/src/components/Component.vue b/packages/integrations/cloudflare/test/fixtures/with-vue/src/components/Component.vue
new file mode 100644
index 000000000..70630a9a4
--- /dev/null
+++ b/packages/integrations/cloudflare/test/fixtures/with-vue/src/components/Component.vue
@@ -0,0 +1,3 @@
+<template>
+ <div class="vue">Vue Content</div>
+</template>
diff --git a/packages/integrations/cloudflare/test/fixtures/with-vue/src/pages/index.astro b/packages/integrations/cloudflare/test/fixtures/with-vue/src/pages/index.astro
new file mode 100644
index 000000000..fc04d52ac
--- /dev/null
+++ b/packages/integrations/cloudflare/test/fixtures/with-vue/src/pages/index.astro
@@ -0,0 +1,13 @@
+---
+import Component from '../components/Component.vue';
+---
+
+<html>
+<head>
+ <title>Testing</title>
+</head>
+<body>
+<h1>Testing</h1>
+<Component />
+</body>
+</html>
diff --git a/packages/integrations/cloudflare/test/with-vue.test.js b/packages/integrations/cloudflare/test/with-vue.test.js
new file mode 100644
index 000000000..60e210750
--- /dev/null
+++ b/packages/integrations/cloudflare/test/with-vue.test.js
@@ -0,0 +1,37 @@
+import * as assert from 'node:assert/strict';
+import { after, before, describe, it } from 'node:test';
+import { fileURLToPath } from 'node:url';
+import * as cheerio from 'cheerio';
+import { astroCli, wranglerCli } from './_test-utils.js';
+
+const root = new URL('./fixtures/with-vue/', import.meta.url);
+
+describe('Vue', () => {
+ let wrangler;
+ before(async () => {
+ await astroCli(fileURLToPath(root), 'build');
+
+ wrangler = wranglerCli(fileURLToPath(root));
+ await new Promise((resolve) => {
+ wrangler.stdout.on('data', (data) => {
+ // console.log('[stdout]', data.toString());
+ if (data.toString().includes('http://127.0.0.1:8788')) resolve();
+ });
+ wrangler.stderr.on('data', (data) => {
+ // console.log('[stderr]', data.toString());
+ });
+ });
+ });
+
+ after((done) => {
+ wrangler.kill();
+ });
+
+ it('renders the vue component', async () => {
+ const res = await fetch('http://127.0.0.1:8788/');
+ assert.equal(res.status, 200);
+ const html = await res.text();
+ const $ = cheerio.load(html);
+ assert.equal($('.vue').text(), 'Vue Content');
+ });
+});