23 个版本
0.0.24 | 2024 年 7 月 4 日 |
---|---|
0.0.20 | 2023 年 8 月 2 日 |
0.0.19 | 2023 年 7 月 17 日 |
0.0.15 | 2023 年 3 月 24 日 |
0.0.8 | 2022 年 7 月 28 日 |
#78 in 性能分析
每月 285 次下载
205KB
5K SLoC
SWC-coverage-instrument
swc-coverage-instrument
是一组软件包,用于支持 istanbuljs 兼容的覆盖率分析在 SWC 的转换过程中。可以通过 SWC 的基于 wasm 的插件或使用 rust 侧转换链中的自定义转换来执行分析转换。
兼容性具体意味着什么?
此分析将生成一个数据结构,模拟 istanbuljs 的 FileCoverage
[对象] (https://github.com/istanbuljs/istanbuljs/blob/c7693d4608979ab73ebb310e0a1647e2c51f31b6/packages/istanbul-lib-coverage/lib/file-coverage.js#L97=),符合 istanbuljs 自身的测试套件。
然而,这并不意味着分析支持与覆盖率对象周围的相同 接口,也不支持完全相同的选项。不同编译器之间在运行时和 ast 访问者架构上的基本差异不允许完全相同的行为。此软件包将尽可能尝试 best attempt
。
注意:软件包可能在未进行主要 semver 增量的情况下具有破坏性更改
在稳定其接口的同时,此软件包不保证 semver 兼容的破坏性更改。如果遇到版本之间的意外破坏行为,请参阅变更日志。
用法
在 rust 中使用自定义转换过程
有一个接口暴露用于创建转换的访问者,您可以将它传递给 before_custom_pass
。
let visitor = swc_coverage_instrument::create_coverage_instrumentation_visitor(
source_map: std::sync::Arc<SourceMapper>,
comments: C,
instrument_options: InstrumentOptions,
filename: String,
);
let fold = as_folder(visitor);
InstrumentationOptions
是 istanbul 的分析选项的子集。请参考 istanbul 的选项 以获取相同的配置标志。但是,有一些例外或差异,参考 InstrumentOptions 将列出所有可能选项。
对于日志记录,此软件包不会自行初始化任何订阅者。调用者应根据需要设置适当的 tracing-subscriber
。
依赖项
~8–11MB
~232K SLoC