mirror of
https://github.com/danbulant/discord.js-structures
synced 2026-05-19 04:08:36 +00:00
40 lines
No EOL
1.2 KiB
JavaScript
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; |