node_interop 2.1.0 icon indicating copy to clipboard operation
node_interop: ^2.1.0 copied to clipboard


Provides Dart bindings and utility functions for core Node.js modules.

2.1.0 #

  • Mark the first argument to Promise.then() as nullable.

2.0.2 #

  • Various fs APIs now accept options.

    • fs.appendFile, fs.mkdtemp, fs.readdir, fs.readlink, and fs.realpath, and fs.writeFile accept a FileOptions object.

    • fs.fstat and fs.lstat accept a StatOptions object.

    • fs.mkdir accepts a MkdirOptions object.

    • fs.rmdir accepts a RmdirOptions object.

    • accepts a WatchOptions object.

    • fs.watchFile accepts a WatchFileOptions object.

    • Synchronous equivalents of the above also accept the same options.

2.0.1 #

  • Fix improper types for util.callbackToCompleter(), util.invokeAsync0(), and util.invokeAsync1().

2.0.0 #

  • Enable null-safety (requires >=Dart 2.12).

2.0.0-nullsafety.0 #

  • Migrated to null-safety (requires >=Dart 2.12).

1.2.1 #

  • Add util.callbackToCompleter(), util.invokeAsync0(), and util.invokeAsync1() helpers to make it easier to work with Node-style callbacks.

1.2.0 #

  • Added worker_threads module bindings (#84)
  • Added interop for Atomics (#85)

1.1.1 #

  • Added missing method definitions for TTYWriteStream.

1.1.0 #

  • Added bindings for Node.js tty module as well as updated Process bindings for stdout, stdin and stderr to return TTY stream types instead of Writable and Readable.

1.0.3 #

  • Removed generic annotations from Process methods per #56 (not supported by Dart yet).
  • Added util.inspect binding.

1.0.2 #

  • Clarified documentation of dartify regarding conversion of JS object keys (#52).

1.0.1 #

  • Fixed declaration of fs.writeSync and fs.readSync to return int instead of void.

1.0.0 #

No functional changes in this version, it is published to replace obsolete 0.0.7 version on the Pub's package homepage to improve discoverability.

Ongoing work will continue in 1.0.0-dev.* branch until it's considered stable and feature complete. Make sure to checkout recent dev version for latest updates.

Non-breaking changes may be published to the stable track periodically.

1.0.0-dev.13.0 #

  • Added HttpsAgentOptions with basic TLS/SSL parameters.
  • Breaking: createHttpsAgent() now expects instance of HttpsAgentOptions instead of HttpAgentOptions.

1.0.0-dev.12.0 #

  • Fixed Console method bindings to not force String arguments and allow any type.
  • Breaking: Updated JsError constructor definition to match Node.js documentation.

1.0.0-dev.11.0 #

  • Upgraded to build_node_compilers 0.2.0

1.0.0-dev.10.0 #

  • Internal changes.

1.0.0-dev.9.0 #

  • Fixed analysis warnings.

1.0.0-dev.8.0 #

  • Upgraded to latest build_node_compilers.

1.0.0-dev.7.0 #

  • Fixed: Changed ServerResponse.getHeader return type from String to dynamic.

1.0.0-dev.6.0 #

  • Added: binding for JS undefined value in node_interop/js.dart.

1.0.0-dev.5.0 #

  • Fixed: strong mode issue in dartify utility function when converting plain JS objects to Dart Map. Returned map is now of type Map<String, dynamic> instead of Map.

1.0.0-dev.4.0 #

  • Fixed: strong mode issue in promiseToFuture utility function.
  • Fixed: signature of fs.realpathSync.

1.0.0-dev.3.0 #

  • Added or completed bindings for following Node.js modules: dns, events, fs, http, https, module, net, os, path, process, querystring, stream, timers, tls.
  • Added more examples and tests.

1.0.0-dev.2.0 #

  • Completed dns module function definitions (still missing data structures).

1.0.0-dev.1.0+1 #

  • Minor internal changes.

1.0.0-dev.1.0 #

Breaking changes: #

  • node_interop depends on Dart 2 SDK which allows us to leverage new build_runner system and move away from Pub transformers.
  • Removed Pub transformer, which means you shouldn't need it in your pubspec.yaml anymore. Build system is now based on build package. See docs for more details.
  • node_interop no longer exports Dart-specific abstractions like an HTTP client or FileSystem. These abstractions have been moved to separate packages: node_io and node_http. This way node_interop now only exposes JS bindings for Node and some utility functions.
  • library structure is changed to map closer to built-in Node modules. There is a separate file for each module which exposes that module's bindings, e.g. fs.dart, http.dart.
  • node object has been removed. Can use require and exports functions directly. There is also new convenience function setExport.
  • jsPromiseToFuture renamed to promiseToFuture.
  • futureToJsPromise renamed to futureToPromise.
  • jsObjectKeys renamed to objectKeys.
  • dartify now allows converting JS function objects.
  • `JsPromise

0.1.0-beta.9 #

  • Added library-level get function to http.dart.

0.1.0-beta.8+1 #

  • Updated changelog.

0.1.0-beta.8 #

  • Introduced new io.dart library designed to follow dart:io contract.
  • Breaking: renamed HttpRequest exposed by http.dart to NodeHttpRequest. This is a server-side request object which will eventually be hidden from this library. It is recommended to import new io.dart which exposes both HttpRequest and NodeHttpRequest objects.

0.1.0-beta.7 #

  • Fix HttpHeaders.forEach crash when called on HttpRequest.headers [#6]

0.1.0-beta.6 #

  • Breaking:
    • renamed ReadableStream.nativeStream to ReadableStream.nativeInstance
    • renamed WritableStream.nativeStream to WritableStream.nativeInstance
  • New:
    • Added jsonStringify and jsonParse which bind to native JSON.stringify and JSON.parse respectively.

0.1.0-beta.5 #

  • Fixed: HttpResponse.close() failed when trying to finalize headers.

0.1.0-beta.4 #

  • Made Promise<T> a generic type. Also added definition of Thenable.
  • onRejected in Promise.then is now optional.
  • Added explicit type to node variable.

0.1.0-beta.3 #

  • More updates to bindings.
  • Added new async.dart library with basic implementations of ReadableStream<T>, WritableStream<T> and NodeIOSink.
  • Added implementations of server side HttpRequest and HttpResponse to http.dart, as well some other objects like HttpHeaders.
  • Added dartifyError(JsError error) to the main library which converts from JS Error instances in to Dart's equivalent.
  • Implemented more methods in File: openRead, openWrite, readAsBytes.
  • Deprecated createJSFile in test.dart library. Use createFile instead.

0.1.0-beta.2 #

  • jsObjectToMap deprecated. There is new helper function dartify. See documentation for more details.
  • New jsify helper function.
  • Clarified type of HTTP server requestListener.
  • New createJSFile test util in test.dart.

0.1.0-beta.1 #

  • Breaking changes:
    • NodePlatform is no longer exported from node_interop.dart library.
    • Library-level exports getter was removed. Now exports is a direct reference to native JS object. Replace any calls to exports.setProperty(name, value) with new API: node.export(name, value).
    • "http" module: Agent, Server, AgentOptions renamed to HttpAgent, HttpServer, HttpAgentOptions respectively.
    • "http" module: createAgent renamed to createHttpAgent.
    • node_interop/bindings.dart was removed. All bindings are available through main node_interop/node_interop.dart import.
  • New:
    • Many updates to documentation.
    • Main package's library now exposes all (implemented) Node API bindings.
    • New node library object with centralized access to the Node platform and runtime information, as well as module globals like require and exports.
    • Exposed parts of "https", "tls", "dns" and "net" module bindings.
    • Added HTTPS support to NodeClient from node_interop/http.dart.
    • Updated examples.
    • Gitter channel is now up:

0.0.7 #

  • Added node_interop/test.dart library with installNodeModules() helper function. See dartdoc for more details.

0.0.6 #

  • jsObjectToMap: added null-check.
  • Added basic HTTP client implementation for Node, based on an interface from 'http' package. Use with import package:node_interop/http.dart.

0.0.5 #

  • Streamlined bindings layer and exposed as it's own library. Use import package:node_interop/bindings.dart to get access.
  • Added bindings for 'http' module (work in progress).

0.0.4 #

  • Upgraded to test package with support for running tests in Node
  • Implemented NodeFileSystem.file() and File.writeAsStringSync().

0.0.3 #

  • Added bindings for Console.

0.0.2 #

  • Switched to use official node_preamble package

0.0.1 #

  • Initial version
pub points


unverified uploader

Provides Dart bindings and utility functions for core Node.js modules.

Repository (GitHub)


API reference


Icon for licenses.BSD-3-Clause (LICENSE)




Packages that depend on node_interop