SuperAPI AI 工具集

oxc-walker-skilld

编程与开发

查看项目

更新于 10-16 07:24

技能介绍

用途:oxc-walker 是面向 JavaScript/TypeScript 的 AST 遍历库,属于 oxc-project 生态,常与 oxc-parser 一起用于代码分析、转换与静态检查类工具。

主要能力:提供 walk 遍历 AST,enter/leave 回调;支持 this.skip()、this.replace()、this.remove() 控制遍历;提供 parseAndWalk 一次完成解析与遍历;通过 ScopeTracker 追踪变量、函数、导入、catch 参数等声明,并提供 getDeclaration() 与 getUndeclaredIdentifiersInFunction() 等能力。v0.7.0 新增并导出 ScopeTrackerVariable、ScopeTrackerFunction、ScopeTrackerImport、ScopeTrackerFunctionParam、ScopeTrackerIdentifier、ScopeTrackerCatchParam 及 ScopeTrackerNode 等类型,均可从 oxc-walker 直接导入。

用法要点:回调应使用普通函数表达式而非箭头函数,因为 skip/replace/remove 依赖 this 上下文;只需单次遍历时可用 parseAndWalk;需要解析提升声明时,采用两遍模式,先 ScopeTracker({ preserveExitedScopes: true }) 加 parseAndWalk 预收集声明,再 freeze() 后以 walk(program, { scopeTracker }) 分析,否则 getDeclaration() 可能返回 null。

限制:v0.6.0 起要求 oxc-parser v0.98.0+;附加 ScopeTracker 时不要使用 replace/remove;remove 优先于 replace;skip 仅在 enter 可用且会跳过 leave;isCurrentScopeUnder 为严格子级判断;ScopeTrackerFunctionParam 的 start/end 已废弃,改用 fnNode 的位置。检索可使用 skilld search 或 npx -y skilld search,支持 docs:、issues:、releases: 前缀过滤。更多细节需查阅官方文档。