Fwatch
Bun

function

fs.promises.watch

function watch(
filename: PathLike,
options?: BufferEncoding | WatchOptionsWithStringEncoding
): AsyncIterator<FileChangeInfo<string>>;

Returns an async iterator that watches for changes on filename, where filenameis either a file or a directory.

import { watch } from 'node:fs/promises';

const ac = new AbortController();
const { signal } = ac;
setTimeout(() => ac.abort(), 10000);

(async () => {
  try {
    const watcher = watch(__filename, { signal });
    for await (const event of watcher)
      console.log(event);
  } catch (err) {
    if (err.name === 'AbortError')
      return;
    throw err;
  }
})();

On most platforms, 'rename' is emitted whenever a filename appears or disappears in the directory.

All the caveats for fs.watch() also apply to fsPromises.watch().

@returns

of objects with the properties:

function watch(
filename: PathLike,
options: 'buffer' | WatchOptionsWithBufferEncoding
): AsyncIterator<FileChangeInfo<Buffer<ArrayBufferLike>>>;

Returns an async iterator that watches for changes on filename, where filenameis either a file or a directory.

import { watch } from 'node:fs/promises';

const ac = new AbortController();
const { signal } = ac;
setTimeout(() => ac.abort(), 10000);

(async () => {
  try {
    const watcher = watch(__filename, { signal });
    for await (const event of watcher)
      console.log(event);
  } catch (err) {
    if (err.name === 'AbortError')
      return;
    throw err;
  }
})();

On most platforms, 'rename' is emitted whenever a filename appears or disappears in the directory.

All the caveats for fs.watch() also apply to fsPromises.watch().

@returns

of objects with the properties:

function watch(
filename: PathLike,
options: BufferEncoding | 'buffer' | WatchOptions
): AsyncIterator<FileChangeInfo<string | Buffer<ArrayBufferLike>>>;

Returns an async iterator that watches for changes on filename, where filenameis either a file or a directory.

import { watch } from 'node:fs/promises';

const ac = new AbortController();
const { signal } = ac;
setTimeout(() => ac.abort(), 10000);

(async () => {
  try {
    const watcher = watch(__filename, { signal });
    for await (const event of watcher)
      console.log(event);
  } catch (err) {
    if (err.name === 'AbortError')
      return;
    throw err;
  }
})();

On most platforms, 'rename' is emitted whenever a filename appears or disappears in the directory.

All the caveats for fs.watch() also apply to fsPromises.watch().

@returns

of objects with the properties: