@node-rs/helper
Advanced tools
Comparing version 0.4.0 to 1.0.0-alpha.0
@@ -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" | ||
} | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
3
4941
2
7
36
+ Added@napi-rs/triples@^1.0.1
+ Added@napi-rs/triples@1.2.0(transitive)