UNPKG

pcsc-mini

Version:

PC/SC (smart card) API bindings for Linux, MacOS, and Win32.

92 lines (80 loc) 2.27 kB
// [Tokota] Auto-generated. /* eslint-disable */ const fs = require("node:fs"); let pkg; const abi = detectAbi(); const target = (abi) ? `${process.platform}-${process.arch}-${abi}` : `${process.platform}-${process.arch}`; switch (target) { case "linux-arm64-glibc": pkg = "@pcsc-mini/linux-aarch64-gnu"; break; case "linux-arm64-musl": pkg = "@pcsc-mini/linux-aarch64-musl"; break; case "linux-x64-glibc": pkg = "@pcsc-mini/linux-x86_64-gnu"; break; case "linux-x64-musl": pkg = "@pcsc-mini/linux-x86_64-musl"; break; case "linux-ia32-glibc": pkg = "@pcsc-mini/linux-x86-gnu"; break; case "linux-ia32-musl": pkg = "@pcsc-mini/linux-x86-musl"; break; case "darwin-arm64": pkg = "@pcsc-mini/macos-aarch64"; break; case "darwin-x64": pkg = "@pcsc-mini/macos-x86_64"; break; case "win32-arm64-bun": pkg = "@pcsc-mini/windows-aarch64-bun"; break; case "win32-arm64-electron": pkg = "@pcsc-mini/windows-aarch64-electron"; break; case "win32-arm64-node": pkg = "@pcsc-mini/windows-aarch64-node"; break; case "win32-x64-bun": pkg = "@pcsc-mini/windows-x86_64-bun"; break; case "win32-x64-electron": pkg = "@pcsc-mini/windows-x86_64-electron"; break; case "win32-x64-node": pkg = "@pcsc-mini/windows-x86_64-node"; break; default: throw new Error(`Unsupported platform: ${target}`); } try { module.exports = require(pkg); } catch (error) { throw new Error( `Required addon dependency not found (${pkg}):\n${error}\n\n` + `⚠ NOTE: If optional dependencies are disabled, you may need ` + `to add ${pkg} as an explicit dependency.\n` ); } function detectAbi() { if (process.platform === "win32") { if (process.versions.bun) return "bun"; if (process.versions.electron) return "electron"; return "node"; } if (process.platform !== "linux") return null; try { const lddContents = fs.readFileSync("/usr/bin/ldd", "utf8"); if (lddContents.includes("GLIBC")) return "glibc"; if (lddContents.includes("musl")) return "musl"; } catch {} if (process.report?.getReport()?.header.glibcVersionRuntime) { return "glibc"; } throw new Error("Unable to detect Linux ABI"); }