tree-sitter/lib/binding_web/check-artifacts-fresh.js

36 lines
784 B
JavaScript
Executable file

#!/usr/bin/env node
const fs = require("fs");
const path = require("path");
const inputFiles = [
"binding.c",
"binding.js",
"exports.txt",
"imports.js",
"prefix.js",
...list("../include/tree_sitter"),
...list("../src"),
];
const outputFiles = ["tree-sitter.js", "tree-sitter.wasm"];
const outputMtime = Math.min(...outputFiles.map(mtime));
for (const inputFile of inputFiles) {
if (mtime(inputFile) > outputMtime) {
console.log(`File '${inputFile}' has changed. Re-run 'script/build-wasm'.`);
process.exit(1);
}
}
function list(dir) {
return fs
.readdirSync(path.join(__dirname, dir), "utf8")
.filter((p) => !p.startsWith("."))
.map((p) => path.join(dir, p));
}
function mtime(p) {
return fs.statSync(path.join(__dirname, p)).mtime;
}