Zero-dependency Node.js writable sink with exact dev-null compatibility and first-party types.
Documentation | npm | Issues | Repository
Current package version: 1.0.3
A maintained, zero-dependency writable sink with the established
dev-null@0.1.1behavior.
This package is an independent, maintained continuation of
dev-null. It preserves the callable
Node.js Writable sink, its asynchronous write boundary, and option forwarding
while adding native ESM entry points, first-party TypeScript declarations, and
reproducible release checks.
The upstream source and authorship history are documented in UPSTREAM_AUDIT.md and NOTICE. The Stackline fork is not affiliated with or endorsed by the original author.
| Item | Value |
|---|---|
| Package | @stackline/dev-null@1.0.3 |
| Node.js runtime | >=12 |
| CommonJS / primary entry | ./index.js |
| ES module entry | ./index.mjs |
| Type declarations | ./index.d.ts |
- CommonJS and native ESM
- First-party TypeScript declarations, including TypeScript 3.9 consumers
- Node.js 12 and newer
- Byte and object mode
- Zero runtime dependencies
See COMPATIBILITY_CONTRACT.md and MIGRATION.md for the exact boundary and alias migration.
npm install @stackline/dev-nullPreserve an existing require('dev-null') or import devNull from 'dev-null'
without changing source code:
npm install dev-null@npm:@stackline/dev-nullconst devNull = require('@stackline/dev-null');
source.pipe(devNull());import devNull from '@stackline/dev-null';
import { pipeline } from 'node:stream/promises';
await pipeline(source, devNull());import devNull from '@stackline/dev-null';
const sink = devNull({
objectMode: true,
highWaterMark: 16
});
sink.write({ id: 1 });
sink.end({ id: 2 });All options are passed directly to Node's Writable constructor. Set
objectMode: true before writing arbitrary JavaScript values.
New code that does not need package compatibility can construct a sink directly:
import { Writable } from 'node:stream';
const sink = new Writable({
write(_chunk, _encoding, callback) {
callback();
}
});Use this package when a dependency already expects dev-null, when a shared
factory keeps stream configuration consistent, or when first-party types and a
tested Node-version contract are useful.
Report vulnerabilities privately as described in SECURITY.md. Do not disclose an unpatched vulnerability in a public issue.
Returns a Node.js Writable that accepts and discards every chunk. Calling the
export with or without new is supported. _write completes asynchronously on
the same timer boundary observed in dev-null@0.1.1, so standard backpressure,
drain, finish, close, destroy, and error behavior remains owned by Node's
stream implementation.
The package does not swallow upstream pipeline errors and does not convert
invalid chunks. Byte mode rejects objects exactly as a normal Writable does.
git clone https://github.com/alexandroit/stackline-dev-null.git
cd stackline-dev-null
npm ci
npm run verifyRelease tooling uses Node.js 24.20.0 and npm 11.19.0. The consumer runtime contract remains the one documented above.
Run the repository's existing consumer/package check after installing development dependencies:
npm run test:smokeRun npm run verify and inspect the package contents before release. Publish a new version through the GitHub Actions publishing workflow, using the SHA-512 digest of the reviewed tarball. Verify the exact published version, tarball integrity, and npm provenance after the run.
MIT. The original copyright and permission notice is preserved in LICENSE.
- Original project: dev-null.
- Stackline Maintainers.
- Thorsten Lorenz.
- Copyright 2013 Thorsten Lorenz.
- Stackline maintenance: Alexandro Paixao Marques and Stackline contributors.
Original copyright, license notices and contributor acknowledgements remain part of this distribution. Stackline maintenance does not replace authorship of the original work.
Use this repository's issue tracker for reproducible bugs and feature requests. Join r/Stackline for examples, usage questions and release discussions.