@farar/nodes
Advanced tools
Comparing version 0.0.2 to 0.0.3
@@ -7,2 +7,3 @@ import * as stream from 'node:stream'; | ||
export declare const $write: unique symbol; | ||
export declare const $size: unique symbol; | ||
export declare class Node<InT, OutT> { | ||
@@ -13,2 +14,3 @@ protected [$stream]: stream.Writable | stream.Readable; | ||
protected [$outs]?: Array<Node<OutT, unknown>>; | ||
protected [$size]: number; | ||
constructor(stream: stream.Writable | stream.Readable); | ||
@@ -15,0 +17,0 @@ connect(...nodes: Array<Node<OutT, unknown>>): typeof this; |
@@ -26,3 +26,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Node = exports.$write = exports.$outs = exports.$ins = exports.$queue = exports.$stream = void 0; | ||
exports.Node = exports.$size = exports.$write = exports.$outs = exports.$ins = exports.$queue = exports.$stream = void 0; | ||
const stream = __importStar(require("node:stream")); | ||
@@ -35,2 +35,3 @@ const node_events_1 = require("node:events"); | ||
exports.$write = Symbol('write'); | ||
exports.$size = Symbol('size'); | ||
class Node { | ||
@@ -41,2 +42,3 @@ [exports.$stream]; | ||
[exports.$outs]; | ||
[exports.$size]; | ||
constructor(stream) { | ||
@@ -47,2 +49,3 @@ this[exports.$stream] = stream; | ||
this[exports.$outs] = []; | ||
this[exports.$size] = 0; | ||
this[exports.$stream].once('error', () => { | ||
@@ -89,5 +92,7 @@ this[exports.$ins] = undefined; | ||
this[exports.$queue].push(data); | ||
this[exports.$size] += !this[exports.$stream].writableObjectMode && (data instanceof Buffer || typeof data == 'string') ? data.length : 1; | ||
} | ||
while (this[exports.$queue].length) { | ||
const data = this[exports.$queue].shift(); | ||
this[exports.$size] -= !this[exports.$stream].writableObjectMode && (data instanceof Buffer || typeof data == 'string') ? data.length : 1; | ||
if (!this[exports.$stream].write(data, encoding ?? 'utf-8')) { | ||
@@ -100,2 +105,3 @@ await (0, node_events_1.once)(this[exports.$stream], 'drain'); | ||
this[exports.$queue].push(data); | ||
this[exports.$size] += !this[exports.$stream].writableObjectMode && (data instanceof Buffer || typeof data == 'string') ? data.length : 1; | ||
} | ||
@@ -102,0 +108,0 @@ } |
{ | ||
"name": "@farar/nodes", | ||
"version": "0.0.2", | ||
"version": "0.0.3", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "main": "./dist/index.js", |
37187
687