tree-sitter/lib/binding_web/check-artifacts-fresh.js
2019-05-07 13:11:04 -07:00

38 lines
780 B
JavaScript
Executable file

#!/usr/bin/env node
const fs = require('fs');
const path = require('path');
const inputFiles = [
'binding.c',
'binding.js',
'exports.json',
'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;
}