From 1dd35fe0e0d0168ea1bc01c4c1786a14bc094fd2 Mon Sep 17 00:00:00 2001 From: Segev Finer Date: Sun, 3 Mar 2024 03:59:20 +0200 Subject: [PATCH] feat(node): type tag the language Co-authored-by: ObserverOfTime --- cli/src/generate/templates/js-binding.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/cli/src/generate/templates/js-binding.cc b/cli/src/generate/templates/js-binding.cc index 8daca6f5..5b167cc8 100644 --- a/cli/src/generate/templates/js-binding.cc +++ b/cli/src/generate/templates/js-binding.cc @@ -4,9 +4,16 @@ typedef struct TSLanguage TSLanguage; extern "C" TSLanguage *tree_sitter_PARSER_NAME(); +// "tree-sitter", "language" hashed with BLAKE2 +const napi_type_tag LANGUAGE_TYPE_TAG = { + 0x8AF2E5212AD58ABF, 0xD5006CAD83ABBA16 +}; + Napi::Object Init(Napi::Env env, Napi::Object exports) { exports["name"] = Napi::String::New(env, "PARSER_NAME"); - exports["language"] = Napi::External::New(env, tree_sitter_PARSER_NAME()); + auto language = Napi::External::New(env, tree_sitter_PARSER_NAME()); + language.TypeTag(&LANGUAGE_TYPE_TAG); + exports["language"] = language; return exports; }