runWatchedArtisanalApp function
Future<void>
runWatchedArtisanalApp({
- required ReloadWidgetBuilder homeBuilder,
- required Iterable<
String> watchRoots, - String? title,
- Theme? theme,
- Theme? darkTheme,
- ThemeMode themeMode = ThemeMode.system,
- Theme themeBuilder()?,
- ReloadController? controller,
- ReloadMode watchMode = ReloadMode.reload,
- Duration watchDebounce = const Duration(milliseconds: 150),
- bool watchRecursive = true,
- bool watchIgnoreHidden = true,
- Iterable<
String> watchExtensions = const <String>['.dart'], - ProgramOptions? options,
- ProgramHost? host,
- ImageAutoMode? imageAutoMode,
Runs an ArtisanalApp with a watched, reloadable home widget.
This uses ReloadHost under the hood and automatically disposes the watcher and controller when the program exits.
Implementation
Future<void> runWatchedArtisanalApp({
required ReloadWidgetBuilder homeBuilder,
required Iterable<String> watchRoots,
String? title,
Theme? theme,
Theme? darkTheme,
ThemeMode themeMode = ThemeMode.system,
Theme Function()? themeBuilder,
ReloadController? controller,
ReloadMode watchMode = ReloadMode.reload,
Duration watchDebounce = const Duration(milliseconds: 150),
bool watchRecursive = true,
bool watchIgnoreHidden = true,
Iterable<String> watchExtensions = const <String>['.dart'],
runtime.ProgramOptions? options,
hosts.ProgramHost? host,
ImageAutoMode? imageAutoMode,
}) async {
final reloadController = controller ?? ReloadController();
final ownsController = controller == null;
final watcher = await ReloadFileWatcher.watch(
controller: reloadController,
roots: watchRoots,
mode: watchMode,
debounce: watchDebounce,
recursive: watchRecursive,
ignoreHidden: watchIgnoreHidden,
extensions: watchExtensions,
);
try {
await runReloadableArtisanalApp(
title: title,
theme: theme,
darkTheme: darkTheme,
themeMode: themeMode,
themeBuilder: themeBuilder,
controller: reloadController,
homeBuilder: homeBuilder,
options: options,
host: host,
imageAutoMode: imageAutoMode,
);
} finally {
await watcher.dispose();
if (ownsController) {
await reloadController.dispose();
}
}
}