BetterDiscordApp-rauenzi/preload/src/api/index.js

44 lines
1.6 KiB
JavaScript

import fs from "fs";
import path from "path";
import Module from "module";
// const Module = require("module");
Module.globalPaths.push(path.resolve(process.env.DISCORD_APP_PATH, "..", "app.asar", "node_modules"));
// module.paths.push(path.resolve(process.env.DISCORD_APP_PATH, "..", "app.asar", "node_modules"));
Module._load = (load => (req, parent, isMain) => {
if (req.includes("./") || req.includes("..")) return load(req, parent, isMain);
const found = Module.globalPaths.find(m => fs.existsSync(path.resolve(m, req)));
return found ? load(path.resolve(found, req), parent, isMain) : load(req, parent, isMain);
})(Module._load);
// const originalLoad = Module.prototype.load;
// Module.prototype.load = function() {
// const returnValue = Reflect.apply(originalLoad, this, arguments);
// console.log(this, arguments, returnValue);
// return returnValue;
// };
// const nodeModulePaths = Module._nodeModulePaths;
// console.log(nodeModulePaths);
// Module._nodeModulePaths = (from) => {
// return nodeModulePaths(from).concat([path.resolve(process.env.DISCORD_APP_PATH, "..", "app.asar", "node_modules")]);
// };
// console.log(Module._nodeModulePaths, Module._nodeModulePaths("request"));
// console.dir(Module);
// console.log(Object.keys(Module));
// console.log(require("request"));
export * as filesystem from "./filesystem";
export * as https from "./https";
export * as electron from "./electron";
export * as crypto from "./crypto";
// We can expose that without any issues.
export * as path from "path";
export * as net from "net"; // TODO: evaluate need and create wrapper
export * as os from "os";