tree-sitter/lib/binding_web/wasm-test-grammars.nix
faukah e4e643086b
refactor: rework nix flake
Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
2025-09-09 03:03:35 -04:00

67 lines
1.3 KiB
Nix

{
cli,
lib,
nodejs_22,
pkgsCross,
src,
stdenv,
test-grammars,
version,
}:
let
grammars = [
"bash"
"c"
"cpp"
"embedded-template"
"html"
"javascript"
"json"
"python"
"rust"
"typescript"
];
in
stdenv.mkDerivation {
inherit src version;
pname = "wasm-test-grammars";
nativeBuildInputs = [
cli
pkgsCross.wasi32.stdenv.cc
nodejs_22
];
buildPhase = ''
export HOME=$TMPDIR
export TREE_SITTER_WASI_SDK_PATH=${pkgsCross.wasi32.stdenv.cc}
export NIX_LDFLAGS=""
cp -r ${test-grammars}/fixtures .
chmod -R u+w fixtures
for grammar in ${lib.concatStringsSep " " grammars}; do
if [ -d "fixtures/grammars/$grammar" ]; then
echo "Building WASM for $grammar"
if [ "$grammar" = "typescript" ]; then
tree-sitter build --wasm -o "tree-sitter-typescript.wasm" "fixtures/grammars/$grammar/typescript"
tree-sitter build --wasm -o "tree-sitter-tsx.wasm" "fixtures/grammars/$grammar/tsx"
else
tree-sitter build --wasm -o "tree-sitter-$grammar.wasm" "fixtures/grammars/$grammar"
fi
fi
done
'';
installPhase = ''
mkdir -p $out
for wasm in *.wasm; do
if [ -f "$wasm" ]; then
echo "Installing $wasm"
cp "$wasm" $out/
fi
done
'';
}