Socket
Socket
Sign inDemoInstall

@node-rs/helper

Package Overview
Dependencies
Maintainers
1
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@node-rs/helper - npm Package Compare versions

Comparing version 0.4.0 to 1.0.0-alpha.0

60

lib/loader.js

@@ -7,51 +7,25 @@ "use strict";

const path_1 = require("path");
const SupportedPlatforms = new Set(['darwin', 'win32', 'linux']);
const triples_1 = require("@napi-rs/triples");
const ArchName = os_1.arch();
const PlatformName = os_1.platform();
function loadBinding(dirname, filename = 'index', packageName) {
const platformName = os_1.platform();
if (!SupportedPlatforms.has(platformName)) {
throw new TypeError(`Unsupported platform: ${platformName}, only support for ${[...SupportedPlatforms.values()].join(', ')}`);
}
const bindingFilePath = path_1.join(dirname, `${filename}.${platformName}.node`);
const localMuslBindigFilePath = path_1.join(dirname, `${filename}.linux-musl.node`);
const muslExistedInLocal = fs_1.existsSync(localMuslBindigFilePath);
if (platformName === 'linux') {
try {
return require(bindingFilePath);
}
catch (e1) {
if (muslExistedInLocal) {
try {
return require(localMuslBindigFilePath);
}
catch (e) {
throw new TypeError(`Loading linux musl addon in local path failed: ${e.message}, Loading linux addon in local path failed: ${e1.message}`);
}
const triples = triples_1.platformArchTriples[PlatformName][ArchName];
for (const triple of triples) {
if (packageName) {
try {
return require(`${packageName}-${triple.platformArchABI}`);
}
catch (e) { }
}
}
if (!fs_1.existsSync(bindingFilePath)) {
if (!packageName) {
throw new TypeError(`Could not find binding file on path ${bindingFilePath}`);
const localFilePath = path_1.join(dirname, `${filename}-${triple.platformArchABI}.node`);
if (fs_1.existsSync(localFilePath)) {
return require(localFilePath);
}
const platformName = os_1.platform();
try {
return require(`${packageName}-${platformName}`);
}
catch (e1) {
if (platformName === 'linux') {
try {
return require(`${packageName}-linux-musl`);
}
catch (e) {
throw new TypeError(`Loading linux musl addon Error: ${e.message}, Loading linux addon Error: ${e1.message}`);
}
}
else {
throw new TypeError('Not compatible with your platform. Error message: ' + e1.message);
}
}
}
return require(bindingFilePath);
const errorMsg = `Can not find node binding files from ${packageName ? triples.map((triple) => `${packageName}-${triple.platformArchABI}`).join(', ') : ''} ${packageName ? 'and ' : ''}${triples
.map((triple) => path_1.join(dirname, `${filename}-${triple.platformArchABI}.node`))
.join(', ')}`;
throw new TypeError(errorMsg);
}
exports.loadBinding = loadBinding;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2xvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQkFBK0I7QUFDL0IsMkJBQTZCO0FBQzdCLCtCQUEyQjtBQUUzQixNQUFNLGtCQUFrQixHQUFHLElBQUksR0FBRyxDQUFrQixDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQTtBQUVqRixTQUFnQixXQUFXLENBQUMsT0FBZSxFQUFFLFFBQVEsR0FBRyxPQUFPLEVBQUUsV0FBb0I7SUFDbkYsTUFBTSxZQUFZLEdBQUcsYUFBUSxFQUFFLENBQUE7SUFDL0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRTtRQUN6QyxNQUFNLElBQUksU0FBUyxDQUNqQix5QkFBeUIsWUFBWSxzQkFBc0IsQ0FBQyxHQUFHLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ3pHLENBQUE7S0FDRjtJQUVELE1BQU0sZUFBZSxHQUFHLFdBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxRQUFRLElBQUksWUFBWSxPQUFPLENBQUMsQ0FBQTtJQUN6RSxNQUFNLHVCQUF1QixHQUFHLFdBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxRQUFRLGtCQUFrQixDQUFDLENBQUE7SUFDNUUsTUFBTSxrQkFBa0IsR0FBRyxlQUFVLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtJQUU5RCxJQUFJLFlBQVksS0FBSyxPQUFPLEVBQUU7UUFDNUIsSUFBSTtZQUNGLE9BQU8sT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFBO1NBQ2hDO1FBQUMsT0FBTyxFQUFFLEVBQUU7WUFDWCxJQUFJLGtCQUFrQixFQUFFO2dCQUN0QixJQUFJO29CQUNGLE9BQU8sT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUE7aUJBQ3hDO2dCQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUNWLE1BQU0sSUFBSSxTQUFTLENBQ2pCLGtEQUFrRCxDQUFDLENBQUMsT0FBTywrQ0FBK0MsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUN2SCxDQUFBO2lCQUNGO2FBQ0Y7U0FDRjtLQUNGO0lBRUQsSUFBSSxDQUFDLGVBQVUsQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUNoQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxTQUFTLENBQUMsdUNBQXVDLGVBQWUsRUFBRSxDQUFDLENBQUE7U0FDOUU7UUFDRCxNQUFNLFlBQVksR0FBRyxhQUFRLEVBQUUsQ0FBQTtRQUUvQixJQUFJO1lBQ0YsT0FBTyxPQUFPLENBQUMsR0FBRyxXQUFXLElBQUksWUFBWSxFQUFFLENBQUMsQ0FBQTtTQUNqRDtRQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ1gsSUFBSSxZQUFZLEtBQUssT0FBTyxFQUFFO2dCQUM1QixJQUFJO29CQUNGLE9BQU8sT0FBTyxDQUFDLEdBQUcsV0FBVyxhQUFhLENBQUMsQ0FBQTtpQkFDNUM7Z0JBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ1YsTUFBTSxJQUFJLFNBQVMsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDLE9BQU8sZ0NBQWdDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO2lCQUM5RzthQUNGO2lCQUFNO2dCQUNMLE1BQU0sSUFBSSxTQUFTLENBQUMsb0RBQW9ELEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFBO2FBQ3ZGO1NBQ0Y7S0FDRjtJQUVELE9BQU8sT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFBO0FBQ2pDLENBQUM7QUFsREQsa0NBa0RDIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2xvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQkFBK0I7QUFDL0IsMkJBQW1DO0FBQ25DLCtCQUEyQjtBQUUzQiw4Q0FBc0Q7QUFFdEQsTUFBTSxRQUFRLEdBQUcsU0FBSSxFQUFFLENBQUE7QUFDdkIsTUFBTSxZQUFZLEdBQUcsYUFBUSxFQUFFLENBQUE7QUFFL0IsU0FBZ0IsV0FBVyxDQUFDLE9BQWUsRUFBRSxRQUFRLEdBQUcsT0FBTyxFQUFFLFdBQW9CO0lBQ25GLE1BQU0sT0FBTyxHQUFHLDZCQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzNELEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFO1FBRTVCLElBQUksV0FBVyxFQUFFO1lBQ2YsSUFBSTtnQkFDRixPQUFPLE9BQU8sQ0FBQyxHQUFHLFdBQVcsSUFBSSxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQTthQUUzRDtZQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUU7U0FDZjtRQUNELE1BQU0sYUFBYSxHQUFHLFdBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxRQUFRLElBQUksTUFBTSxDQUFDLGVBQWUsT0FBTyxDQUFDLENBQUE7UUFDakYsSUFBSSxlQUFVLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDN0IsT0FBTyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUE7U0FDOUI7S0FDRjtJQUVELE1BQU0sUUFBUSxHQUFHLHdDQUNmLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsR0FBRyxXQUFXLElBQUksTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNqRyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTztTQUNwQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLFdBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxRQUFRLElBQUksTUFBTSxDQUFDLGVBQWUsT0FBTyxDQUFDLENBQUM7U0FDNUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUE7SUFFZixNQUFNLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBQy9CLENBQUM7QUF2QkQsa0NBdUJDIn0=
{
"name": "@node-rs/helper",
"version": "0.4.0",
"version": "1.0.0-alpha.0",
"description": "Helper library for node-rs",
"keywords": [
"N-API",
"napi",
"Rust",
"Performance"
],
"keywords": ["N-API", "napi", "Rust", "Performance"],
"author": "LongYinan <lynweklm@gmail.com>",

@@ -20,6 +15,3 @@ "homepage": "https://github.com/napi-rs/node-rs",

},
"files": [
"lib",
"LICENSE"
],
"files": ["lib", "LICENSE"],
"repository": {

@@ -33,5 +25,5 @@ "type": "git",

"dependencies": {
"@napi-rs/triples": "^1.0.1",
"tslib": "^2.0.1"
},
"gitHead": "02661406422e2c4995a9062a3859138a7b9eb7a7"
}
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc