@binclusive/tree-sitter-kotlin-wasm
这个 树保姆克特林语法
作为验收单出售 .wasm 资产,没有运行时间依赖性,没有安装脚本.
上游 实值 我们直接依靠它 直到3834号 这样做的成本 45 MB (英语)
已安装 还有一个 install: node-gyp-build 生命周期脚本, 装入一个 3.3 甲基溴 文档 ——
其他41 MB 生成 C 剖析源, 原生 .node 捆绑六个平台 我们从来没有打开,
财务报告和审定财务报表 npm-check-updates,一个被宣布为 运行时间 依赖性。 这个包
仅重排原版,未修改。 完整出处、复制命令和升级
程序已进入 PROVENANCE.md。 。 。 .
哥哥们 @binclusive/tree-sitter-swift-wasm 是同一个形状
斯 Sw. 两种语法现在都以同样的方式到达客户手中,一个是第一方的销售商的瓦斯包
按名称解决——所以克特林/斯维夫特的区别是一个属地名称而不是第二个
获取机制.
安装
把它拉起来 没错。语法版本决定扫描仪能看见什么,所以它是正确的 输入,不是相容的上级轴 (# 3828, # 3931):
pnpm add -E @binclusive/tree-sitter-kotlin-wasm
使用
import { readFile } from "node:fs/promises";
import { fileURLToPath } from "node:url";
import {
KOTLIN_GRAMMAR,
KOTLIN_GRAMMAR_WASM_SPECIFIER,
} from "@binclusive/tree-sitter-kotlin-wasm";
import { Language, Parser } from "web-tree-sitter";
const wasmPath = fileURLToPath(import.meta.resolve(KOTLIN_GRAMMAR_WASM_SPECIFIER));
// Verify before you parse: a wrong or truncated grammar under-parses SILENTLY, so it
// surfaces as missing findings rather than an error.
const bytes = await readFile(wasmPath);
const digest = Buffer.from(
await crypto.subtle.digest("SHA-256", bytes),
).toString("hex");
if (digest !== KOTLIN_GRAMMAR.sha256) throw new Error("Kotlin grammar digest mismatch");
await Parser.init();
const parser = new Parser();
parser.setLanguage(await Language.load(bytes));
import.meta.resolve 是带有负载的细节: 分辨率贯穿此软件包 exports
地图名称。 连接目录 消费者 import.meta.url 是后面的确切机制
#3120——它解决了造像的机器和其他任何地方.
从 KOTLIN_GRAMMAR,而不是来自已装入的模块:此语法是ABI 14,
语法名称元数据,所以 Language.name 读取 null。 。 。 .
出口
| 指定者 | 什麽 |
|---|---|
@binclusive/tree-sitter-kotlin-wasm | KOTLIN_GRAMMAR (上游回波、npm包、版本、资产名称、字节长度、SHA-256、ABI、许可证)和 KOTLIN_GRAMMAR_WASM_SPECIFIER |
@binclusive/tree-sitter-kotlin-wasm/tree-sitter-kotlin.wasm | 语法字节 |
切入点仅为常数——否 node: 进口,不依赖运行时间——因此它载入
节点 工人和浏览器都一样.
出版
工作空间测试核实承诺字节; verify:tarball 核实文物是顾客
实际收到。 把它打包 装入一个抛出目录
与 --ignore-scripts,按安装时的软件包名称解析该主题,并解析 Kotlin
带着它,那么破碎 files 列表, a publishConfig 导出映射或新建的生命周期脚本
在这里失败,而不是消费者:
pnpm -C packages/tree-sitter-kotlin-wasm run verify:tarball
(单位:千美元)pnpm -C … run永远 pnpm --filter … <script> ——当剧本缺失时,后者退出0,
#3839 (英语)
然后发布柏油丸(这个工作区发布包装柏油丸而不是运行)
pnpm publish 现职:
cd packages/tree-sitter-kotlin-wasm
pnpm build
pnpm pack
npm publish --access public binclusive-tree-sitter-kotlin-wasm-<version>.tgz
许可证
语法是麻省理工学院,2024年阿曼·库雷希. 上游通知号逐一登入
LICENSE 并适用于被出售的原物,即未经修改的上游文物.
此软件包不添加单独的许可证代码 .