Skip to content

Commit 91640f3

Browse files
committed
Merge some changes from #276
commit e0acafd Author: Tofandel <[email protected]> Date: Wed Apr 9 14:02:44 2025 +0200 Simplify unprefix cognitive complexity commit 601ee43 Author: Tofandel <[email protected]> Date: Wed Apr 9 12:19:02 2025 +0200 No need to run privateToPublic twice commit 8775fc9 Author: Tofandel <[email protected]> Date: Wed Apr 9 10:48:32 2025 +0200 Add tests and fix behavior of remove prefix
1 parent e7b6547 commit 91640f3

File tree

4 files changed

+63
-12
lines changed

4 files changed

+63
-12
lines changed

lib/src/migrators/module.dart

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -357,8 +357,8 @@ class _ModuleMigrationVisitor extends MigrationVisitor {
357357

358358
var name = declaration.name;
359359
name = _unprefix(name,
360-
// Private members can't be accessed outside the module they're declared
361-
// in.
360+
// Private members can't be accessed outside the module they're
361+
// declared in.
362362
forcePublic:
363363
references.referencedOutsideDeclaringStylesheet(declaration));
364364
if (name != declaration.name) {
@@ -376,16 +376,18 @@ class _ModuleMigrationVisitor extends MigrationVisitor {
376376

377377
/// Converts a private identifier to a public one.
378378
String _privateToPublic(String identifier) {
379-
assert(_isPrivate(identifier));
380-
for (var i = 0; i < identifier.length; i++) {
381-
var char = identifier.codeUnitAt(i);
382-
if (char != $dash && char != $underscore) {
383-
return identifier.substring(i);
379+
if (_isPrivate(identifier)) {
380+
for (var i = 0; i < identifier.length; i++) {
381+
var char = identifier.codeUnitAt(i);
382+
if (char != $dash && char != $underscore) {
383+
return identifier.substring(i);
384+
}
384385
}
385-
}
386386

387-
_generatedVariables++;
388-
return 'var${_generatedVariables}';
387+
_generatedVariables++;
388+
return 'var${_generatedVariables}';
389+
}
390+
return identifier;
389391
}
390392

391393
/// Returns whether the member named [name] should be forwarded in the
@@ -1246,6 +1248,7 @@ class _ModuleMigrationVisitor extends MigrationVisitor {
12461248

12471249
/// If [name] starts with any of [prefixesToRemove], returns it with the
12481250
/// longest matching prefix removed.
1251+
/// If forcePublic is true, any leading dash or underscore will be removed.
12491252
///
12501253
/// Otherwise, returns [name] unaltered.
12511254
///
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<==> arguments
2+
--migrate-deps --remove-prefix=--app-
3+
<==> input/entrypoint.scss
4+
@import "library";
5+
a {
6+
color: $--app-var;
7+
background: $__app-var2;
8+
}
9+
10+
<==> input/_library.scss
11+
$--app-red: red;
12+
$--app-var: $--app-red;
13+
$__app-var2: blue;
14+
15+
<==> output/entrypoint.scss
16+
@use "library";
17+
a {
18+
color: library.$var;
19+
background: library.$var2;
20+
}
21+
22+
<==> output/_library.scss
23+
$red: red;
24+
$var: $red;
25+
$var2: blue;

test/migrators/module/scope/pseudoprivate/dash.hrx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ a {
77
}
88

99
<==> input/_library.scss
10-
$-var: red;
10+
$-red: red;
11+
$-var: $-red;
1112

1213
<==> output/entrypoint.scss
1314
@use "library";
@@ -16,4 +17,5 @@ a {
1617
}
1718

1819
<==> output/_library.scss
19-
$var: red;
20+
$-red: red;
21+
$var: $-red;
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<==> arguments
2+
--migrate-deps --remove-prefix=app
3+
<==> input/entrypoint.scss
4+
@import "library";
5+
a {
6+
color: $app-var;
7+
}
8+
9+
<==> input/_library.scss
10+
$_app-red: red;
11+
$app-var: $_app-red;
12+
13+
<==> output/entrypoint.scss
14+
@use "library";
15+
a {
16+
color: library.$var;
17+
}
18+
19+
<==> output/_library.scss
20+
$_red: red;
21+
$var: $_red;

0 commit comments

Comments
 (0)