discord.js-structures/index.js
2021-07-21 19:52:11 +02:00

40 lines
No EOL
1.2 KiB
JavaScript

const discord = require("discord.js");
const proxyHandlers = require("./proxies/handlers");
const Module = require("module");
const StructuresDef = require("./proxies/structures.js");
const original = discord;
const Structures = StructuresDef;
const proxy = new Proxy(discord, {
get(target, property, receiver) {
if(property in proxyHandlers) return proxyHandlers[property];
if(property === "original") return original;
if(property === "Structures") return Structures;
if(property === "hook") return hook;
return Reflect.get(target, property, receiver);
}
});
/**
* Hooks discord.js-structures into discord.js require, which should fix errors in 3rd party libraries trying to use Structures.
* Overwrites global require function
* @see [StackOverflow source](https://stackoverflow.com/a/24602188/8404532)
*/
function hook() {
var origRequire = Module.prototype.require;
var _require = function(context, path) {
return origRequire.call(context, path);
};
Module.prototype.require = function(path) {
if(path === "discord.js") {
return proxy;
}
return _require(this, path);
};
}
module.exports = proxy;