(
path: Path,
_options?: virtualFs.HostWatchOptions,
)
| 228 | |
| 229 | // Some hosts may not support watching. |
| 230 | watch( |
| 231 | path: Path, |
| 232 | _options?: virtualFs.HostWatchOptions, |
| 233 | ): Observable<virtualFs.HostWatchEvent> | null { |
| 234 | return new Observable<virtualFs.HostWatchEvent>((obs) => { |
| 235 | loadFSWatcher(); |
| 236 | const watcher = new FSWatcher({ persistent: false }); |
| 237 | watcher.add(getSystemPath(path)); |
| 238 | |
| 239 | watcher |
| 240 | .on('change', (path) => { |
| 241 | obs.next({ |
| 242 | path: normalize(path), |
| 243 | time: new Date(), |
| 244 | type: virtualFs.HostWatchEventType.Changed, |
| 245 | }); |
| 246 | }) |
| 247 | .on('add', (path) => { |
| 248 | obs.next({ |
| 249 | path: normalize(path), |
| 250 | time: new Date(), |
| 251 | type: virtualFs.HostWatchEventType.Created, |
| 252 | }); |
| 253 | }) |
| 254 | .on('unlink', (path) => { |
| 255 | obs.next({ |
| 256 | path: normalize(path), |
| 257 | time: new Date(), |
| 258 | type: virtualFs.HostWatchEventType.Deleted, |
| 259 | }); |
| 260 | }); |
| 261 | |
| 262 | return () => { |
| 263 | void watcher.close(); |
| 264 | }; |
| 265 | }).pipe(publish(), refCount()); |
| 266 | } |
| 267 | } |
nothing calls this directly
no test coverage detected