@calvin_von/plugin-request-hijack
Version:
A dalao-proxy plugin for hijacking asynchronous requests to do more cool things
48 lines (45 loc) • 1.6 kB
JavaScript
const path = require("path");
const { version } = require("./package.json");
RegExp.prototype.toJSON = function () {
return this.toString();
};
/**
* @param {import('./type').HijackOptions} pluginConfig
*/
module.exports = function (program, register, pluginConfig) {
if (pluginConfig.enable) {
register.setChildPlugin(
/** child plugin name */
"@calvin_von/proxy-plugin-inject",
/** child plugin field */
"hijack__inject",
/** child plugin config */
config => ({
rules: [
{
test: config.requestHijack.page,
serves: {
"request-hijack": path.join(
__dirname,
"libs",
"request-hijack.js"
),
},
template: `\n<script>window.__hijackConfig = ${JSON.stringify(
{
version,
host: config.host,
proxyTable: config.proxyTable,
hijack: config.requestHijack,
},
null,
2
)}</script>
<script src="{{request-hijack}}"></script>\n`,
insert: "head",
},
],
})
);
}
};