feat(hooks): add useLiveStream generic WebSocket hook - supports websocket/sse/polling transports - exponential backoff reconnect with jitter - circular buffer with configurable size - typed filter callback per use case - manual disconnect + reconnect + error state feat(hooks): add useLiveMetrics derived hook - sliding time-window cut - moving average (configurable window) - current / avg / min / max / ratePerSecond - zero allocations per tick (memoized) feat(charts): add LiveMetricChart molecule (Recharts) - line + area variants, grid + tooltip - moving-average overlay (dashed) - ConnectionStatus atom in header - status bar + compact mode - 100% responsive, GPU via SVG ViewBox feat(atoms): add ConnectionStatus indicator - 5 states: disconnected/connecting/connected/reconnecting/error - animated pulse, JetBrains Mono, pill style - exported helpers: formatLatency / formatBytes docs(pkg): bump v0.1.0 → v0.2.0, add recharts peerDep
MZ - Modernize node.js
Modernize node.js to current ECMAScript specifications! node.js will not update their API to ES6+ for a while. This library is a wrapper for various aspects of node.js' API.
Installation and Usage
Set mz as a dependency and install it.
npm i mz
Then prefix the relevant require()s with mz/:
var fs = require('mz/fs')
fs.exists(__filename).then(function (exists) {
if (exists) // do something
})
With ES2017, this will allow you to use async functions cleanly with node's core API:
const fs = require('mz/fs')
async function doSomething () {
if (await fs.exists(__filename)) // do something
}
Promisification
Many node methods are converted into promises. Any properties that are deprecated or aren't asynchronous will simply be proxied. The modules wrapped are:
child_processcryptodnsfs(usesgraceful-fsif available)readlinezlib
var exec = require('mz/child_process').exec
exec('node --version').then(function (stdout) {
console.log(stdout)
})
Promise Engine
mz uses any-promise.
FAQ
Can I use this in production?
Yes, Node 4.x ships with stable promises support. For older engines,
you should probably install your own promise implementation and register it with
require('any-promise/register')('bluebird').
Will this make my app faster?
Nope, probably slower actually.
Can I add more features?
Sure. Open an issue.
Currently, the plans are to eventually support:
- New APIs in node.js that are not available in older versions of node
- ECMAScript7 Streams