Skip to content

Commit 04a0a67

Browse files
authored
feat(dart_frog_gen): add invokeCustomEntrypoint to RouteConfiguration (#265)
1 parent 0e70716 commit 04a0a67

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

packages/dart_frog_gen/lib/src/build_route_configuration.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ RouteConfiguration buildRouteConfiguration(Directory directory) {
4444
onRogueRoute: rogueRoutes.add,
4545
);
4646
final publicDirectory = Directory(path.join(directory.path, 'public'));
47+
final mainDartFile = File(path.join(directory.path, 'main.dart'));
4748
return RouteConfiguration(
4849
globalMiddleware: globalMiddleware,
4950
middleware: middleware,
@@ -52,6 +53,7 @@ RouteConfiguration buildRouteConfiguration(Directory directory) {
5253
rogueRoutes: rogueRoutes,
5354
endpoints: endpoints,
5455
serveStaticFiles: publicDirectory.existsSync(),
56+
invokeCustomEntrypoint: mainDartFile.existsSync(),
5557
);
5658
}
5759

@@ -285,8 +287,12 @@ class RouteConfiguration {
285287
required this.endpoints,
286288
required this.rogueRoutes,
287289
this.serveStaticFiles = false,
290+
this.invokeCustomEntrypoint = false,
288291
});
289292

293+
/// Whether to invoke a custom entrypoint script (`main.dart`).
294+
final bool invokeCustomEntrypoint;
295+
290296
/// Whether to serve static files. Defaults to false.
291297
final bool serveStaticFiles;
292298

packages/dart_frog_gen/test/src/build_route_configuration_test.dart

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,21 @@ void main() {
4040
expect(configuration.serveStaticFiles, isFalse);
4141
});
4242

43+
test('invokeCustomEntrypoint is true when main.dart exists', () {
44+
final directory = Directory.systemTemp.createTempSync();
45+
Directory(path.join(directory.path, 'routes')).createSync();
46+
File(path.join(directory.path, 'main.dart')).createSync();
47+
final configuration = buildRouteConfiguration(directory);
48+
expect(configuration.invokeCustomEntrypoint, isTrue);
49+
});
50+
51+
test('invokeCustomEntrypoint is false when main.dart does not exist', () {
52+
final directory = Directory.systemTemp.createTempSync();
53+
Directory(path.join(directory.path, 'routes')).createSync();
54+
final configuration = buildRouteConfiguration(directory);
55+
expect(configuration.invokeCustomEntrypoint, isFalse);
56+
});
57+
4358
test('includes global middleware when it exists', () {
4459
final directory = Directory.systemTemp.createTempSync();
4560
final routes = Directory(path.join(directory.path, 'routes'))

0 commit comments

Comments
 (0)