openvino-tokenizers-node
Version:
OpenVINO™ Tokenizers adds text processing operations to openvino-node package
61 lines (53 loc) • 1.34 kB
JavaScript
const os = require('node:os');
const path = require('node:path');
module.exports = {
path: getPathToBinary({
platform: os.platform(),
arch: os.arch(),
}),
getPathToBinary,
};
function getPathToBinary(osProps) {
const { arch, platform } = osProps;
if (platform === 'win32' && arch !== 'x64')
throw new Error(`Version for windows and '${arch}' is not supported.`);
return path.join(
__dirname,
'bin/runtime',
libOrBin(platform),
getDirnameByArchAndPlatform(arch, platform),
platform === 'linux' ? '' : 'Release',
getBinaryFilename(platform),
);
}
function getDirnameByArchAndPlatform(arch, platform) {
switch (arch) {
case 'x64':
return 'intel64';
case 'arm64':
case 'armhf':
return platform === 'darwin' ? 'arm64' : 'aarch64';
default:
throw new Error(`Unsupported architecture: ${arch}`);
}
}
function libOrBin(platform) {
switch (platform) {
case 'win32':
return 'bin';
default:
return 'lib';
}
}
function getBinaryFilename(platform) {
switch (platform) {
case 'win32':
return 'openvino_tokenizers.dll';
case 'linux':
return 'libopenvino_tokenizers.so';
case 'darwin':
return 'libopenvino_tokenizers.dylib';
default:
throw new Error(`Unsupported platform: ${platform}`);
}
}