nodejs_interop 0.9.0

Node.js Interop for Dart #

Dart Node.js Release License Coverage Build

Node.js interoperability for Dart.

Resources #

Requirements #

If you plan to play with the sources, you will also need the latest Grinder version.

Unit tests #

In order to run the tests, you must install the Node.js test dependencies by running the following command:

$ npm install

Then, you can launch the test runner from the command prompt:

$ pub run test

License #

Node.js Interop for Dart is distributed under the MIT License.

Changelog #

This file contains highlights of what changes on each version of the Node.js Interop for Dart library.

Version 0.9.0

  • Breaking change: starting to use and support the Dart 2 SDK.
  • Added a user guide based on MkDocs.
  • Added the Platform.operatingSystemVersion property.
  • Added the throwDeprecation and traceDeprecation properties to the Process class.
  • Added the ProcessSignal class.
  • Updated the dependencies.

Version 0.8.0

  • Breaking change: removed most classes of the nodejs_interop.js library (JSObject, Json, Reflect, TypedArray and Uint8Array).
  • Breaking change: removed the instance methods of the Buffer class, as this class is casted to the Uint8List class by the Dart runtime.
  • Breaking change: renamed the convertToFuture() function to asFuture().
  • Breaking change: renamed the convertToStream() function to asStream().
  • Breaking change: renamed the DeleteOptions class to DelOptions.
  • Breaking change: renamed the NodeProcess class to Process.
  • Breaking change: renamed the NodeRelease class to Release.
  • Breaking change: renamed the ReadStream class to FSReadStream.
  • Breaking change: renamed the WriteStream class to FSWriteStream.
  • Breaking change: the FileStat.fromStats() constructor is now private.
  • Added the tty module.
  • Added utility functions for converting functions following the Node.js callback style to a Future (e.g. fn1cb0ToFuture(), fn3cb2ToFuture(), ...).
  • Added the RandomAccessFile and SystemEncoding classes.
  • Added the asPromise(), deleteProperty() and getProperties() functions.
  • Added the Promise.JS$catch() method.
  • Added new unit tests.
  • Fixed the implementation of the FileStat class.
  • The nodejs_interop.js library exports the functions from the dart:js_util library.
  • Updated the Node.js dependencies.

Version 0.7.0

  • Breaking change: renamed the convertToDart() function to dartify().
  • Breaking change: renamed the ReaddirEnhancedModule class to ReaddirModule.
  • Breaking change: the, nodejs_interop.js, nodejs_interop.node and nodejs_interop.npm libraries are no longer exported individually.
  • Added the exit() and sleep() functions.
  • Added the exitCode and pid properties.
  • Added the Buffer.BYTES_PER_ELEMENT static property.
  • Added the InternetAddress, InternetAddressType, JSObject, NetworkInterface, ProcessInfo and Reflect classes.
  • Added the minify option to the Pub transformer.
  • Added new methods to the Console and Uint8Array classes.
  • Added new unit tests.
  • Fixed the implementation of the dns module.

Version 0.6.0

  • Breaking change: renamed the Path class to PathObject.
  • Breaking change: renamed the ReadOptions class to ReadFileOptions.
  • Breaking change: renamed the ResolveOptions class to ResolveFunctionOptions.
  • Breaking change: renamed the WarningOptions class to EmitWarningOptions.
  • Breaking change: renamed the WriteOptions class to WriteFileOptions.
  • Added setters to properties of all @anonymous classes.
  • Added the dns module.
  • Added the querystring module.
  • Added the string_decoder module.
  • Added the url module.
  • Added a partial implementation of the process manager API.
  • Added a Pub transformer.
  • Finished the implementation of the util module.

Version 0.5.0

  • Breaking change: removed the FileStat.toJson() method.
  • Breaking change: renamed the Process class to NodeProcess.
  • Added the child_process module.
  • Added the cluster module.
  • Added the stream module.
  • Added the vm module.
  • Added the BufferEncoding.fromEncoding() method.
  • Added the current and systemTemp static properties to the Directory class.
  • Finished the implementation of the fs module.

Version 0.4.0

  • Breaking change: renamed the Js prefix to JS for JavaScript errors.
  • Breaking change: renamed the NodejsPlatform class to Platform.
  • Added bindings for a predefined set of npm packages.
  • Added the buffer module.
  • Added the console module.
  • Added the convertToStream() and loadLibrary() functions.
  • Added the Json, Module and Writable classes.
  • Added a partial implementation of the fs module.
  • Added a partial implementation of the util module.
  • Added a partial implementation of the file system API.
  • Finished the implementation of the Process class.
  • Finished the implementation of the require() function.
  • Splitted the library in modules: io, js, node and npm.

Version 0.3.0

  • Added the os module.
  • Added the convertToDart() and convertToFuture() functions.
  • Added the CpuUsage, NodejsPlatform and Promise classes.
  • Added a partial implementation of the Process class.

Version 0.2.0

  • Breaking change: renamed the PathObject class to Path.
  • Added the assert module.
  • Added the errors module.
  • Added the events module.

Version 0.1.0 #

  • Initial release: provides the require() function and the path module.

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:

  nodejs_interop: ^0.9.0

2. Install it

You can install packages from the command line:

with pub:

$ pub get

Alternatively, your editor might support pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:

import 'package:nodejs_interop/io.dart';
import 'package:nodejs_interop/js.dart';
import 'package:nodejs_interop/node.dart';
import 'package:nodejs_interop/npm.dart';
import 'package:nodejs_interop/transformer.dart';
Describes how popular the package is relative to other packages. [more]
Code health derived from static analysis. [more]
Reflects how tidy and up-to-date the package is. [more]
Weighted score of the above. [more]
Learn more about scoring.

The package version is not analyzed, because it does not support Dart 2. Until this is resolved, the package will receive a health and maintenance score of 0.

Analysis issues and suggestions

Support Dart 2 in pubspec.yaml.

The SDK constraint in pubspec.yaml doesn't allow the Dart 2.0.0 release. For information about upgrading it to be Dart 2 compatible, please see

Maintenance issues and suggestions

Make sure dartdoc successfully runs on your package's source files. (-10 points)

Dependencies were not resolved.


Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.0.0-dev <2.0.0