@tsrx/eslint-parser 0.3.57 → 0.3.59
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -34
- package/dist/index.d.ts +2 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -48
- package/dist/index.js.map +1 -1
- package/package.json +3 -4
- package/src/index.ts +32 -74
package/README.md
CHANGED
|
@@ -3,42 +3,39 @@
|
|
|
3
3
|
[](https://www.npmjs.com/package/@tsrx/eslint-parser)
|
|
4
4
|
[](https://www.npmjs.com/package/@tsrx/eslint-parser)
|
|
5
5
|
|
|
6
|
-
ESLint parser for
|
|
7
|
-
and lint `.tsrx` files by default,
|
|
8
|
-
Ripple's built-in compiler.
|
|
6
|
+
ESLint parser for TSRX component files. This parser enables ESLint to understand
|
|
7
|
+
and lint `.tsrx` files by default, using the shared TSRX parser from `@tsrx/core`.
|
|
9
8
|
|
|
10
9
|
## Installation
|
|
11
10
|
|
|
12
11
|
```bash
|
|
13
|
-
pnpm add --save-dev '@tsrx/eslint-parser'
|
|
12
|
+
pnpm add --save-dev '@tsrx/eslint-parser'
|
|
14
13
|
# or
|
|
15
|
-
npm install --save-dev '@tsrx/eslint-parser'
|
|
14
|
+
npm install --save-dev '@tsrx/eslint-parser'
|
|
16
15
|
# or
|
|
17
|
-
yarn add --dev '@tsrx/eslint-parser'
|
|
16
|
+
yarn add --dev '@tsrx/eslint-parser'
|
|
18
17
|
```
|
|
19
18
|
|
|
20
|
-
**Note:** This parser requires `ripple` as a peer dependency.
|
|
21
|
-
|
|
22
19
|
## Usage
|
|
23
20
|
|
|
24
21
|
### Flat Config (ESLint 9+)
|
|
25
22
|
|
|
26
23
|
```js
|
|
27
24
|
// eslint.config.js
|
|
28
|
-
import
|
|
29
|
-
import
|
|
25
|
+
import tsrxParser from '@tsrx/eslint-parser';
|
|
26
|
+
import tsrxPlugin from '@tsrx/eslint-plugin';
|
|
30
27
|
|
|
31
28
|
export default [
|
|
32
29
|
{
|
|
33
|
-
files: ['**/*.
|
|
30
|
+
files: ['**/*.tsrx'],
|
|
34
31
|
languageOptions: {
|
|
35
|
-
parser:
|
|
32
|
+
parser: tsrxParser,
|
|
36
33
|
},
|
|
37
34
|
plugins: {
|
|
38
|
-
ripple:
|
|
35
|
+
ripple: tsrxPlugin,
|
|
39
36
|
},
|
|
40
37
|
rules: {
|
|
41
|
-
...
|
|
38
|
+
...tsrxPlugin.configs.recommended.rules,
|
|
42
39
|
},
|
|
43
40
|
},
|
|
44
41
|
];
|
|
@@ -61,25 +58,24 @@ export default [
|
|
|
61
58
|
|
|
62
59
|
## How It Works
|
|
63
60
|
|
|
64
|
-
This parser uses
|
|
65
|
-
files into an ESTree-compatible AST that ESLint can analyze.
|
|
66
|
-
already outputs ESTree-compliant ASTs, making integration straightforward.
|
|
61
|
+
This parser uses the shared TSRX parser (`@tsrx/core`) to parse TSRX component
|
|
62
|
+
files into an ESTree-compatible AST that ESLint can analyze.
|
|
67
63
|
|
|
68
64
|
The parser:
|
|
69
65
|
|
|
70
|
-
1.
|
|
71
|
-
2.
|
|
66
|
+
1. Parses the component source code (`.tsrx`)
|
|
67
|
+
2. Normalizes the AST for ESLint traversal
|
|
72
68
|
3. Returns the ESTree AST to ESLint
|
|
73
|
-
4. Allows ESLint rules to analyze
|
|
69
|
+
4. Allows ESLint rules to analyze TSRX-specific patterns
|
|
74
70
|
|
|
75
71
|
## Supported Syntax
|
|
76
72
|
|
|
77
|
-
The parser supports
|
|
73
|
+
The parser supports TSRX syntax including:
|
|
78
74
|
|
|
79
75
|
- `component` declarations
|
|
80
76
|
- `track()` reactive values (imported from `ripple`)
|
|
81
77
|
- `@` unboxing operator
|
|
82
|
-
- Reactive collections
|
|
78
|
+
- Reactive collections
|
|
83
79
|
- JSX-like templating inside components
|
|
84
80
|
- All standard JavaScript/TypeScript syntax
|
|
85
81
|
|
|
@@ -87,7 +83,7 @@ The parser supports all Ripple syntax including:
|
|
|
87
83
|
|
|
88
84
|
Given a `.tsrx` file:
|
|
89
85
|
|
|
90
|
-
```
|
|
86
|
+
```tsrx
|
|
91
87
|
import { track } from 'ripple';
|
|
92
88
|
|
|
93
89
|
export component Counter() {
|
|
@@ -108,21 +104,12 @@ The parser will successfully parse this and allow ESLint rules (like those from
|
|
|
108
104
|
- Component export requirements
|
|
109
105
|
- And more
|
|
110
106
|
|
|
111
|
-
## Limitations
|
|
112
|
-
|
|
113
|
-
- The parser requires Node.js runtime as it uses `require()` to load the Ripple
|
|
114
|
-
compiler
|
|
115
|
-
- Browser-based linting is not currently supported
|
|
116
|
-
|
|
117
107
|
## Related Packages
|
|
118
108
|
|
|
119
109
|
- [@tsrx/eslint-plugin](https://www.npmjs.com/package/@tsrx/eslint-plugin) -
|
|
120
|
-
ESLint rules for
|
|
121
|
-
- [ripple](https://ripplejs.com) - The Ripple framework
|
|
122
|
-
- [@ripple-ts/vite-plugin](https://www.npmjs.com/package/@ripple-ts/vite-plugin) -
|
|
123
|
-
Vite plugin for Ripple
|
|
110
|
+
ESLint rules for TSRX
|
|
124
111
|
- [@tsrx/prettier-plugin](https://www.npmjs.com/package/@tsrx/prettier-plugin) -
|
|
125
|
-
Prettier plugin for
|
|
112
|
+
Prettier plugin for TSRX
|
|
126
113
|
|
|
127
114
|
## License
|
|
128
115
|
|
package/dist/index.d.ts
CHANGED
|
@@ -504,9 +504,9 @@ interface ParseResult {
|
|
|
504
504
|
visitorKeys?: Record<string, string[]>;
|
|
505
505
|
}
|
|
506
506
|
/**
|
|
507
|
-
* ESLint parser for
|
|
507
|
+
* ESLint parser for TSRX (.tsrx) files
|
|
508
508
|
*
|
|
509
|
-
* This parser uses
|
|
509
|
+
* This parser uses the shared TSRX parser to parse .tsrx files
|
|
510
510
|
* and returns an ESTree-compatible AST for ESLint to analyze.
|
|
511
511
|
*/
|
|
512
512
|
declare function parseForESLint(code: string, options?: Linter.ParserOptions): ParseResult;
|
|
@@ -514,12 +514,6 @@ declare function parseForESLint(code: string, options?: Linter.ParserOptions): P
|
|
|
514
514
|
* Legacy parse function for older ESLint versions
|
|
515
515
|
*/
|
|
516
516
|
declare function parse(code: string, options?: Linter.ParserOptions): Program;
|
|
517
|
-
declare global {
|
|
518
|
-
var __RIPPLE_COMPILER__: {
|
|
519
|
-
parse: (source: string) => Program;
|
|
520
|
-
compile: (source: string, filename: string, options?: any) => any;
|
|
521
|
-
};
|
|
522
|
-
}
|
|
523
517
|
declare const _default: {
|
|
524
518
|
parseForESLint: typeof parseForESLint;
|
|
525
519
|
parse: typeof parse;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":["BaseNodeWithoutComments","SourceLocation","type","loc","range","BaseNode","Comment","leadingComments","trailingComments","NodeMap","AssignmentProperty","CatchClause","Class","ClassBody","Expression","Function","Identifier","Literal","MethodDefinition","ModuleDeclaration","ModuleSpecifier","Pattern","PrivateIdentifier","Program","Property","PropertyDefinition","SpreadElement","Statement","Super","SwitchCase","TemplateElement","VariableDeclarator","Node","value","Position","source","start","end","line","column","Directive","Array","sourceType","body","comments","expression","directive","BaseFunction","BlockStatement","params","generator","async","FunctionDeclaration","FunctionExpression","ArrowFunctionExpression","ExpressionStatement","StaticBlock","EmptyStatement","DebuggerStatement","WithStatement","ReturnStatement","LabeledStatement","BreakStatement","ContinueStatement","IfStatement","SwitchStatement","ThrowStatement","TryStatement","WhileStatement","DoWhileStatement","ForStatement","ForInStatement","ForOfStatement","Declaration","BaseStatement","innerComments","Omit","test","consequent","alternate","label","object","discriminant","cases","argument","block","handler","finalizer","VariableDeclaration","init","update","BaseForXStatement","left","right","ClassDeclaration","BaseDeclaration","MaybeNamedFunctionDeclaration","id","declarations","kind","ExpressionMap","ArrayExpression","AssignmentExpression","AwaitExpression","BinaryExpression","CallExpression","ChainExpression","ClassExpression","ConditionalExpression","ImportExpression","LogicalExpression","MemberExpression","MetaProperty","NewExpression","ObjectExpression","SequenceExpression","TaggedTemplateExpression","TemplateLiteral","ThisExpression","UnaryExpression","UpdateExpression","YieldExpression","BaseExpression","ChainElement","SimpleCallExpression","elements","properties","name","key","method","shorthand","computed","static","expressions","UnaryOperator","operator","prefix","BinaryOperator","AssignmentOperator","UpdateOperator","LogicalOperator","BaseCallExpression","callee","arguments","optional","BasePattern","property","ObjectPattern","ArrayPattern","RestElement","AssignmentPattern","param","SimpleLiteral","RegExpLiteral","BigIntLiteral","raw","RegExp","regex","pattern","flags","bigint","await","delegate","quasis","tag","quasi","tail","cooked","BaseClass","superClass","MaybeNamedClassDeclaration","meta","ImportDeclaration","ExportNamedDeclaration","ExportDefaultDeclaration","ExportAllDeclaration","BaseModuleDeclaration","ImportSpecifier","ImportDefaultSpecifier","ImportNamespaceSpecifier","ExportSpecifier","BaseModuleSpecifier","local","ImportAttribute","specifiers","attributes","imported","options","declaration","exported"],"sources":["../../../node_modules/.pnpm/@types+estree@1.0.8/node_modules/@types/estree/index.d.ts","../src/index.ts"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["BaseNodeWithoutComments","SourceLocation","type","loc","range","BaseNode","Comment","leadingComments","trailingComments","NodeMap","AssignmentProperty","CatchClause","Class","ClassBody","Expression","Function","Identifier","Literal","MethodDefinition","ModuleDeclaration","ModuleSpecifier","Pattern","PrivateIdentifier","Program","Property","PropertyDefinition","SpreadElement","Statement","Super","SwitchCase","TemplateElement","VariableDeclarator","Node","value","Position","source","start","end","line","column","Directive","Array","sourceType","body","comments","expression","directive","BaseFunction","BlockStatement","params","generator","async","FunctionDeclaration","FunctionExpression","ArrowFunctionExpression","ExpressionStatement","StaticBlock","EmptyStatement","DebuggerStatement","WithStatement","ReturnStatement","LabeledStatement","BreakStatement","ContinueStatement","IfStatement","SwitchStatement","ThrowStatement","TryStatement","WhileStatement","DoWhileStatement","ForStatement","ForInStatement","ForOfStatement","Declaration","BaseStatement","innerComments","Omit","test","consequent","alternate","label","object","discriminant","cases","argument","block","handler","finalizer","VariableDeclaration","init","update","BaseForXStatement","left","right","ClassDeclaration","BaseDeclaration","MaybeNamedFunctionDeclaration","id","declarations","kind","ExpressionMap","ArrayExpression","AssignmentExpression","AwaitExpression","BinaryExpression","CallExpression","ChainExpression","ClassExpression","ConditionalExpression","ImportExpression","LogicalExpression","MemberExpression","MetaProperty","NewExpression","ObjectExpression","SequenceExpression","TaggedTemplateExpression","TemplateLiteral","ThisExpression","UnaryExpression","UpdateExpression","YieldExpression","BaseExpression","ChainElement","SimpleCallExpression","elements","properties","name","key","method","shorthand","computed","static","expressions","UnaryOperator","operator","prefix","BinaryOperator","AssignmentOperator","UpdateOperator","LogicalOperator","BaseCallExpression","callee","arguments","optional","BasePattern","property","ObjectPattern","ArrayPattern","RestElement","AssignmentPattern","param","SimpleLiteral","RegExpLiteral","BigIntLiteral","raw","RegExp","regex","pattern","flags","bigint","await","delegate","quasis","tag","quasi","tail","cooked","BaseClass","superClass","MaybeNamedClassDeclaration","meta","ImportDeclaration","ExportNamedDeclaration","ExportDefaultDeclaration","ExportAllDeclaration","BaseModuleDeclaration","ImportSpecifier","ImportDefaultSpecifier","ImportNamespaceSpecifier","ExportSpecifier","BaseModuleSpecifier","local","ImportAttribute","specifiers","attributes","imported","options","declaration","exported"],"sources":["../../../node_modules/.pnpm/@types+estree@1.0.8/node_modules/@types/estree/index.d.ts","../src/index.ts"],"x_google_ignoreList":[0],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { parseModule } from "@tsrx/core";
|
|
2
2
|
//#region src/index.ts
|
|
3
3
|
/**
|
|
4
|
-
* The
|
|
4
|
+
* The TSRX parser's AST contains some redundant references (e.g. `Element.attributes`
|
|
5
5
|
* and `Element.openingElement.attributes`) that are useful for formatters/source-maps.
|
|
6
6
|
* ESLint's traverser will visit both paths and can trigger duplicate rule reports.
|
|
7
7
|
*
|
|
8
8
|
* For ESLint, we prune JSX wrapper nodes to keep a single traversal path.
|
|
9
9
|
*/
|
|
10
|
-
function
|
|
10
|
+
function normalize_tsrx_ast_for_eslint(ast) {
|
|
11
11
|
const seen = /* @__PURE__ */ new Set();
|
|
12
12
|
const visit = (node) => {
|
|
13
13
|
if (!node || typeof node !== "object") return;
|
|
@@ -30,65 +30,65 @@ function normalizeRippleAstForEslint(ast) {
|
|
|
30
30
|
* Recursively walks the AST and ensures all nodes have range and loc properties
|
|
31
31
|
* ESLint's scope analyzer requires these properties on ALL nodes
|
|
32
32
|
*/
|
|
33
|
-
function
|
|
33
|
+
function ensure_node_properties(node, code) {
|
|
34
34
|
if (!node || typeof node !== "object") return;
|
|
35
35
|
if (node.start !== void 0 && node.end !== void 0 && !node.range) node.range = [node.start, node.end];
|
|
36
36
|
if (!node.loc && node.start !== void 0 && node.end !== void 0) {
|
|
37
37
|
const lines = code.split("\n");
|
|
38
|
-
let
|
|
39
|
-
let
|
|
40
|
-
let
|
|
41
|
-
let
|
|
42
|
-
let
|
|
38
|
+
let current_pos = 0;
|
|
39
|
+
let start_line = 1;
|
|
40
|
+
let start_column = 0;
|
|
41
|
+
let end_line = 1;
|
|
42
|
+
let end_column = 0;
|
|
43
43
|
for (let i = 0; i < lines.length; i++) {
|
|
44
|
-
const
|
|
45
|
-
if (
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
const line_length = lines[i].length + 1;
|
|
45
|
+
if (current_pos + line_length > node.start) {
|
|
46
|
+
start_line = i + 1;
|
|
47
|
+
start_column = node.start - current_pos;
|
|
48
48
|
break;
|
|
49
49
|
}
|
|
50
|
-
|
|
50
|
+
current_pos += line_length;
|
|
51
51
|
}
|
|
52
|
-
|
|
52
|
+
current_pos = 0;
|
|
53
53
|
for (let i = 0; i < lines.length; i++) {
|
|
54
|
-
const
|
|
55
|
-
if (
|
|
56
|
-
|
|
57
|
-
|
|
54
|
+
const line_length = lines[i].length + 1;
|
|
55
|
+
if (current_pos + line_length > node.end) {
|
|
56
|
+
end_line = i + 1;
|
|
57
|
+
end_column = node.end - current_pos;
|
|
58
58
|
break;
|
|
59
59
|
}
|
|
60
|
-
|
|
60
|
+
current_pos += line_length;
|
|
61
61
|
}
|
|
62
62
|
node.loc = {
|
|
63
63
|
start: {
|
|
64
|
-
line:
|
|
65
|
-
column:
|
|
64
|
+
line: start_line,
|
|
65
|
+
column: start_column
|
|
66
66
|
},
|
|
67
67
|
end: {
|
|
68
|
-
line:
|
|
69
|
-
column:
|
|
68
|
+
line: end_line,
|
|
69
|
+
column: end_column
|
|
70
70
|
}
|
|
71
71
|
};
|
|
72
72
|
}
|
|
73
73
|
for (const key in node) {
|
|
74
74
|
if (key === "parent" || key === "loc" || key === "range") continue;
|
|
75
75
|
const value = node[key];
|
|
76
|
-
if (Array.isArray(value)) value.forEach((child) =>
|
|
77
|
-
else if (value && typeof value === "object" && value.type)
|
|
76
|
+
if (Array.isArray(value)) value.forEach((child) => ensure_node_properties(child, code));
|
|
77
|
+
else if (value && typeof value === "object" && value.type) ensure_node_properties(value, code);
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
/**
|
|
81
|
-
* ESLint parser for
|
|
81
|
+
* ESLint parser for TSRX (.tsrx) files
|
|
82
82
|
*
|
|
83
|
-
* This parser uses
|
|
83
|
+
* This parser uses the shared TSRX parser to parse .tsrx files
|
|
84
84
|
* and returns an ESTree-compatible AST for ESLint to analyze.
|
|
85
85
|
*/
|
|
86
86
|
function parseForESLint(code, options) {
|
|
87
87
|
try {
|
|
88
|
-
const ast =
|
|
88
|
+
const ast = parseModule(code, options?.filePath);
|
|
89
89
|
if (!ast) throw new Error("Parser returned null or undefined AST");
|
|
90
|
-
|
|
91
|
-
|
|
90
|
+
normalize_tsrx_ast_for_eslint(ast);
|
|
91
|
+
ensure_node_properties(ast, code);
|
|
92
92
|
return {
|
|
93
93
|
ast: {
|
|
94
94
|
type: ast.type || "Program",
|
|
@@ -114,7 +114,7 @@ function parseForESLint(code, options) {
|
|
|
114
114
|
visitorKeys: void 0
|
|
115
115
|
};
|
|
116
116
|
} catch (error) {
|
|
117
|
-
throw new SyntaxError(`Failed to parse
|
|
117
|
+
throw new SyntaxError(`Failed to parse TSRX file: ${error.message || error}`);
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
120
|
/**
|
|
@@ -123,22 +123,6 @@ function parseForESLint(code, options) {
|
|
|
123
123
|
function parse(code, options) {
|
|
124
124
|
return parseForESLint(code, options).ast;
|
|
125
125
|
}
|
|
126
|
-
/**
|
|
127
|
-
* Helper to require the Ripple compiler
|
|
128
|
-
* This handles both CommonJS and ESM environments
|
|
129
|
-
*/
|
|
130
|
-
function requireRippleCompiler() {
|
|
131
|
-
const globalRipple = globalThis.__RIPPLE_COMPILER__;
|
|
132
|
-
if (globalRipple && globalRipple.parse) return globalRipple;
|
|
133
|
-
try {
|
|
134
|
-
const ripple = createRequire(import.meta.url)("@tsrx/ripple");
|
|
135
|
-
if (!ripple || !ripple.parse) throw new Error("Ripple compiler loaded but parse function not found.");
|
|
136
|
-
globalThis.__RIPPLE_COMPILER__ = ripple;
|
|
137
|
-
return ripple;
|
|
138
|
-
} catch (error) {
|
|
139
|
-
throw new Error(`Failed to load Ripple compiler: ${error.message}. Make sure the "@tsrx/ripple" package is installed as a peer dependency.`);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
126
|
var src_default = {
|
|
143
127
|
parseForESLint,
|
|
144
128
|
parse
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["import type { Program } from 'estree';\nimport type { Linter } from 'eslint';\nimport {
|
|
1
|
+
{"version":3,"file":"index.js","names":["parse_module"],"sources":["../src/index.ts"],"sourcesContent":["import type { Program } from 'estree';\nimport type { Linter } from 'eslint';\nimport { parseModule as parse_module } from '@tsrx/core';\n\ninterface ParseResult {\n\tast: Program;\n\tservices?: Record<string, any>;\n\tscopeManager?: any;\n\tvisitorKeys?: Record<string, string[]>;\n}\n\n/**\n * The TSRX parser's AST contains some redundant references (e.g. `Element.attributes`\n * and `Element.openingElement.attributes`) that are useful for formatters/source-maps.\n * ESLint's traverser will visit both paths and can trigger duplicate rule reports.\n *\n * For ESLint, we prune JSX wrapper nodes to keep a single traversal path.\n */\nfunction normalize_tsrx_ast_for_eslint(ast: any): void {\n\tconst seen = new Set<any>();\n\tconst visit = (node: any) => {\n\t\tif (!node || typeof node !== 'object') return;\n\t\tif (seen.has(node)) return;\n\t\tseen.add(node);\n\n\t\tif (node.type === 'Element') {\n\t\t\t// Avoid duplicate traversal of attributes/children through openingElement/closingElement.\n\t\t\t// The Element node itself carries the data ESLint rules care about.\n\t\t\tdelete node.openingElement;\n\t\t\tdelete node.closingElement;\n\t\t}\n\n\t\tfor (const key of Object.keys(node)) {\n\t\t\tif (key === 'parent' || key === 'loc' || key === 'range') continue;\n\t\t\tconst value = node[key];\n\t\t\tif (Array.isArray(value)) {\n\t\t\t\tfor (const child of value) visit(child);\n\t\t\t} else if (value && typeof value === 'object') {\n\t\t\t\tvisit(value);\n\t\t\t}\n\t\t}\n\t};\n\n\tvisit(ast);\n}\n\n/**\n * Recursively walks the AST and ensures all nodes have range and loc properties\n * ESLint's scope analyzer requires these properties on ALL nodes\n */\nfunction ensure_node_properties(node: any, code: string): void {\n\tif (!node || typeof node !== 'object') {\n\t\treturn;\n\t}\n\n\t// Ensure range property exists\n\tif (node.start !== undefined && node.end !== undefined && !node.range) {\n\t\tnode.range = [node.start, node.end];\n\t}\n\n\t// Ensure loc property exists\n\tif (!node.loc && node.start !== undefined && node.end !== undefined) {\n\t\tconst lines = code.split('\\n');\n\t\tlet current_pos = 0;\n\t\tlet start_line = 1;\n\t\tlet start_column = 0;\n\t\tlet end_line = 1;\n\t\tlet end_column = 0;\n\n\t\tfor (let i = 0; i < lines.length; i++) {\n\t\t\tconst line_length = lines[i].length + 1;\n\t\t\tif (current_pos + line_length > node.start) {\n\t\t\t\tstart_line = i + 1;\n\t\t\t\tstart_column = node.start - current_pos;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcurrent_pos += line_length;\n\t\t}\n\n\t\tcurrent_pos = 0;\n\t\tfor (let i = 0; i < lines.length; i++) {\n\t\t\tconst line_length = lines[i].length + 1;\n\t\t\tif (current_pos + line_length > node.end) {\n\t\t\t\tend_line = i + 1;\n\t\t\t\tend_column = node.end - current_pos;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcurrent_pos += line_length;\n\t\t}\n\n\t\tnode.loc = {\n\t\t\tstart: { line: start_line, column: start_column },\n\t\t\tend: { line: end_line, column: end_column },\n\t\t};\n\t}\n\n\tfor (const key in node) {\n\t\tif (key === 'parent' || key === 'loc' || key === 'range') {\n\t\t\tcontinue; // Skip these to avoid infinite loops\n\t\t}\n\n\t\tconst value = node[key];\n\t\tif (Array.isArray(value)) {\n\t\t\tvalue.forEach((child) => ensure_node_properties(child, code));\n\t\t} else if (value && typeof value === 'object' && value.type) {\n\t\t\tensure_node_properties(value, code);\n\t\t}\n\t}\n}\n\n/**\n * ESLint parser for TSRX (.tsrx) files\n *\n * This parser uses the shared TSRX parser to parse .tsrx files\n * and returns an ESTree-compatible AST for ESLint to analyze.\n */\nexport function parseForESLint(code: string, options?: Linter.ParserOptions): ParseResult {\n\ttry {\n\t\t// Parse the TSRX source code using the shared TSRX parser\n\t\tconst ast = parse_module(code, options?.filePath) as any;\n\t\tif (!ast) throw new Error('Parser returned null or undefined AST');\n\n\t\t// Normalize for ESLint traversal (avoid duplicate node visits)\n\t\tnormalize_tsrx_ast_for_eslint(ast);\n\n\t\t// Recursively ensure all nodes have range and loc properties\n\t\tensure_node_properties(ast, code);\n\n\t\t// Create a properly structured AST object ensuring all required properties exist\n\t\tconst result: any = {\n\t\t\ttype: ast.type || 'Program',\n\t\t\tstart: ast.start !== undefined ? ast.start : 0,\n\t\t\tend: ast.end !== undefined ? ast.end : code.length,\n\t\t\tloc: ast.loc || {\n\t\t\t\tstart: { line: 1, column: 0 },\n\t\t\t\tend: { line: code.split('\\n').length, column: 0 },\n\t\t\t},\n\t\t\trange: ast.range || [0, code.length],\n\t\t\tbody: ast.body || [],\n\t\t\tsourceType: ast.sourceType || 'module',\n\t\t\tcomments: ast.comments || [],\n\t\t\ttokens: ast.tokens || [],\n\t\t};\n\n\t\treturn {\n\t\t\tast: result,\n\t\t\tservices: {},\n\t\t\tvisitorKeys: undefined, // Use ESLint's default visitor keys\n\t\t};\n\t} catch (error: any) {\n\t\t// Transform TSRX parse errors to ESLint-compatible format\n\t\tthrow new SyntaxError(`Failed to parse TSRX file: ${error.message || error}`);\n\t}\n}\n\n/**\n * Legacy parse function for older ESLint versions\n */\nexport function parse(code: string, options?: Linter.ParserOptions): Program {\n\tconst result = parseForESLint(code, options);\n\treturn result.ast;\n}\n\nexport default {\n\tparseForESLint,\n\tparse,\n};\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tsrx/eslint-parser",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.59",
|
|
4
4
|
"description": "ESLint parser for Ripple (.tsrx files)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.ts",
|
|
@@ -30,11 +30,10 @@
|
|
|
30
30
|
"author": "Dominic Gannaway",
|
|
31
31
|
"license": "MIT",
|
|
32
32
|
"peerDependencies": {
|
|
33
|
-
"eslint": ">=9.0.0"
|
|
34
|
-
"ripple": "*"
|
|
33
|
+
"eslint": ">=9.0.0"
|
|
35
34
|
},
|
|
36
35
|
"dependencies": {
|
|
37
|
-
"@tsrx/
|
|
36
|
+
"@tsrx/core": "0.1.9"
|
|
38
37
|
},
|
|
39
38
|
"devDependencies": {
|
|
40
39
|
"@types/eslint": "^9.6.1",
|
package/src/index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Program } from 'estree';
|
|
2
2
|
import type { Linter } from 'eslint';
|
|
3
|
-
import {
|
|
3
|
+
import { parseModule as parse_module } from '@tsrx/core';
|
|
4
4
|
|
|
5
5
|
interface ParseResult {
|
|
6
6
|
ast: Program;
|
|
@@ -10,13 +10,13 @@ interface ParseResult {
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
|
-
* The
|
|
13
|
+
* The TSRX parser's AST contains some redundant references (e.g. `Element.attributes`
|
|
14
14
|
* and `Element.openingElement.attributes`) that are useful for formatters/source-maps.
|
|
15
15
|
* ESLint's traverser will visit both paths and can trigger duplicate rule reports.
|
|
16
16
|
*
|
|
17
17
|
* For ESLint, we prune JSX wrapper nodes to keep a single traversal path.
|
|
18
18
|
*/
|
|
19
|
-
function
|
|
19
|
+
function normalize_tsrx_ast_for_eslint(ast: any): void {
|
|
20
20
|
const seen = new Set<any>();
|
|
21
21
|
const visit = (node: any) => {
|
|
22
22
|
if (!node || typeof node !== 'object') return;
|
|
@@ -48,7 +48,7 @@ function normalizeRippleAstForEslint(ast: any): void {
|
|
|
48
48
|
* Recursively walks the AST and ensures all nodes have range and loc properties
|
|
49
49
|
* ESLint's scope analyzer requires these properties on ALL nodes
|
|
50
50
|
*/
|
|
51
|
-
function
|
|
51
|
+
function ensure_node_properties(node: any, code: string): void {
|
|
52
52
|
if (!node || typeof node !== 'object') {
|
|
53
53
|
return;
|
|
54
54
|
}
|
|
@@ -61,36 +61,36 @@ function ensureNodeProperties(node: any, code: string): void {
|
|
|
61
61
|
// Ensure loc property exists
|
|
62
62
|
if (!node.loc && node.start !== undefined && node.end !== undefined) {
|
|
63
63
|
const lines = code.split('\n');
|
|
64
|
-
let
|
|
65
|
-
let
|
|
66
|
-
let
|
|
67
|
-
let
|
|
68
|
-
let
|
|
64
|
+
let current_pos = 0;
|
|
65
|
+
let start_line = 1;
|
|
66
|
+
let start_column = 0;
|
|
67
|
+
let end_line = 1;
|
|
68
|
+
let end_column = 0;
|
|
69
69
|
|
|
70
70
|
for (let i = 0; i < lines.length; i++) {
|
|
71
|
-
const
|
|
72
|
-
if (
|
|
73
|
-
|
|
74
|
-
|
|
71
|
+
const line_length = lines[i].length + 1;
|
|
72
|
+
if (current_pos + line_length > node.start) {
|
|
73
|
+
start_line = i + 1;
|
|
74
|
+
start_column = node.start - current_pos;
|
|
75
75
|
break;
|
|
76
76
|
}
|
|
77
|
-
|
|
77
|
+
current_pos += line_length;
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
current_pos = 0;
|
|
81
81
|
for (let i = 0; i < lines.length; i++) {
|
|
82
|
-
const
|
|
83
|
-
if (
|
|
84
|
-
|
|
85
|
-
|
|
82
|
+
const line_length = lines[i].length + 1;
|
|
83
|
+
if (current_pos + line_length > node.end) {
|
|
84
|
+
end_line = i + 1;
|
|
85
|
+
end_column = node.end - current_pos;
|
|
86
86
|
break;
|
|
87
87
|
}
|
|
88
|
-
|
|
88
|
+
current_pos += line_length;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
node.loc = {
|
|
92
|
-
start: { line:
|
|
93
|
-
end: { line:
|
|
92
|
+
start: { line: start_line, column: start_column },
|
|
93
|
+
end: { line: end_line, column: end_column },
|
|
94
94
|
};
|
|
95
95
|
}
|
|
96
96
|
|
|
@@ -101,34 +101,30 @@ function ensureNodeProperties(node: any, code: string): void {
|
|
|
101
101
|
|
|
102
102
|
const value = node[key];
|
|
103
103
|
if (Array.isArray(value)) {
|
|
104
|
-
value.forEach((child) =>
|
|
104
|
+
value.forEach((child) => ensure_node_properties(child, code));
|
|
105
105
|
} else if (value && typeof value === 'object' && value.type) {
|
|
106
|
-
|
|
106
|
+
ensure_node_properties(value, code);
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
/**
|
|
112
|
-
* ESLint parser for
|
|
112
|
+
* ESLint parser for TSRX (.tsrx) files
|
|
113
113
|
*
|
|
114
|
-
* This parser uses
|
|
114
|
+
* This parser uses the shared TSRX parser to parse .tsrx files
|
|
115
115
|
* and returns an ESTree-compatible AST for ESLint to analyze.
|
|
116
116
|
*/
|
|
117
117
|
export function parseForESLint(code: string, options?: Linter.ParserOptions): ParseResult {
|
|
118
118
|
try {
|
|
119
|
-
//
|
|
120
|
-
|
|
121
|
-
const rippleCompiler = requireRippleCompiler();
|
|
122
|
-
|
|
123
|
-
// Parse the Ripple source code using the Ripple compiler
|
|
124
|
-
const ast = rippleCompiler.parse(code);
|
|
119
|
+
// Parse the TSRX source code using the shared TSRX parser
|
|
120
|
+
const ast = parse_module(code, options?.filePath) as any;
|
|
125
121
|
if (!ast) throw new Error('Parser returned null or undefined AST');
|
|
126
122
|
|
|
127
123
|
// Normalize for ESLint traversal (avoid duplicate node visits)
|
|
128
|
-
|
|
124
|
+
normalize_tsrx_ast_for_eslint(ast);
|
|
129
125
|
|
|
130
126
|
// Recursively ensure all nodes have range and loc properties
|
|
131
|
-
|
|
127
|
+
ensure_node_properties(ast, code);
|
|
132
128
|
|
|
133
129
|
// Create a properly structured AST object ensuring all required properties exist
|
|
134
130
|
const result: any = {
|
|
@@ -152,8 +148,8 @@ export function parseForESLint(code: string, options?: Linter.ParserOptions): Pa
|
|
|
152
148
|
visitorKeys: undefined, // Use ESLint's default visitor keys
|
|
153
149
|
};
|
|
154
150
|
} catch (error: any) {
|
|
155
|
-
// Transform
|
|
156
|
-
throw new SyntaxError(`Failed to parse
|
|
151
|
+
// Transform TSRX parse errors to ESLint-compatible format
|
|
152
|
+
throw new SyntaxError(`Failed to parse TSRX file: ${error.message || error}`);
|
|
157
153
|
}
|
|
158
154
|
}
|
|
159
155
|
|
|
@@ -165,44 +161,6 @@ export function parse(code: string, options?: Linter.ParserOptions): Program {
|
|
|
165
161
|
return result.ast;
|
|
166
162
|
}
|
|
167
163
|
|
|
168
|
-
/**
|
|
169
|
-
* Helper to require the Ripple compiler
|
|
170
|
-
* This handles both CommonJS and ESM environments
|
|
171
|
-
*/
|
|
172
|
-
function requireRippleCompiler(): any {
|
|
173
|
-
const globalRipple = (globalThis as any).__RIPPLE_COMPILER__;
|
|
174
|
-
if (globalRipple && globalRipple.parse) {
|
|
175
|
-
return globalRipple;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
try {
|
|
179
|
-
// Use createRequire to dynamically require the module
|
|
180
|
-
// This works in both ESM and CommonJS contexts
|
|
181
|
-
const require = createRequire(import.meta.url);
|
|
182
|
-
const ripple = require('@tsrx/ripple');
|
|
183
|
-
|
|
184
|
-
if (!ripple || !ripple.parse) {
|
|
185
|
-
throw new Error('Ripple compiler loaded but parse function not found.');
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
(globalThis as any).__RIPPLE_COMPILER__ = ripple;
|
|
189
|
-
|
|
190
|
-
return ripple;
|
|
191
|
-
} catch (error: any) {
|
|
192
|
-
throw new Error(
|
|
193
|
-
`Failed to load Ripple compiler: ${error.message}. ` +
|
|
194
|
-
'Make sure the "@tsrx/ripple" package is installed as a peer dependency.',
|
|
195
|
-
);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
declare global {
|
|
200
|
-
var __RIPPLE_COMPILER__: {
|
|
201
|
-
parse: (source: string) => Program;
|
|
202
|
-
compile: (source: string, filename: string, options?: any) => any;
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
|
|
206
164
|
export default {
|
|
207
165
|
parseForESLint,
|
|
208
166
|
parse,
|