Skip to content

Module Fs.Watch

type t;
type config;
let config: 
  ?persistent:bool =>
  ?recursive:bool =>
  ?encoding:Js.String.t =>
  unit =>
  config;
let watch: string => ?config:config => unit => t;

there is no need to accept listener, since we return a watcher back it can register event listener there. Currently we introduce a type string_buffer, for the filename, it will be Buffer when the encoding is ``utf8`. This is dependent type which can be tracked by GADT in some way, but to make things simple, let's just introduce an or type

let on: 
  t =>
  f:
    [ `change(Js.Fn.arity2((string => Node.string_buffer => unit)))
    | `error(Js.Fn.arity0(unit)) ] =>
  t;
let close: t => unit;