@slippi/slippi-js
Version:
Official Project Slippi Javascript SDK
44 lines (42 loc) • 1.36 kB
JavaScript
let enetModule;
let loadPromise;
async function maybeLoadEnetModule() {
if (enetModule) {
return enetModule;
}
if (loadPromise) {
return loadPromise;
}
loadPromise = (async () => {
var _a, _b;
// Try require first (CJS or bundler environments)
try {
if (typeof require !== "undefined") {
// eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports
const mod = require("enet");
return ((_a = mod === null || mod === void 0 ? void 0 : mod.default) !== null && _a !== void 0 ? _a : mod);
}
}
catch (_c) {
// ignore
}
// Fallback: ESM dynamic import
try {
const mod = await import('enet');
return ((_b = mod === null || mod === void 0 ? void 0 : mod.default) !== null && _b !== void 0 ? _b : mod);
}
catch (_d) {
return undefined;
}
})();
enetModule = await loadPromise;
return enetModule;
}
async function loadEnetModule() {
const enetModule = await maybeLoadEnetModule();
if (!enetModule) {
throw new Error("enet is required to connect to Dolphin. Install it with: npm install enet");
}
return enetModule;
}
export { loadEnetModule };