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 fmon run.
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 reloadSources RPC.
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 over fmon.yaml and the defaults.