'use strict'; const path = require('node:path'); const nameWindows = 'windows'; const platformAndArch = `${process.platform}-${process.arch}`; const platformNames = { 'win32-x64': nameWindows, 'linux-x64': 'linux', 'darwin-x64': 'osx', 'linux-arm64': 'aarch64', }; const platformName = platformNames[platformAndArch] || platformAndArch; const isWindows = platformName === nameWindows; const getPaths = (dir) => { dir = dir.replace(/\\/g, '/'); const bin = `${dir}/bin-${platformName}`; const include = `${dir}/include`; if (isWindows) { process.env.path = `${bin};${process.env.path ? `${process.env.path}` : ''}`; } return { bin, include }; }; const getBin = () => { return `bin-${platformName}`; }; const getPlatform = () => { return platformName; }; const getInclude = () => { let napi = null; try { napi = require('node-addon-api'); } catch (ex) { // do nothing } const rootPath = path.resolve(`${__dirname}/..`).replace(/\\/g, '/'); const napiInclude = napi ? napi.include_dir.replace(/\\/g, '/') : ''; const thisInclude = `${rootPath}/include`; const includePath = `${napiInclude} ${thisInclude}`; return includePath; }; module.exports = { getPaths, getBin, getPlatform, getInclude, };