about summary refs log tree commit diff stats
path: root/tree-sitter/dsk/dsk-cli/templates/js-addon/bindings/node.cc
diff options
context:
space:
mode:
Diffstat (limited to 'tree-sitter/dsk/dsk-cli/templates/js-addon/bindings/node.cc')
-rw-r--r--tree-sitter/dsk/dsk-cli/templates/js-addon/bindings/node.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/tree-sitter/dsk/dsk-cli/templates/js-addon/bindings/node.cc b/tree-sitter/dsk/dsk-cli/templates/js-addon/bindings/node.cc
new file mode 100644
index 0000000..d0ba098
--- /dev/null
+++ b/tree-sitter/dsk/dsk-cli/templates/js-addon/bindings/node.cc
@@ -0,0 +1,16 @@
+#include "napi.h"
+
+typedef struct TSLanguage TSLanguage;
+
+extern "C" TSLanguage *tree_sitter___DSL_NAME__();
+
+// "tree_sitter___DSL_NAME___binding" is the symbol that gets exported
+// when this file is compiled as a Node.js addon.
+Napi::Object Init(Napi::Env env, Napi::Object exports) {
+  exports["name"] = Napi::String::New(env, "__DSL_NAME__");
+  auto language = tree_sitter___DSL_NAME__();
+  exports["language"] = Napi::External<TSLanguage>::New(env, language);
+  return exports;
+}
+
+NODE_API_MODULE(tree_sitter___DSL_NAME___binding, Init)