mirror of
https://github.com/movie-web/simple-proxy.git
synced 2025-09-13 16:43:26 +00:00
Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
5a09e0c602 | ||
|
8852fca320 | ||
|
1e147a793d | ||
|
e88a4f3203 | ||
|
7dc9d1809f | ||
|
02b4dca218 | ||
|
5faca36cb4 | ||
|
ad0ae4aaae | ||
|
07a87b4571 |
@@ -1,9 +1,13 @@
|
|||||||
import { join } from "path";
|
import { join } from "path";
|
||||||
|
import pkg from "./package.json";
|
||||||
|
|
||||||
//https://nitro.unjs.io/config
|
//https://nitro.unjs.io/config
|
||||||
export default defineNitroConfig({
|
export default defineNitroConfig({
|
||||||
noPublicDir: true,
|
noPublicDir: true,
|
||||||
srcDir: "./src",
|
srcDir: "./src",
|
||||||
|
runtimeConfig: {
|
||||||
|
version: pkg.version
|
||||||
|
},
|
||||||
alias: {
|
alias: {
|
||||||
"@": join(__dirname, "src")
|
"@": join(__dirname, "src")
|
||||||
}
|
}
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "simple-proxy",
|
"name": "simple-proxy",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "2.1.1",
|
"version": "2.1.3",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"prepare": "nitropack prepare",
|
"prepare": "nitropack prepare",
|
||||||
"dev": "nitropack dev",
|
"dev": "nitropack dev",
|
||||||
@@ -15,9 +15,9 @@
|
|||||||
"preinstall": "npx only-allow pnpm"
|
"preinstall": "npx only-allow pnpm"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"h3": "^1.9.0",
|
"h3": "^1.10.0",
|
||||||
"jose": "^5.2.0",
|
"jose": "^5.2.0",
|
||||||
"nitropack": "latest"
|
"nitropack": "^2.8.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@typescript-eslint/eslint-plugin": "^6.7.0",
|
"@typescript-eslint/eslint-plugin": "^6.7.0",
|
||||||
|
790
pnpm-lock.yaml
generated
790
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@@ -21,7 +21,9 @@ export default defineEventHandler(async (event) => {
|
|||||||
event,
|
event,
|
||||||
status: 200,
|
status: 200,
|
||||||
data: {
|
data: {
|
||||||
message: 'Proxy is working as expected',
|
message: `Proxy is working as expected (v${
|
||||||
|
useRuntimeConfig(event).version
|
||||||
|
})`,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -39,17 +41,22 @@ export default defineEventHandler(async (event) => {
|
|||||||
const token = await createTokenIfNeeded(event);
|
const token = await createTokenIfNeeded(event);
|
||||||
|
|
||||||
// proxy
|
// proxy
|
||||||
await specificProxyRequest(event, destination, {
|
try {
|
||||||
blacklistedHeaders: getBlacklistedHeaders(),
|
await specificProxyRequest(event, destination, {
|
||||||
fetchOptions: {
|
blacklistedHeaders: getBlacklistedHeaders(),
|
||||||
redirect: 'follow',
|
fetchOptions: {
|
||||||
headers: getProxyHeaders(event.headers),
|
redirect: 'follow',
|
||||||
body,
|
headers: getProxyHeaders(event.headers),
|
||||||
},
|
body,
|
||||||
onResponse(outputEvent, response) {
|
},
|
||||||
const headers = getAfterResponseHeaders(response.headers, response.url);
|
onResponse(outputEvent, response) {
|
||||||
setResponseHeaders(outputEvent, headers);
|
const headers = getAfterResponseHeaders(response.headers, response.url);
|
||||||
if (token) setTokenHeader(event, token);
|
setResponseHeaders(outputEvent, headers);
|
||||||
},
|
if (token) setTokenHeader(event, token);
|
||||||
});
|
},
|
||||||
|
});
|
||||||
|
} catch (e) {
|
||||||
|
console.log('Error fetching', e);
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
@@ -12,11 +12,15 @@ const blacklistedHeaders = [
|
|||||||
'cf-ray',
|
'cf-ray',
|
||||||
'cf-visitor',
|
'cf-visitor',
|
||||||
'cf-ew-via',
|
'cf-ew-via',
|
||||||
|
'cdn-loop',
|
||||||
|
'x-amzn-trace-id',
|
||||||
|
'cf-ipcountry',
|
||||||
'x-forwarded-for',
|
'x-forwarded-for',
|
||||||
'x-forwarded-host',
|
'x-forwarded-host',
|
||||||
'x-forwarded-proto',
|
'x-forwarded-proto',
|
||||||
'forwarded',
|
'forwarded',
|
||||||
'x-real-ip',
|
'x-real-ip',
|
||||||
|
'content-length',
|
||||||
...Object.keys(headerMap),
|
...Object.keys(headerMap),
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@@ -69,7 +69,15 @@ export async function specificProxyRequest(
|
|||||||
opts.fetchOptions?.headers,
|
opts.fetchOptions?.headers,
|
||||||
opts.headers,
|
opts.headers,
|
||||||
);
|
);
|
||||||
(fetchHeaders.forEach as any)(console.log);
|
const headerObj = Object.fromEntries([...(fetchHeaders.entries as any)()]);
|
||||||
|
if (process.env.REQ_DEBUG === 'true') {
|
||||||
|
console.log({
|
||||||
|
type: 'request',
|
||||||
|
method,
|
||||||
|
url: target,
|
||||||
|
headers: headerObj,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
return sendProxy(event, target, {
|
return sendProxy(event, target, {
|
||||||
...opts,
|
...opts,
|
||||||
|
Reference in New Issue
Block a user