From d5b8c19d0bc84c71ab0a286c6e11501974d4f79b Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sat, 23 Aug 2025 11:36:49 +0300 Subject: [PATCH] fix(bindings): add tree-sitter as npm dev dependency npm is supposed to automatically install peer dependencies since v7 but sometimes it's not doing it and we need this dependency for tests (cherry picked from commit e67f9f8f7ad432984136a520d5877bfa3ec09aeb) --- cli/src/init.rs | 38 +++++++++++++++++++++++++++------- cli/src/templates/package.json | 3 ++- 2 files changed, 32 insertions(+), 9 deletions(-) diff --git a/cli/src/init.rs b/cli/src/init.rs index a47ef637..10ac73a6 100644 --- a/cli/src/init.rs +++ b/cli/src/init.rs @@ -302,14 +302,36 @@ pub fn generate_grammar_files( }; // Create package.json - missing_path(repo_path.join("package.json"), |path| { - generate_file( - path, - PACKAGE_JSON_TEMPLATE, - dashed_language_name.as_str(), - &generate_opts, - ) - })?; + missing_path_else( + repo_path.join("package.json"), + allow_update, + |path| { + generate_file( + path, + PACKAGE_JSON_TEMPLATE, + dashed_language_name.as_str(), + &generate_opts, + ) + }, + |path| { + let contents = fs::read_to_string(path)? + .replace( + r#""node-addon-api": "^8.3.1"#, + r#""node-addon-api": "^8.5.0""#, + ) + .replace( + indoc! {r#" + "prebuildify": "^6.0.1", + "tree-sitter-cli":"#}, + indoc! {r#" + "prebuildify": "^6.0.1", + "tree-sitter": "^0.22.4", + "tree-sitter-cli":"#}, + ); + write_file(path, contents)?; + Ok(()) + }, + )?; // Do not create a grammar.js file in a repo with multiple language configs if !tree_sitter_config.has_multiple_language_configs() { diff --git a/cli/src/templates/package.json b/cli/src/templates/package.json index aa2adedb..a2ee2e59 100644 --- a/cli/src/templates/package.json +++ b/cli/src/templates/package.json @@ -29,11 +29,12 @@ "*.wasm" ], "dependencies": { - "node-addon-api": "^8.3.1", + "node-addon-api": "^8.5.0", "node-gyp-build": "^4.8.4" }, "devDependencies": { "prebuildify": "^6.0.1", + "tree-sitter": "^0.22.4", "tree-sitter-cli": "^CLI_VERSION" }, "peerDependencies": {