Skip to content

Commit 0257ce8

Browse files
committed
Require Angular 20
1 parent 31c8c86 commit 0257ce8

File tree

5 files changed

+519
-515
lines changed

5 files changed

+519
-515
lines changed

package.json

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -27,30 +27,30 @@
2727
"release": "release-it"
2828
},
2929
"devDependencies": {
30-
"@angular/compiler": "20.0.0-next.8",
31-
"@babel/code-frame": "7.26.2",
32-
"@babel/parser": "7.26.10",
33-
"@babel/types": "7.26.10",
30+
"@angular/compiler": "20.0.0",
31+
"@babel/code-frame": "7.27.1",
32+
"@babel/parser": "7.27.3",
33+
"@babel/types": "7.27.3",
3434
"@types/babel__code-frame": "7.0.6",
35-
"@types/node": "22.13.10",
36-
"@vitest/coverage-v8": "3.0.8",
35+
"@types/node": "22.15.23",
36+
"@vitest/coverage-v8": "3.1.4",
3737
"del-cli": "6.0.0",
38-
"eslint": "9.22.0",
39-
"eslint-config-prettier": "10.1.1",
38+
"eslint": "9.27.0",
39+
"eslint-config-prettier": "10.1.5",
4040
"eslint-plugin-simple-import-sort": "12.1.1",
41-
"eslint-plugin-unicorn": "57.0.0",
42-
"globals": "16.0.0",
41+
"eslint-plugin-unicorn": "59.0.1",
42+
"globals": "16.2.0",
4343
"jest-snapshot-serializer-raw": "2.0.0",
4444
"lines-and-columns": "2.0.4",
45-
"npm-run-all2": "7.0.2",
45+
"npm-run-all2": "8.0.4",
4646
"prettier": "3.5.3",
47-
"release-it": "19.0.1",
48-
"typescript": "5.8.2",
49-
"typescript-eslint": "8.26.1",
50-
"vitest": "3.0.8"
47+
"release-it": "19.0.2",
48+
"typescript": "5.8.3",
49+
"typescript-eslint": "8.33.0",
50+
"vitest": "3.1.4"
5151
},
5252
"peerDependencies": {
53-
"@angular/compiler": ">=19.2.2 || ^20.0.0"
53+
"@angular/compiler": "^20.0.0"
5454
},
5555
"engines": {
5656
"node": ">= 20"

src/transform-node.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -405,8 +405,9 @@ class Transformer extends Source {
405405
type: nodeType,
406406
callee: tReceiver,
407407
arguments: tArgs,
408-
optional:
409-
nodeType === 'OptionalCallExpression' ? isOptionalType : undefined,
408+
...(nodeType === 'OptionalCallExpression'
409+
? { optional: isOptionalType }
410+
: undefined),
410411
start: getOuterStart(tReceiver),
411412
end: node.sourceSpan.end, // `)`
412413
},

tests/helpers.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,13 @@ export function parseBabel(input: string) {
3737
return fixBabelCommentsRange(babelParser.parse(input, babelParserOptions));
3838
}
3939

40-
export function massageAst(ast: any): any {
40+
export function massageAst(ast: any, parser): any {
4141
if (!ast || typeof ast !== 'object') {
4242
return ast;
4343
}
4444

4545
if (Array.isArray(ast)) {
46-
return ast.map(massageAst);
46+
return ast.map((node) => massageAst(node, parser));
4747
}
4848

4949
// Not exists in types, but exists in node.
@@ -64,7 +64,7 @@ export function massageAst(ast: any): any {
6464
// do nothing
6565
break;
6666
case 'extra': {
67-
const extra = massageAst(ast[key]);
67+
const extra = massageAst(ast[key], parser);
6868
if (extra) {
6969
// we added a custom `parenEnd` field for positioning
7070
delete extra.parenEnd;
@@ -75,7 +75,7 @@ export function massageAst(ast: any): any {
7575
break;
7676
}
7777
default:
78-
reduced[key] = massageAst(ast[key]);
78+
reduced[key] = massageAst(ast[key], parser);
7979
break;
8080
}
8181
return reduced;

tests/transform.test.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,8 @@ describe.each`
104104
${'TemplateLiteral'} | ${'TemplateLiteral'} | ${' `` '} | ${true} | ${true} | ${true} | ${true}
105105
${'TaggedTemplateLiteral'} | ${'TaggedTemplateExpression'} | ${' tag ` a ${ b } \\u0063 ` '} | ${true} | ${true} | ${true} | ${true}
106106
${'TaggedTemplateLiteral'} | ${'TaggedTemplateExpression'} | ${' ( ( ( ( tag ) ) ` a ${ b } \\u0063 ` ) ) '} | ${true} | ${true} | ${true} | ${true}
107+
${'LiteralMap'} | ${'ObjectExpression'} | ${' ( ( {foo: ` a ${ b } ` } ) ) '} | ${true} | ${true} | ${true} | ${true}
108+
${'LiteralMap'} | ${'ObjectExpression'} | ${' ( ( {foo: tag ` a ${ b } ` } ) ) '} | ${true} | ${true} | ${true} | ${true}
107109
`('($expectedAngularType -> $expectedEstreeType)', (fields) => {
108110
for (const method of PARSE_METHODS) {
109111
testSection(method, fields);
@@ -178,6 +180,8 @@ function testSection(
178180
expect(statement.type).toEqual('ExpressionStatement');
179181
babelNode = { ...statement.expression, comments };
180182
}
181-
expect(massageAst(estreeNode)).toEqual(massageAst(babelNode));
183+
expect(massageAst(estreeNode, 'angular')).toEqual(
184+
massageAst(babelNode, 'babel'),
185+
);
182186
});
183187
}

0 commit comments

Comments
 (0)