forked from daren.hsu/line_push
update
This commit is contained in:
+18
@@ -0,0 +1,18 @@
|
||||
import { Module } from '@nuxt/types';
|
||||
import { Options, Filter } from 'http-proxy-middleware';
|
||||
|
||||
declare type ProxyContext = Filter | Options;
|
||||
declare type ProxyOptionsObject = {
|
||||
[target: string]: Options;
|
||||
};
|
||||
declare type ProxyOptionsArray = Array<[ProxyContext, Options?] | Options | string>;
|
||||
declare type NuxtProxyOptions = ProxyOptionsObject | ProxyOptionsArray;
|
||||
|
||||
declare module '@nuxt/types' {
|
||||
interface Configuration {
|
||||
proxy?: NuxtProxyOptions;
|
||||
}
|
||||
}
|
||||
declare const proxyModule: Module<Options>;
|
||||
|
||||
export default proxyModule;
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
'use strict';
|
||||
|
||||
const httpProxyMiddleware = require('http-proxy-middleware');
|
||||
|
||||
function getProxyEntries(proxyOptions, defaults) {
|
||||
const applyDefaults = (opts) => ({...defaults, ...opts});
|
||||
const normalizeTarget = (input) => typeof input === "object" ? input : {target: input};
|
||||
const proxyEntries = [];
|
||||
if (!proxyOptions) {
|
||||
return proxyEntries;
|
||||
}
|
||||
if (!Array.isArray(proxyOptions)) {
|
||||
for (const key in proxyOptions) {
|
||||
proxyEntries.push({
|
||||
context: key,
|
||||
options: applyDefaults(normalizeTarget(proxyOptions[key]))
|
||||
});
|
||||
}
|
||||
return proxyEntries;
|
||||
}
|
||||
for (const input of proxyOptions) {
|
||||
if (Array.isArray(input)) {
|
||||
proxyEntries.push({
|
||||
context: input[0],
|
||||
options: applyDefaults(normalizeTarget(input[1]))
|
||||
});
|
||||
} else {
|
||||
proxyEntries.push({
|
||||
context: input,
|
||||
options: applyDefaults()
|
||||
});
|
||||
}
|
||||
}
|
||||
return proxyEntries;
|
||||
}
|
||||
|
||||
const proxyModule = function(options2) {
|
||||
const nuxt = this.nuxt;
|
||||
if (!nuxt.options.server || !nuxt.options.proxy) {
|
||||
return;
|
||||
}
|
||||
const defaults = {
|
||||
changeOrigin: true,
|
||||
ws: true,
|
||||
...options2
|
||||
};
|
||||
const proxyEntries = getProxyEntries(nuxt.options.proxy, defaults);
|
||||
for (const proxyEntry of proxyEntries) {
|
||||
this.addServerMiddleware({
|
||||
prefix: false,
|
||||
handler: httpProxyMiddleware.createProxyMiddleware(proxyEntry.context, proxyEntry.options)
|
||||
});
|
||||
}
|
||||
};
|
||||
proxyModule.meta = require("../package.json");
|
||||
|
||||
module.exports = proxyModule;
|
||||
Reference in New Issue
Block a user