Skip to content

Commit e8c48d2

Browse files
authored
fix: make adapter as option (#3)
1 parent 2037b47 commit e8c48d2

File tree

5 files changed

+37
-5
lines changed

5 files changed

+37
-5
lines changed

README.md

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,26 @@ export default app
6868

6969
## Cloudflare Pages
7070

71-
To support Cloudflare Pages, you can write the following handler on `functions/[[path]].ts`:
71+
To support Cloudflare Pages, add the adapter in `@hono/vite-dev-server` for development.
72+
73+
```ts
74+
// vite.config.ts
75+
import adapter from '@hono/vite-dev-server/cloudflare'
76+
import serverAdapter from 'hono-remix-adapter/vite'
77+
78+
export default defineConfig({
79+
plugins: [
80+
// ...
81+
remix(),
82+
serverAdapter({
83+
adapter, // Add Cloudflare Pages adapter
84+
entry: 'server/index.ts',
85+
}),
86+
],
87+
})
88+
```
89+
90+
To deploy it, you can write the following handler on `functions/[[path]].ts`:
7291

7392
```ts
7493
// functions/[[path]].ts

example/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
},
2424
"devDependencies": {
2525
"@cloudflare/workers-types": "^4.20240903.0",
26+
"@hono/vite-dev-server": "^0.16.0",
2627
"@playwright/test": "^1.47.0",
2728
"@remix-run/dev": "^2.11.1",
2829
"@types/react": "^18.2.20",
@@ -36,4 +37,4 @@
3637
"engines": {
3738
"node": ">=20.0.0"
3839
}
39-
}
40+
}

example/vite.config.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
// vite.config.ts
2+
import adapter from '@hono/vite-dev-server/cloudflare'
23
import {
34
vitePlugin as remix,
45
cloudflareDevProxyVitePlugin as remixCloudflareDevProxy,
56
} from '@remix-run/dev'
7+
import serverAdapter from 'hono-remix-adapter/vite'
68
import { defineConfig } from 'vite'
79
import tsconfigPaths from 'vite-tsconfig-paths'
8-
import serverAdapter from 'hono-remix-adapter/vite'
910

1011
export default defineConfig({
1112
plugins: [
@@ -18,6 +19,7 @@ export default defineConfig({
1819
},
1920
}),
2021
serverAdapter({
22+
adapter,
2123
entry: 'server/index.ts',
2224
}),
2325
tsconfigPaths(),

package-lock.json

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/vite-plugin.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,27 @@
11
import devServer, { defaultOptions } from '@hono/vite-dev-server'
2-
import adapter from '@hono/vite-dev-server/cloudflare'
32
import type { Hono } from 'hono'
43
import type { Plugin } from 'vite'
54
import fs from 'node:fs'
65
import path from 'node:path'
76
import { fileURLToPath } from 'node:url'
87

8+
interface Adapter {
9+
env?: Record<string, unknown> | Promise<Record<string, unknown>>
10+
onServerClose?: () => Promise<void>
11+
executionContext?: {
12+
waitUntil(promise: Promise<unknown>): void
13+
passThroughOnException(): void
14+
}
15+
}
16+
917
interface Options {
1018
entry: string
19+
adapter?: () => Adapter | Promise<Adapter>
1120
}
1221

1322
export default (options: Options): Plugin => {
1423
return devServer({
15-
adapter,
24+
adapter: options?.adapter,
1625
entry: options.entry,
1726
exclude: [...defaultOptions.exclude, '/assets/**', '/app/**'],
1827
injectClientScript: false,

0 commit comments

Comments
 (0)