Skip to content

Commit 760fa2e

Browse files
ntkmenex3
andauthored
Add current stylesheet to loadedUrls when throwing parsing error (#1991)
Co-authored-by: Natalie Weizenbaum <[email protected]>
1 parent 645e48f commit 760fa2e

File tree

3 files changed

+24
-10
lines changed

3 files changed

+24
-10
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
## 1.63.4
2+
3+
### Embedded Sass
4+
5+
* Properly include the root stylesheet's URL in the set of loaded URLs when it
6+
fails to parse.
7+
18
## 1.63.3
29

310
### JavaScript API

lib/src/ast/sass/statement/stylesheet.dart

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -76,15 +76,22 @@ class Stylesheet extends ParentStatement<List<Statement>> {
7676
/// Throws a [SassFormatException] if parsing fails.
7777
factory Stylesheet.parse(String contents, Syntax syntax,
7878
{Object? url, Logger? logger}) {
79-
switch (syntax) {
80-
case Syntax.sass:
81-
return Stylesheet.parseSass(contents, url: url, logger: logger);
82-
case Syntax.scss:
83-
return Stylesheet.parseScss(contents, url: url, logger: logger);
84-
case Syntax.css:
85-
return Stylesheet.parseCss(contents, url: url, logger: logger);
86-
default:
87-
throw ArgumentError("Unknown syntax $syntax.");
79+
try {
80+
switch (syntax) {
81+
case Syntax.sass:
82+
return Stylesheet.parseSass(contents, url: url, logger: logger);
83+
case Syntax.scss:
84+
return Stylesheet.parseScss(contents, url: url, logger: logger);
85+
case Syntax.css:
86+
return Stylesheet.parseCss(contents, url: url, logger: logger);
87+
default:
88+
throw ArgumentError("Unknown syntax $syntax.");
89+
}
90+
} on SassException catch (error) {
91+
var url = error.span.sourceUrl;
92+
if (url == null || url.toString() == 'stdin') rethrow;
93+
94+
throw error.withLoadedUrls(Set.unmodifiable({url}));
8895
}
8996
}
9097

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: sass
2-
version: 1.63.3
2+
version: 1.63.4-dev
33
description: A Sass implementation in Dart.
44
homepage: https://github.com/sass/dart-sass
55

0 commit comments

Comments
 (0)