Skip to content

Commit 07aaabe

Browse files
authored
fix(dart_frog_gen)!: use [...] instead of <...> for dynamic routes (#42)
1 parent 6f781c7 commit 07aaabe

File tree

2 files changed

+16
-12
lines changed

2 files changed

+16
-12
lines changed

packages/dart_frog_gen/lib/src/build_route_configuration.dart

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ List<RouteDirectory> _getRouteDirectories(
7878
directories.add(
7979
RouteDirectory(
8080
name: directoryPath.toAlias(),
81-
route: directoryPath,
81+
route: directoryPath.toRoute(),
8282
middleware: middleware,
8383
files: files,
8484
),
@@ -155,7 +155,7 @@ List<RouteFile> _getRouteFiles(
155155
final route = RouteFile(
156156
name: filePath.toAlias(),
157157
path: filePath,
158-
route: fileRoute,
158+
route: fileRoute.toRoute(),
159159
);
160160
onRoute?.call(route);
161161
files.add(route);
@@ -167,17 +167,21 @@ extension on String {
167167
String toAlias() {
168168
final alias = path
169169
.withoutExtension(this)
170-
.replaceAll('<', r'$')
171-
.replaceAll('>', '')
170+
.replaceAll('[', r'$')
171+
.replaceAll(']', '')
172172
.replaceAll('/', '_');
173173
if (alias == '') return 'index';
174174
return alias;
175175
}
176+
177+
String toRoute() {
178+
return replaceAll('[', '<').replaceAll(']', '>');
179+
}
176180
}
177181

178182
extension on Directory {
179183
bool get isDynamicRoute {
180-
return RegExp('<(.*)>').hasMatch(path.basename(this.path));
184+
return RegExp(r'\[(.*)\]').hasMatch(path.basename(this.path));
181185
}
182186
}
183187

packages/dart_frog_gen/test/src/build_route_configuration_test.dart

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ void main() {
211211
'files': [
212212
{
213213
'name': r'.._test_.fixtures_dynamic_routes_echo_$message',
214-
'path': '../test/.fixtures/dynamic/routes/echo/<message>.dart',
214+
'path': '../test/.fixtures/dynamic/routes/echo/[message].dart',
215215
'route': '/<message>'
216216
}
217217
]
@@ -225,7 +225,7 @@ void main() {
225225
File(path.join(routes.path, 'index.dart')).createSync();
226226
final echoDirectory = Directory(path.join(routes.path, 'echo'))
227227
..createSync();
228-
File(path.join(echoDirectory.path, '<message>.dart')).createSync();
228+
File(path.join(echoDirectory.path, '[message].dart')).createSync();
229229
final configuration = buildRouteConfiguration(directory);
230230
expect(
231231
configuration.directories.map((d) => d.toJson()).toList(),
@@ -248,14 +248,14 @@ void main() {
248248
{
249249
'name': r'.._test_.fixtures_dynamic_nested_routes_$user_$name',
250250
'path':
251-
'../test/.fixtures/dynamic_nested/routes/<user>/<name>.dart',
251+
'../test/.fixtures/dynamic_nested/routes/[user]/[name].dart',
252252
'route': '/<user>/<name>'
253253
},
254254
{
255255
'name':
256256
r'.._test_.fixtures_dynamic_nested_routes_$user_$id_index',
257257
'path':
258-
'../test/.fixtures/dynamic_nested/routes/<user>/<id>/index.dart',
258+
'../test/.fixtures/dynamic_nested/routes/[user]/[id]/index.dart',
259259
'route': '/<id>/<user>'
260260
}
261261
]
@@ -272,10 +272,10 @@ void main() {
272272
final routes = Directory(path.join(directory.path, 'routes'))
273273
..createSync();
274274
File(path.join(routes.path, 'index.dart')).createSync();
275-
final userDirectory = Directory(path.join(routes.path, '<user>'))
275+
final userDirectory = Directory(path.join(routes.path, '[user]'))
276276
..createSync();
277-
File(path.join(userDirectory.path, '<name>.dart')).createSync();
278-
final idDirectory = Directory(path.join(userDirectory.path, '<id>'))
277+
File(path.join(userDirectory.path, '[name].dart')).createSync();
278+
final idDirectory = Directory(path.join(userDirectory.path, '[id]'))
279279
..createSync();
280280
File(path.join(idDirectory.path, 'index.dart')).createSync();
281281
final configuration = buildRouteConfiguration(directory);

0 commit comments

Comments
 (0)