30 lines
858 B
JavaScript
30 lines
858 B
JavaScript
const root = require("path").join(__dirname, "..", "..");
|
|
|
|
if (process.versions?.bun) {
|
|
const fs = require("fs");
|
|
const os = require("os");
|
|
const path = require("path");
|
|
|
|
const bindingName = "tree_sitter_rune_binding";
|
|
const platformFolder = `${os.platform()}-${os.arch()}`;
|
|
const prebuildsDir = path.join(root, "prebuilds", platformFolder);
|
|
|
|
if (fs.existsSync(prebuildsDir)) {
|
|
const files = fs.readdirSync(prebuildsDir);
|
|
const nodeFile = files.find((f) => f.endsWith(".node"));
|
|
if (nodeFile) {
|
|
module.exports = require(path.join(prebuildsDir, nodeFile));
|
|
}
|
|
}
|
|
|
|
if (!module.exports) {
|
|
module.exports = require(`${root}/build/Release/${bindingName}.node`);
|
|
}
|
|
} else {
|
|
module.exports = require("node-gyp-build")(root);
|
|
}
|
|
|
|
try {
|
|
module.exports.nodeTypeInfo = require("../../src/node-types.json");
|
|
} catch (_) {}
|