fmon library
fmon — a file-watching daemon that hot reloads a running Dart/Flutter app through the Dart VM Service.
The pieces are also usable programmatically:
final config = FmonConfig.defaults().copyWith(entrypoint: 'bin/main.dart');
await FmonRunner(config).run();
Classes
- ChangeSet
- Classifies a batch of changed file paths into a single ReloadAction.
-
Debouncer<
T> - Coalesces a burst of items into a single batch once they stop arriving.
- FileWatcher
- Watches one or more paths and emits the (filtered) paths of changed files.
- FmonConfig
-
Resolved configuration for an
fmonrun. - FmonRunner
- Top-level orchestrator: wires the process/connection, file watcher, debouncer and reloader together, and drives them from file events and keyboard input.
- ParsedArgs
- Result of parsing CLI args: either a config to run, or a message to print and exit (help/version/parse error) with exitCode.
- ReloadResult
- Outcome of a hot reload attempt.
- ServiceInfoFile
- Reads the VM Service URI from a service-info JSON file.
- VmServiceConnector
- Connects to a running Dart VM Service and exposes helpers for picking the isolates fmon should hot reload.
- VmServiceReloader
-
Performs hot reload through the VM Service
reloadSourcesRPC. - WorkspaceScanner
- Discovers the packages of a Dart/Flutter monorepo (melos or pub workspace) and produces the set of paths fmon should watch.
Enums
- ReloadAction
- The action a batch of file changes should trigger.
Constants
- fmonVersion → const String
-
fmon version, kept in sync with
pubspec.yaml.
Functions
-
parseArgs(
List< String> arguments) → ParsedArgs -
Parses
arguments, layering CLI flags overfmon.yamland the defaults.