FileWatcher
Cross-platform file monitoring system for hot-reloading and file change detection.
FileWatcher provides a unified API for monitoring file changes across different platforms including native (sys), Node.js, and Electron environments. It periodically checks for file modifications and notifies registered callbacks when changes are detected.
The watcher can operate in two modes:
- Content checking mode (default): Compares actual file content to detect changes
- Timestamp mode: Only checks modification time (faster but less reliable)
This implementation is compatible with the interpret.Watcher interface, allowing it to be used with scripting and hot-reload systems.
Example:
var watcher = new FileWatcher();
var stopWatching = watcher.watch("config.json", function(content) {
trace("Config file changed: " + content);
});
// Later, to stop watching:
stopWatching();
Static Members
UPDATE_INTERVAL: FloatThe interval in seconds between file checks. Lower values provide faster detection but use more CPU. Default: 1.0 second
Instance Members
canWatch(): BoolChecks if file watching is supported on the current platform.
| Returns | Description |
|---|---|
| Bool | True if the platform supports file watching, false otherwise |
watch(path: String, onUpdate: Function): FunctionStarts watching a file for changes.
Multiple callbacks can be registered for the same file. Each callback receives the new file content when a change is detected.
Example:
var stop = watcher.watch("data.txt", function(content) {
trace("File updated with content: " + content);
});
| Name | Type | Description |
|---|---|---|
path |
String | The file path to watch |
onUpdate |
Function | Callback function that receives the new file content |
| Returns | Description |
|---|---|
| Function | A function that stops watching when called |
destroy(): Voidnew(): VoidPrivate Members
checkContent: BoolWhether to compare actual file content or just modification times.
When true (default), the watcher reads and compares file content to detect changes, which is more reliable but slower. When false, only modification timestamps are checked, which is faster but may miss some changes.
watched: MapMap of file paths to their watched state information.
timeSinceLastCheck: FloatAccumulator for time since last file check.
Update tick called by the app's update loop. Checks all watched files for changes at the configured interval.
| Name | Type |
|---|---|
delta |
Float |
Checks if a path points to a regular file (not a directory).
| Name | Type | Description |
|---|---|---|
path |
String | The path to check |
| Returns | Description |
|---|---|
| Bool | True if the path is a file, false otherwise |
Gets the last modification time of a file.
| Name | Type | Description |
|---|---|---|
path |
String | The file path |
| Returns | Description |
|---|---|
| Float | Modification time in milliseconds since epoch, or -1 if unavailable |
Reads the content of a file as a string.
| Name | Type | Description |
|---|---|---|
path |
String | The file path |
| Returns | Description |
|---|---|
| String | The file content, or null if unavailable |
Metadata
| Name | Parameters |
|---|---|
:build |
ceramic.macros.EntityMacro.buildForCompletion() |
:autoBuild |
ceramic.macros.EntityMacro.buildForCompletion() |
:build |
tracker.macros.EventsMacro.build() |
:autoBuild |
tracker.macros.EventsMacro.build() |