Skip to content

Module Node

type node_exports;
type node_module =
  Js.t({. id: string
    , exports: node_exports
    , parent: Js.nullable(node_module)
    , filename: string
    , loaded: bool
    , children: array(node_module)
    , paths: array(string)});
type node_require =
  Js.t({. main: Js.undefined(node_module)
    , resolve: Js.Fn.arity1((string => string))});
type string_buffer;
type buffer;
type string_buffer_kind(_) =
| String : string_buffer_kind(string)
| Buffer : string_buffer_kind(buffer)
;
let test: string_buffer => (string_buffer_kind('t), 't);

We expect a good inliner will eliminate such boxing in the future

module Path: { ... };

Node Path API

module Fs: { ... };

Node FS API

module Process: { ... };
module Module: { ... };

Node Module API

module Buffer: { ... };

Node Buffer API

module Child_process: { ... };

Node Child Process API