Node
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_kind(_) =
| String : string_buffer_kind(string)
| Buffer : string_buffer_kind(buffer)
;
let test: string_buffer => (string_buffer_kind('t), 't0);
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