UNPKG

@boem312/minecraft-server

Version:

A pure JS library to create Minecraft Java 1.16.3 servers

35 lines (29 loc) 785 B
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 };