about summary refs log tree commit diff stats
path: root/tree-sitter/dsk/dsk-cli/templates/js-addon
diff options
context:
space:
mode:
Diffstat (limited to 'tree-sitter/dsk/dsk-cli/templates/js-addon')
-rw-r--r--tree-sitter/dsk/dsk-cli/templates/js-addon/binding.gyp28
-rw-r--r--tree-sitter/dsk/dsk-cli/templates/js-addon/bindings/node.cc16
-rw-r--r--tree-sitter/dsk/dsk-cli/templates/js-addon/index.d.ts3
-rw-r--r--tree-sitter/dsk/dsk-cli/templates/js-addon/index.d.ts.map1
-rw-r--r--tree-sitter/dsk/dsk-cli/templates/js-addon/index.js15
-rw-r--r--tree-sitter/dsk/dsk-cli/templates/js-addon/package.json31
6 files changed, 94 insertions, 0 deletions
diff --git a/tree-sitter/dsk/dsk-cli/templates/js-addon/binding.gyp b/tree-sitter/dsk/dsk-cli/templates/js-addon/binding.gyp
new file mode 100644
index 0000000..ddb424b
--- /dev/null
+++ b/tree-sitter/dsk/dsk-cli/templates/js-addon/binding.gyp
@@ -0,0 +1,28 @@
+{
+  "targets": [
+    {
+      "target_name": "tree_sitter___DSL_NAME___binding",
+      "dependencies": [
+        "<!(node -p \"require('node-addon-api').gyp\")"
+      ],
+      "include_dirs": [
+        "<!@(node -p \"require('node-addon-api').include\")",
+        "src"
+      ],
+      "sources": [
+        "bindings/node.cc",
+        "src/parser.c"
+      ],
+      "cflags_c": [
+        "-std=c99"
+      ],
+      "cflags_cc": [
+        "-std=c++14"
+      ],
+      "defines": [
+        "NAPI_DISABLE_CPP_EXCEPTIONS",
+        "NAPI_VERSION=8"
+      ]
+    }
+  ]
+}
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)
diff --git a/tree-sitter/dsk/dsk-cli/templates/js-addon/index.d.ts b/tree-sitter/dsk/dsk-cli/templates/js-addon/index.d.ts
new file mode 100644
index 0000000..d25eae0
--- /dev/null
+++ b/tree-sitter/dsk/dsk-cli/templates/js-addon/index.d.ts
@@ -0,0 +1,3 @@
+declare const _exports: any;
+export = _exports;
+//# sourceMappingURL=index.d.ts.map
\ No newline at end of file
diff --git a/tree-sitter/dsk/dsk-cli/templates/js-addon/index.d.ts.map b/tree-sitter/dsk/dsk-cli/templates/js-addon/index.d.ts.map
new file mode 100644
index 0000000..ca7a93a
--- /dev/null
+++ b/tree-sitter/dsk/dsk-cli/templates/js-addon/index.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/tree-sitter/dsk/dsk-cli/templates/js-addon/index.js b/tree-sitter/dsk/dsk-cli/templates/js-addon/index.js
new file mode 100644
index 0000000..4780f31
--- /dev/null
+++ b/tree-sitter/dsk/dsk-cli/templates/js-addon/index.js
@@ -0,0 +1,15 @@
+try {
+  module.exports = require("./build/Release/tree_sitter___DSL_NAME___binding");
+} catch (error1) {
+  if (error1.code !== 'MODULE_NOT_FOUND') {
+    throw error1;
+  }
+  try {
+    module.exports = require("./build/Debug/tree_sitter___DSL_NAME___binding");
+  } catch (error2) {
+    if (error2.code !== 'MODULE_NOT_FOUND') {
+      throw error2;
+    }
+    throw error1
+  }
+}
diff --git a/tree-sitter/dsk/dsk-cli/templates/js-addon/package.json b/tree-sitter/dsk/dsk-cli/templates/js-addon/package.json
new file mode 100644
index 0000000..c7a0488
--- /dev/null
+++ b/tree-sitter/dsk/dsk-cli/templates/js-addon/package.json
@@ -0,0 +1,31 @@
+{
+  "name": "tree-sitter-__DSL_NAME__",
+  "version": "1.0.0",
+  "description": "Tree-sitter parser for __DSL_NAME__",
+  "main": "index.js",
+  "keywords": [
+    "tree-sitter",
+    "parser",
+    "__DSL_NAME__"
+  ],
+  "author": "Generated by DSK",
+  "license": "MIT",
+  "dependencies": {
+    "node-addon-api": "^7.0.0",
+    "node-gyp": "^10.0.0"
+  },
+  "devDependencies": {
+    "tree-sitter-cli": "^0.20.0"
+  },
+  "scripts": {
+    "install": "node-gyp rebuild",
+    "test": "tree-sitter test"
+  },
+  "gypfile": true,
+  "files": [
+    "grammar.js",
+    "src",
+    "index.js",
+    "binding.gyp"
+  ]
+}