node_io 1.0.1+2
node_io #
This library exposes Node I/O functionality in dart:io
way. It wraps Node.js
I/O modules (like fs
and http
) and implements them using abstractions
provided by dart:io
(like File
, Directory
or HttpServer
).
If you are looking for direct access to Node.js API see node_interop package.
Usage #
A basic example of accessing file system:
import 'package:node_io/node_io.dart';
void main() {
print(Directory.current);
print("Current directory exists: ${Directory.current.existsSync()}");
print('Current directory contents: ');
Directory.current.list().listen(print);
}
Configuration and build #
Add build_node_compilers
and build_runner
to dev_dependencies
section
in pubspec.yaml
of your project:
dev_dependencies:
build_runner: # needed to run the build
build_node_compilers:
Add build.yaml
file to the root of your project:
targets:
$default:
sources:
- "node/**"
- "test/**" # Include this if you want to compile tests.
- "example/**" # Include this if you want to compile examples.
By convention all Dart files which declare main
function go in node/
folder.
To build your project run following:
pub run build_runner build --output=build/
Detailed instructions can be found in build_node_compilers package docs.
Features and bugs #
Please file feature requests and bugs at the issue tracker.
1.0.1+2 #
- More preparation for Uint8List SDK breaking change (dart-lang/sdk#36900). See #61 and #63 for details.
1.0.1+1 #
- Prepare for Uint8List SDK breaking change (dart-lang/sdk#36900). See #59 and #60 for details.
1.0.1 #
- Server side
NodeHttpRequest
andNodeHttpResponse
are now available in public interface.
1.0.0 #
First stable release of this library which implements subset of dart:io
interfaces,
including File System objects, HttpServer, Platform and other common classes.
Not all dart:io
interfaces are covered yet. Feel free to file an issue on Github if you need
a specific class implemented in node_io.
- Complete file system implementations for
Directory
,File
,RandomAccessFile
,Link
. - Added
STATUS.md
which reflects coverage of already implemented or exporteddart:io
APIs.
1.0.0-dev.10.0 #
- Fixed
NodeHttpResponse.redirect
failing to convertUri
to string.
1.0.0-dev.9.0 #
- Upgraded to latest build_node_compilers (0.2.0)
1.0.0-dev.8.0 #
- Fixed: analysis warnings with latest Pub and Dart SDK.
1.0.0-dev.7.0 #
- Fixed: handling errors in
Directory.delete
. - Fixed: handling relative paths in
Directory.list
. - Fixed: strong mode issues in
Directory
andFile
. - Added:
File.create
,File.delete
,File.readAsString
,File.rename
,File.writeAsBytes
,File.writeAsString
. - Fixed: handling errors in
File.open
,File.stat
,File.statSync
. - Fixed: converting byte data in
NodeIOSink
. - Added: Minimal scaffold for Link FS entities.
1.0.0-dev.6.0 #
- Upgraded to latest build_node_compilers.
1.0.0-dev.5.0 #
- Fixed deprecation warnings with Dart 2 dev 61 SDK version.
1.0.0-dev.4.0 #
- Fixed deprecation warnings with latest Dart 2 dev SDK.
- Refactored HttpHeaders to not rely on Node.js API introduced in v7.7.0 Allows using this wrapper in Google Cloud Functions environment which runs on Node.js 6.x (LTS).
1.0.0-dev.3.0 #
- Allow list values in
HttpHeaders.set
.
1.0.0-dev.2.0 #
- Complete implementation of
InternetAddress
.
1.0.0-dev.1.0 #
- Split from node_interop.
import 'package:node_io/node_io.dart';
void main() {
print(Directory.current);
print("Current directory exists: ${Directory.current.existsSync()}");
print('Current directory contents: ');
Directory.current.list().listen(print);
}
Use this package as a library
1. Depend on it
Add this to your package's pubspec.yaml file:
dependencies:
node_io: ^1.0.1+2
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:node_io/node_io.dart';
Popularity:
Describes how popular the package is relative to other packages.
[more]
|
95
|
Health:
Code health derived from static analysis.
[more]
|
28
|
Maintenance:
Reflects how tidy and up-to-date the package is.
[more]
|
80
|
Overall:
Weighted score of the above.
[more]
|
72
|
We analyzed this package on Dec 12, 2019, and provided a score, details, and suggestions below. Analysis was completed with status completed using:
- Dart: 2.7.0
- pana: 0.13.1+4
Health suggestions
Fix lib/src/file.dart
. (-34.36 points)
Analysis of lib/src/file.dart
reported 84 hints, including:
line 13 col 44: Use lowercase_with_underscores
when specifying a library prefix.
line 21 col 49: Unnecessary new keyword.
line 141 col 24: Unnecessary new keyword.
line 147 col 39: Unnecessary new keyword.
line 152 col 28: Unnecessary new keyword.
Fix lib/src/directory.dart
. (-19.79 points)
Analysis of lib/src/directory.dart
reported 44 hints, including:
line 11 col 44: Use lowercase_with_underscores
when specifying a library prefix.
line 90 col 38: Unnecessary new keyword.
line 99 col 10: Avoid return types on setters.
line 112 col 12: Unnecessary new keyword.
line 116 col 32: Unnecessary new keyword.
Fix lib/src/http_server.dart
. (-19.39 points)
Analysis of lib/src/http_server.dart
reported 43 hints, including:
line 113 col 23: Use =
to separate a named parameter from its default value.
line 113 col 39: Use =
to separate a named parameter from its default value.
line 113 col 59: Use =
to separate a named parameter from its default value.
line 129 col 19: Unnecessary new keyword.
line 163 col 21: Unnecessary new keyword.
Fix additional 8 files with analysis or formatting issues. (-39.73 points)
Additional issues in the following files:
lib/src/file_system_entity.dart
(17 hints)lib/src/internet_address.dart
(17 hints)lib/src/link.dart
(16 hints)lib/src/http_headers.dart
(13 hints)lib/src/streams.dart
(8 hints)lib/src/platform.dart
(7 hints)lib/src/network_interface.dart
(3 hints)lib/node_io.dart
(1 hint)
Maintenance suggestions
The package description is too short. (-20 points)
Add more detail to the description
field of pubspec.yaml
. Use 60 to 180 characters to describe the package, what it does, and its target use case.
Dependencies
Package | Constraint | Resolved | Available |
---|---|---|---|
Direct dependencies | |||
Dart SDK | >=2.1.0 <3.0.0 | ||
node_interop | ^1.0.1 | 1.0.3 | |
path | ^1.6.2 | 1.6.4 | |
Dev dependencies | |||
build_node_compilers | ^0.2.0 | ||
build_runner | ^1.0.0 | ||
build_test | any | ||
js | ^0.6.0 | 0.6.1+1 | |
test | ^1.0.0 |