Files

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 (_) {}