@longzai-intelligence-arkts/eslint-parser-arkts
v0.0.15
Published
ArkTS ESLint Parser - 将 .ets 文件预处理为标准 TypeScript
Readme
@apex-energy-watch/eslint-parser-arkts
ArkTS ESLint Parser - 将 .ets 文件预处理为标准 TypeScript。
安装
bun add -D @apex-energy-watch/eslint-parser-arkts @typescript-eslint/parser用法
ESLint Flat Config
import arkts from '@apex-energy-watch/eslint-plugin-arkts';
import arktsParser from '@apex-energy-watch/eslint-parser-arkts';
export default [
{
files: ['**/*.ets'],
plugins: { arkts },
languageOptions: {
parser: arktsParser,
parserOptions: {
sdkPath: '/path/to/openharmony/sdk',
},
},
rules: {
...arkts.configs.recommended.rules,
},
},
];独立使用
import { parseForESLint, meta } from '@apex-energy-watch/eslint-parser-arkts';
const code = `
@Component
struct MyComponent {
build() {
Column() {
Text('hello')
}
}
}
`;
const result = parseForESLint(code, { filePath: 'test.ets' });
console.log(result.ast);API
parseForESLint(code, options)
ESLint Parser 标准接口。
参数:
code: string- 源码内容options: ArkTSParserOptions- Parser 选项filePath?: string- 文件路径(用于判断是否为 .ets 文件)sdkPath?: string- OpenHarmony SDK 路径- 其他
@typescript-eslint/parser支持的选项
返回:
ast- ESTree ASTservices- TypeScript 服务(program、typeChecker)scopeManager- 作用域管理器visitorKeys- 访问者键
parse(code, options)
简化接口,只返回 AST。
meta
Parser 元信息:
{
name: '@apex-energy-watch/eslint-parser-arkts',
version: '0.1.0'
}工作原理
- 检测
.ets文件扩展名 - 将 ArkTS 特有语法预处理为标准 TypeScript:
struct→class$$this→__ets_this- 移除声明式装饰器(
@Builder等) - 清空声明式 UI 块内容
- 委托
@typescript-eslint/parser解析预处理后的代码 - 返回 AST 和类型检查服务
所有预处理都是等长替换,确保行列号与原始代码完全对应。
文档
依赖
@typescript-eslint/parser- 实际的 TypeScript 解析@typescript-eslint/types- 类型定义
License
MIT
