Skip to content

Commit 57c9179

Browse files
committed
add playground
1 parent 77b3153 commit 57c9179

File tree

9 files changed

+46
-20
lines changed

9 files changed

+46
-20
lines changed

middleware.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
export * from './dist/runtime/server'
1+
export * from './dist/runtime/middleware'

package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,12 @@
3737
"scripts": {
3838
"prepublishOnly": "nr build",
3939
"build": "nuxt-module-build",
40+
"play": "nr build && nuxi dev playground",
41+
"build:playground": "nuxi build playground",
4042
"lint": "eslint .",
4143
"lint:fix": "eslint . --fix",
42-
"release": "bumpp --commit --push --tag && npm publish"
44+
"release": "bumpp --commit --push --tag && npm publish",
45+
"prepare": "nr build && nuxi prepare playground"
4346
},
4447
"peerDependencies": {
4548
"http-proxy-middleware": ">=3.0.0"
@@ -48,6 +51,7 @@
4851
"@nuxt/kit": "^3.0.0-rc.3",
4952
"dedent": "^0.7.0",
5053
"defu": "^6.0.0",
54+
"h3": "^0.7.9",
5155
"http-proxy-middleware": "^3.0.0-beta.0",
5256
"pathe": "^0.3.0"
5357
},

playground/app.vue

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<template>
2+
<div>
3+
Hello world
4+
</div>
5+
</template>

playground/nuxt.config.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { defineNuxtConfig } from 'nuxt'
2+
3+
// https://v3.nuxtjs.org/api/configuration/nuxt.config
4+
export default defineNuxtConfig({
5+
modules: ['nuxt-proxy'],
6+
proxy: {
7+
target: 'https://jsonplaceholder.typicode.com',
8+
changeOrigin: true,
9+
pathRewrite: {
10+
'^/api/todos': '/todos',
11+
'^/api/users': '/users',
12+
},
13+
pathFilter: [
14+
'/api/todos',
15+
'/api/users',
16+
],
17+
},
18+
})

playground/package.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"name": "playground",
3+
"private": true,
4+
"dependencies": {
5+
"nuxt-proxy": "workspace:*"
6+
}
7+
}

pnpm-lock.yaml

Lines changed: 2 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pnpm-workspace.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
packages:
2+
- playground/*

src/module.ts

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,23 @@
11
import { fileURLToPath } from 'url'
2-
import { addServerHandler, addTemplate, defineNuxtModule, useLogger } from '@nuxt/kit'
2+
import { addServerHandler, addTemplate, defineNuxtModule } from '@nuxt/kit'
33
import type { Options } from 'http-proxy-middleware'
4-
import { resolve } from 'pathe'
4+
import { join } from 'pathe'
55
import { defu } from 'defu'
66
// @ts-expect-error: No types
77
import dedent from 'dedent'
88

9-
const logger = useLogger('nuxt-proxy')
10-
119
export default defineNuxtModule<Options>({
1210
meta: {
1311
name: 'nuxt-proxy',
1412
configKey: 'proxy',
1513
},
16-
defaults: {
17-
logger,
18-
changeOrigin: true,
19-
},
14+
defaults: {},
2015
setup(options, nuxt) {
2116
const runtimeDir = fileURLToPath(new URL('./runtime', import.meta.url))
2217
nuxt.options.build.transpile.push(runtimeDir, '#build/proxy-handler')
2318

2419
// Final resolved configuration
25-
const finalConfig = nuxt.options.runtimeConfig.proxy = defu(nuxt.options.runtimeConfig.proxy, {
26-
logger: options.logger,
27-
changeOrigin: options.changeOrigin,
28-
...options,
29-
})
20+
const finalConfig = nuxt.options.runtimeConfig.proxy = defu(nuxt.options.runtimeConfig.proxy, options)
3021

3122
addTemplate({
3223
filename: 'proxy-handler.ts',
@@ -39,7 +30,7 @@ export default defineNuxtModule<Options>({
3930
})
4031

4132
addServerHandler({
42-
handler: resolve(nuxt.options.buildDir, 'proxy-handler.ts'),
33+
handler: join(nuxt.options.buildDir, 'proxy-handler.ts'),
4334
middleware: true,
4435
})
4536
},

src/runtime/middleware.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import type { Options } from 'http-proxy-middleware'
2+
import { defineEventHandler } from 'h3'
23
import { createProxyMiddleware as _createProxyMiddleware } from 'http-proxy-middleware'
34

45
export function createProxyMiddleware(options: Options) {
56
const proxyMiddleware = _createProxyMiddleware(options)
67

7-
// @ts-expect-error: Resolved by Nuxt
88
return defineEventHandler(async (event) => {
99
await new Promise((resolve, reject) => {
1010
proxyMiddleware(event.req, event.res, (err?: unknown) => {

0 commit comments

Comments
 (0)