Skip to content

Commit 5f1e493

Browse files
committed
Merge branch 'main' into angular-20
# Conflicts: # package.json # tests/transform.test.ts # yarn.lock
2 parents 26dba94 + 7e8cb64 commit 5f1e493

File tree

5 files changed

+38
-36
lines changed

5 files changed

+38
-36
lines changed

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@
22

33
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
44

5+
## [11.1.1](https://github.com/prettier/angular-estree-parser/compare/v11.1.0...v11.1.1) (2025-03-12)
6+
7+
8+
### Bug Fixes
9+
10+
* fix location for template literals ([#327](https://github.com/prettier/angular-estree-parser/issues/327)) ([299dd90](https://github.com/prettier/angular-estree-parser/commit/299dd90fcad91d584f45e02326eb8739d9f64f18))
11+
12+
13+
514
# [11.1.0](https://github.com/prettier/angular-estree-parser/compare/v11.0.0...v11.1.0) (2025-03-11)
615

716

package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "angular-estree-parser",
3-
"version": "11.1.0",
3+
"version": "11.1.1",
44
"description": "A parser that converts Angular source code into an ESTree-compatible form",
55
"keywords": [],
66
"main": "./lib/index.js",
@@ -29,8 +29,8 @@
2929
"devDependencies": {
3030
"@angular/compiler": "20.0.0-next.1",
3131
"@babel/code-frame": "7.26.2",
32-
"@babel/parser": "7.26.9",
33-
"@babel/types": "7.26.9",
32+
"@babel/parser": "7.26.10",
33+
"@babel/types": "7.26.10",
3434
"@types/babel__code-frame": "7.0.6",
3535
"@types/node": "22.13.10",
3636
"@vitest/coverage-v8": "3.0.8",
@@ -50,7 +50,7 @@
5050
"vitest": "3.0.8"
5151
},
5252
"peerDependencies": {
53-
"@angular/compiler": "^19.0.0 || ^20.0.0"
53+
"@angular/compiler": "^19.2.2 || ^20.0.0"
5454
},
5555
"engines": {
5656
"node": ">= 20"

src/transform-node.ts

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -581,24 +581,13 @@ class Transformer extends Source {
581581
}
582582

583583
if (node instanceof angular.TemplateLiteralElement) {
584-
const templateLiteral = options!.parent! as angular.TemplateLiteral;
585-
const elementIndex = templateLiteral.elements.indexOf(node);
584+
const { elements } = options!.parent! as angular.TemplateLiteral;
585+
const elementIndex = elements.indexOf(node);
586586
const isFirst = elementIndex === 0;
587-
const isLast = elementIndex === templateLiteral.elements.length - 1;
588-
589-
// The `TemplateLiteralElement` don't have correct location information
590-
const start = isFirst
591-
? templateLiteral.sourceSpan.start + 1
592-
: node.sourceSpan.start;
593-
let end;
594-
if (isLast) {
595-
end = templateLiteral.sourceSpan.end - 1;
596-
} else {
597-
const nextExpression = templateLiteral.expressions[elementIndex];
598-
// TODO: Support search multiple characters in `getCharacterLastIndex()`
599-
// FIXME: Search `${` instead
600-
end = this.getCharacterLastIndex('$', nextExpression.sourceSpan.start);
601-
}
587+
const isLast = elementIndex === elements.length - 1;
588+
589+
const end = node.sourceSpan.end - (isLast ? 1 : 0);
590+
const start = node.sourceSpan.start + (isFirst ? 1 : 0);
602591
const raw = this.text.slice(start, end);
603592

604593
return this.#create<babel.TemplateElement>(

tests/transform.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,10 @@ describe.each`
9898
${'VoidExpression'} | ${'UnaryExpression'} | ${' ( ( void ( ( a() ) ) ) ) '} | ${true} | ${true} | ${true} | ${true}
9999
${'TemplateLiteral'} | ${'TemplateLiteral'} | ${' ` a ${ b } \\u0063 ` '} | ${true} | ${true} | ${true} | ${true}
100100
${'TemplateLiteral'} | ${'TemplateLiteral'} | ${' ( ( ` a ${ b } \\u0063 ` ) ) '} | ${true} | ${true} | ${true} | ${true}
101+
${'TemplateLiteral'} | ${'TemplateLiteral'} | ${' ( ` a ${ b } \u0063 ` ) '} | ${true} | ${true} | ${true} | ${true}
102+
${'TemplateLiteral'} | ${'TemplateLiteral'} | ${' ` \u0063 ` '} | ${true} | ${true} | ${true} | ${true}
103+
${'TemplateLiteral'} | ${'TemplateLiteral'} | ${' ( ( ` ` ) ) '} | ${true} | ${true} | ${true} | ${true}
104+
${'TemplateLiteral'} | ${'TemplateLiteral'} | ${' `` '} | ${true} | ${true} | ${true} | ${true}
101105
${'TaggedTemplateLiteral'} | ${'TaggedTemplateExpression'} | ${' tag ` a ${ b } \\u0063 ` '} | ${true} | ${true} | ${true} | ${true}
102106
${'TaggedTemplateLiteral'} | ${'TaggedTemplateExpression'} | ${' ( ( ( ( tag ) ) ` a ${ b } \\u0063 ` ) ) '} | ${true} | ${true} | ${true} | ${true}
103107
`('($expectedAngularType -> $expectedEstreeType)', (fields) => {

yarn.lock

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -54,24 +54,24 @@ __metadata:
5454
languageName: node
5555
linkType: hard
5656

57-
"@babel/parser@npm:7.26.9, @babel/parser@npm:^7.25.4":
58-
version: 7.26.9
59-
resolution: "@babel/parser@npm:7.26.9"
57+
"@babel/parser@npm:7.26.10, @babel/parser@npm:^7.25.4":
58+
version: 7.26.10
59+
resolution: "@babel/parser@npm:7.26.10"
6060
dependencies:
61-
"@babel/types": "npm:^7.26.9"
61+
"@babel/types": "npm:^7.26.10"
6262
bin:
6363
parser: ./bin/babel-parser.js
64-
checksum: 10/cb84fe3ba556d6a4360f3373cf7eb0901c46608c8d77330cc1ca021d60f5d6ebb4056a8e7f9dd0ef231923ef1fe69c87b11ce9e160d2252e089a20232a2b942b
64+
checksum: 10/3f87781f46795ba72448168061d9e99c394fdf9cd4aa3ddf053a06334247da4d25d0923ccc89195937d3360d384cee181e99711763c1e8fe81d4f17ee22541fc
6565
languageName: node
6666
linkType: hard
6767

68-
"@babel/types@npm:7.26.9, @babel/types@npm:^7.25.4, @babel/types@npm:^7.26.9":
69-
version: 7.26.9
70-
resolution: "@babel/types@npm:7.26.9"
68+
"@babel/types@npm:7.26.10, @babel/types@npm:^7.25.4, @babel/types@npm:^7.26.10":
69+
version: 7.26.10
70+
resolution: "@babel/types@npm:7.26.10"
7171
dependencies:
7272
"@babel/helper-string-parser": "npm:^7.25.9"
7373
"@babel/helper-validator-identifier": "npm:^7.25.9"
74-
checksum: 10/11b62ea7ed64ef7e39cc9b33852c1084064c3b970ae0eaa5db659241cfb776577d1e68cbff4de438bada885d3a827b52cc0f3746112d8e1bc672bb99a8eb5b56
74+
checksum: 10/6b4f24ee77af853c2126eaabb65328cd44a7d6f439685131cf929c30567e01b6ea2e5d5653b2c304a09c63a5a6199968f0e27228a007acf35032036d79a9dee6
7575
languageName: node
7676
linkType: hard
7777

@@ -991,8 +991,8 @@ __metadata:
991991
dependencies:
992992
"@angular/compiler": "npm:20.0.0-next.1"
993993
"@babel/code-frame": "npm:7.26.2"
994-
"@babel/parser": "npm:7.26.9"
995-
"@babel/types": "npm:7.26.9"
994+
"@babel/parser": "npm:7.26.10"
995+
"@babel/types": "npm:7.26.10"
996996
"@types/babel__code-frame": "npm:7.0.6"
997997
"@types/node": "npm:22.13.10"
998998
"@vitest/coverage-v8": "npm:3.0.8"
@@ -1011,7 +1011,7 @@ __metadata:
10111011
typescript-eslint: "npm:8.26.1"
10121012
vitest: "npm:3.0.8"
10131013
peerDependencies:
1014-
"@angular/compiler": ^19.0.0 || ^20.0.0
1014+
"@angular/compiler": ^19.2.2 || ^20.0.0
10151015
languageName: unknown
10161016
linkType: soft
10171017

@@ -4666,8 +4666,8 @@ __metadata:
46664666
linkType: hard
46674667

46684668
"vite@npm:^5.0.0 || ^6.0.0":
4669-
version: 6.2.1
4670-
resolution: "vite@npm:6.2.1"
4669+
version: 6.2.4
4670+
resolution: "vite@npm:6.2.4"
46714671
dependencies:
46724672
esbuild: "npm:^0.25.0"
46734673
fsevents: "npm:~2.3.3"
@@ -4713,7 +4713,7 @@ __metadata:
47134713
optional: true
47144714
bin:
47154715
vite: bin/vite.js
4716-
checksum: 10/a37cbc33a3d9746434e8e96614dd6d8d45d821e61e9d266f389808da290b3128ac93ba0059ab09a098cdeab8b790d6d3ae7cdd5e1ce7d55c31b8bece650b3790
4716+
checksum: 10/3734c8695b4d35a5b3ea617159594835e370b428745f37e90d9c1daf82b53af5248578c1f1d9977fc1460320c0cdd4aef135095d378b2eba2736c03e2cfa019e
47174717
languageName: node
47184718
linkType: hard
47194719

0 commit comments

Comments
 (0)