/* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ /* auto-generated by NAPI-RS */ const { existsSync, readFileSync } = require('fs') const { join } = require("path"); const { platform, arch } = process; let nativeBinding = null; let localFileExisted = false; let loadError = null; function isMusl() { // For Node 10 if (!process.report || typeof process.report.getReport !== "function") { try { const lddPath = require("child_process") .execSync("which ldd") .toString() .trim(); return readFileSync(lddPath, "utf8").includes("musl"); } catch (e) { return true; } } else { const { glibcVersionRuntime } = process.report.getReport().header; return !glibcVersionRuntime; } } switch (platform) { case "android": switch (arch) { case "arm64": localFileExisted = existsSync( join(__dirname, "mediaplex.android-arm64.node"), ); try { if (localFileExisted) { nativeBinding = require("./mediaplex.android-arm64.node"); } else { nativeBinding = require("mediaplex-android-arm64"); } } catch (e) { loadError = e; } break; case "arm": localFileExisted = existsSync( join(__dirname, "mediaplex.android-arm-eabi.node"), ); try { if (localFileExisted) { nativeBinding = require("./mediaplex.android-arm-eabi.node"); } else { nativeBinding = require("mediaplex-android-arm-eabi"); } } catch (e) { loadError = e; } break; default: throw new Error(`Unsupported architecture on Android ${arch}`); } break; case "win32": switch (arch) { case "x64": localFileExisted = existsSync( join(__dirname, "mediaplex.win32-x64-msvc.node"), ); try { if (localFileExisted) { nativeBinding = require("./mediaplex.win32-x64-msvc.node"); } else { nativeBinding = require("mediaplex-win32-x64-msvc"); } } catch (e) { loadError = e; } break; case "ia32": localFileExisted = existsSync( join(__dirname, "mediaplex.win32-ia32-msvc.node"), ); try { if (localFileExisted) { nativeBinding = require("./mediaplex.win32-ia32-msvc.node"); } else { nativeBinding = require("mediaplex-win32-ia32-msvc"); } } catch (e) { loadError = e; } break; case "arm64": localFileExisted = existsSync( join(__dirname, "mediaplex.win32-arm64-msvc.node"), ); try { if (localFileExisted) { nativeBinding = require("./mediaplex.win32-arm64-msvc.node"); } else { nativeBinding = require("mediaplex-win32-arm64-msvc"); } } catch (e) { loadError = e; } break; default: throw new Error(`Unsupported architecture on Windows: ${arch}`); } break; case "darwin": localFileExisted = existsSync( join(__dirname, "mediaplex.darwin-universal.node"), ); try { if (localFileExisted) { nativeBinding = require("./mediaplex.darwin-universal.node"); } else { nativeBinding = require("mediaplex-darwin-universal"); } break; } catch {} switch (arch) { case "x64": localFileExisted = existsSync( join(__dirname, "mediaplex.darwin-x64.node"), ); try { if (localFileExisted) { nativeBinding = require("./mediaplex.darwin-x64.node"); } else { nativeBinding = require("mediaplex-darwin-x64"); } } catch (e) { loadError = e; } break; case "arm64": localFileExisted = existsSync( join(__dirname, "mediaplex.darwin-arm64.node"), ); try { if (localFileExisted) { nativeBinding = require("./mediaplex.darwin-arm64.node"); } else { nativeBinding = require("mediaplex-darwin-arm64"); } } catch (e) { loadError = e; } break; default: throw new Error(`Unsupported architecture on macOS: ${arch}`); } break; case "freebsd": if (arch !== "x64") { throw new Error(`Unsupported architecture on FreeBSD: ${arch}`); } localFileExisted = existsSync( join(__dirname, "mediaplex.freebsd-x64.node"), ); try { if (localFileExisted) { nativeBinding = require("./mediaplex.freebsd-x64.node"); } else { nativeBinding = require("mediaplex-freebsd-x64"); } } catch (e) { loadError = e; } break; case "linux": switch (arch) { case "x64": if (isMusl()) { localFileExisted = existsSync( join(__dirname, "mediaplex.linux-x64-musl.node"), ); try { if (localFileExisted) { nativeBinding = require("./mediaplex.linux-x64-musl.node"); } else { nativeBinding = require("mediaplex-linux-x64-musl"); } } catch (e) { loadError = e; } } else { localFileExisted = existsSync( join(__dirname, "mediaplex.linux-x64-gnu.node"), ); try { if (localFileExisted) { nativeBinding = require("./mediaplex.linux-x64-gnu.node"); } else { nativeBinding = require("mediaplex-linux-x64-gnu"); } } catch (e) { loadError = e; } } break; case "arm64": if (isMusl()) { localFileExisted = existsSync( join(__dirname, "mediaplex.linux-arm64-musl.node"), ); try { if (localFileExisted) { nativeBinding = require("./mediaplex.linux-arm64-musl.node"); } else { nativeBinding = require("mediaplex-linux-arm64-musl"); } } catch (e) { loadError = e; } } else { localFileExisted = existsSync( join(__dirname, "mediaplex.linux-arm64-gnu.node"), ); try { if (localFileExisted) { nativeBinding = require("./mediaplex.linux-arm64-gnu.node"); } else { nativeBinding = require("mediaplex-linux-arm64-gnu"); } } catch (e) { loadError = e; } } break; case "arm": if (isMusl()) { localFileExisted = existsSync( join(__dirname, "mediaplex.linux-arm-musleabihf.node"), ); try { if (localFileExisted) { nativeBinding = require("./mediaplex.linux-arm-musleabihf.node"); } else { nativeBinding = require("mediaplex-linux-arm-musleabihf"); } } catch (e) { loadError = e; } } else { localFileExisted = existsSync( join(__dirname, "mediaplex.linux-arm-gnueabihf.node"), ); try { if (localFileExisted) { nativeBinding = require("./mediaplex.linux-arm-gnueabihf.node"); } else { nativeBinding = require("mediaplex-linux-arm-gnueabihf"); } } catch (e) { loadError = e; } } break; case "riscv64": if (isMusl()) { localFileExisted = existsSync( join(__dirname, "mediaplex.linux-riscv64-musl.node"), ); try { if (localFileExisted) { nativeBinding = require("./mediaplex.linux-riscv64-musl.node"); } else { nativeBinding = require("mediaplex-linux-riscv64-musl"); } } catch (e) { loadError = e; } } else { localFileExisted = existsSync( join(__dirname, "mediaplex.linux-riscv64-gnu.node"), ); try { if (localFileExisted) { nativeBinding = require("./mediaplex.linux-riscv64-gnu.node"); } else { nativeBinding = require("mediaplex-linux-riscv64-gnu"); } } catch (e) { loadError = e; } } break; case "s390x": localFileExisted = existsSync( join(__dirname, "mediaplex.linux-s390x-gnu.node"), ); try { if (localFileExisted) { nativeBinding = require("./mediaplex.linux-s390x-gnu.node"); } else { nativeBinding = require("mediaplex-linux-s390x-gnu"); } } catch (e) { loadError = e; } break; default: throw new Error(`Unsupported architecture on Linux: ${arch}`); } break; default: throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`); } if (!nativeBinding) { if (loadError) { throw loadError; } throw new Error(`Failed to load native binding`); } const { getOpusVersion, OpusEncoder, CodecType, probe, probeSync } = nativeBinding; module.exports.getOpusVersion = getOpusVersion; module.exports.OpusEncoder = OpusEncoder; module.exports.CodecType = CodecType; module.exports.probe = probe; module.exports.probeSync = probeSync;