tasq/node_modules/@ruvector/core/index.js

46 lines
1.1 KiB
JavaScript

const { platform, arch } = process;
// Platform mapping
const platformMap = {
'linux': {
'x64': 'ruvector-core-linux-x64-gnu',
'arm64': 'ruvector-core-linux-arm64-gnu'
},
'darwin': {
'x64': 'ruvector-core-darwin-x64',
'arm64': 'ruvector-core-darwin-arm64'
},
'win32': {
'x64': 'ruvector-core-win32-x64-msvc'
}
};
function loadNativeModule() {
const platformPackage = platformMap[platform]?.[arch];
if (!platformPackage) {
throw new Error(
`Unsupported platform: ${platform}-${arch}\n` +
`Ruvector native module is available for:\n` +
`- Linux (x64, ARM64)\n` +
`- macOS (x64, ARM64)\n` +
`- Windows (x64)`
);
}
try {
return require(platformPackage);
} catch (error) {
if (error.code === 'MODULE_NOT_FOUND') {
throw new Error(
`Native module not found for ${platform}-${arch}\n` +
`Please install: npm install ${platformPackage}\n` +
`Or reinstall ruvector-core to get optional dependencies`
);
}
throw error;
}
}
module.exports = loadNativeModule();