@boem312/minecraft-server
Version:
A pure JS library to create Minecraft Java 1.16.3 servers
35 lines (29 loc) • 785 B
JavaScript
function createLazyClass(loadTarget, name) {
let cachedTarget;
const target = () => {
if (cachedTarget === undefined)
cachedTarget = loadTarget();
return cachedTarget;
};
const Placeholder = class { };
Placeholder.prototype = Object.create(null);
Object.defineProperty(Placeholder, 'name', {
value: name || ''
});
const lazy = new Proxy(Placeholder, {
getPrototypeOf() {
return target();
},
has(_, key) {
return key in target();
},
get(_, key) {
return target()[key];
},
construct(_, argArray) {
return new (target())(...argArray);
}
});
return lazy;
};
module.exports = { createLazyClass };