diff options
Diffstat (limited to 'tree-sitter/dsk/dsk-cli/templates/js-addon')
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" + ] +} |