UNPKG

2.93 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.loadBinding = void 0;
4const fs_1 = require("fs");
5const os_1 = require("os");
6const path_1 = require("path");
7const triples_1 = require("@napi-rs/triples");
8const ArchName = os_1.arch();
9const PlatformName = os_1.platform();
10function loadBinding(dirname, filename = 'index', packageName) {
11 const triples = triples_1.platformArchTriples[PlatformName][ArchName];
12 for (const triple of triples) {
13 if (packageName) {
14 try {
15 return require(require.resolve(`${packageName}-${triple.platformArchABI}`, { paths: [dirname] }));
16 }
17 catch (e) { }
18 }
19 const localFilePath = path_1.join(dirname, `${filename}.${triple.platformArchABI}.node`);
20 if (fs_1.existsSync(localFilePath)) {
21 return require(localFilePath);
22 }
23 }
24 const errorMsg = `Can not find node binding files from ${packageName ? triples.map((triple) => `${packageName}-${triple.platformArchABI}`).join(', ') : ''} ${packageName ? 'and ' : ''}${triples
25 .map((triple) => path_1.join(dirname, `${filename}.${triple.platformArchABI}.node`))
26 .join(', ')}`;
27 throw new TypeError(errorMsg);
28}
29exports.loadBinding = loadBinding;
30//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2xvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQkFBK0I7QUFDL0IsMkJBQW1DO0FBQ25DLCtCQUEyQjtBQUUzQiw4Q0FBc0Q7QUFFdEQsTUFBTSxRQUFRLEdBQUcsU0FBSSxFQUFFLENBQUE7QUFDdkIsTUFBTSxZQUFZLEdBQUcsYUFBUSxFQUFFLENBQUE7QUFFL0IsU0FBZ0IsV0FBVyxDQUFDLE9BQWUsRUFBRSxRQUFRLEdBQUcsT0FBTyxFQUFFLFdBQW9CO0lBQ25GLE1BQU0sT0FBTyxHQUFHLDZCQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzNELEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFO1FBRTVCLElBQUksV0FBVyxFQUFFO1lBQ2YsSUFBSTtnQkFDRixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsV0FBVyxJQUFJLE1BQU0sQ0FBQyxlQUFlLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO2FBRWxHO1lBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRTtTQUNmO1FBQ0QsTUFBTSxhQUFhLEdBQUcsV0FBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLFFBQVEsSUFBSSxNQUFNLENBQUMsZUFBZSxPQUFPLENBQUMsQ0FBQTtRQUNqRixJQUFJLGVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUM3QixPQUFPLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQTtTQUM5QjtLQUNGO0lBRUQsTUFBTSxRQUFRLEdBQUcsd0NBQ2YsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxHQUFHLFdBQVcsSUFBSSxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ2pHLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPO1NBQ3BDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsV0FBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLFFBQVEsSUFBSSxNQUFNLENBQUMsZUFBZSxPQUFPLENBQUMsQ0FBQztTQUM1RSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQTtJQUVmLE1BQU0sSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUE7QUFDL0IsQ0FBQztBQXZCRCxrQ0F1QkMifQ==
\No newline at end of file