@gjsify/stream 0.4.36 → 0.4.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/esm/browser.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./_virtual/_rolldown/runtime.js";import{EventEmitter as e}from"@gjsify/events";var Stream=class extends e{static Stream;static Readable;static Writable;static Duplex;static Transform;static PassThrough;static pipeline;static finished;readable=!1;writable=!1;pipe(t,n){let r=this,ondata=e=>{t.writable!==!1&&t.write(e)===!1&&r.pause&&r.pause()};r.on(`data`,ondata);let ondrain=()=>{r.readable&&r.resume&&r.resume()};t.on(`drain`,ondrain);let i=!1,onend=()=>{i||(i=!0,t.end?.())},onclose=()=>{i||(i=!0,t.destroy?.())},onerror=t=>{if(cleanup(),e.listenerCount(r,`error`)===0)throw t},cleanup=()=>{r.removeListener(`data`,ondata),t.removeListener(`drain`,ondrain),r.removeListener(`end`,onend),r.removeListener(`close`,onclose),r.removeListener(`error`,onerror),t.removeListener(`error`,onerror),r.removeListener(`end`,cleanup),r.removeListener(`close`,cleanup),t.removeListener(`close`,cleanup)};return!t._isStdio&&(!n||n.end!==!1)&&(r.on(`end`,onend),r.on(`close`,onclose)),r.on(`error`,onerror),t.on(`error`,onerror),r.on(`end`,cleanup),r.on(`close`,cleanup),t.on(`close`,cleanup),t.emit(`pipe`,r),t}},t=class Readable extends Stream{static from(e){let t=new Readable;return(async()=>{try{for await(let n of e)t.push(n);t.push(null)}catch(e){t.destroy(e)}})(),t}readable=!0;destroyed=!1;readableEnded=!1;_buffer=[];_paused=!1;_flowing=null;_ended=!1;push(e){return e===null?(this._ended=!0,
|
|
1
|
+
import"./_virtual/_rolldown/runtime.js";import{EventEmitter as e}from"@gjsify/events";var Stream=class extends e{static Stream;static Readable;static Writable;static Duplex;static Transform;static PassThrough;static pipeline;static finished;readable=!1;writable=!1;pipe(t,n){let r=this,ondata=e=>{t.writable!==!1&&t.write(e)===!1&&r.pause&&r.pause()};r.on(`data`,ondata);let ondrain=()=>{r.readable&&r.resume&&r.resume()};t.on(`drain`,ondrain);let i=!1,onend=()=>{i||(i=!0,t.end?.())},onclose=()=>{i||(i=!0,t.destroy?.())},onerror=t=>{if(cleanup(),e.listenerCount(r,`error`)===0)throw t},cleanup=()=>{r.removeListener(`data`,ondata),t.removeListener(`drain`,ondrain),r.removeListener(`end`,onend),r.removeListener(`close`,onclose),r.removeListener(`error`,onerror),t.removeListener(`error`,onerror),r.removeListener(`end`,cleanup),r.removeListener(`close`,cleanup),t.removeListener(`close`,cleanup)};return!t._isStdio&&(!n||n.end!==!1)&&(r.on(`end`,onend),r.on(`close`,onclose)),r.on(`error`,onerror),t.on(`error`,onerror),r.on(`end`,cleanup),r.on(`close`,cleanup),t.on(`close`,cleanup),t.emit(`pipe`,r),t}},t=class Readable extends Stream{static from(e){let t=new Readable;return(async()=>{try{for await(let n of e)t.push(n);t.push(null)}catch(e){t.destroy(e)}})(),t}readable=!0;destroyed=!1;readableEnded=!1;_buffer=[];_paused=!1;_flowing=null;_ended=!1;_endEmitted=!1;_drainScheduled=!1;push(e){return e===null?(this._ended=!0,this._scheduleDrain(),!1):(this._flowing?(this._buffer.push(e),this._scheduleDrain()):(this._buffer.push(e),this.emit(`readable`)),!this._paused)}_scheduleDrain(){this._drainScheduled||(this._drainScheduled=!0,queueMicrotask(()=>{this._drainScheduled=!1,this._drainBuffer()}))}read(){return this._buffer.length===0?null:this._buffer.shift()}pause(){return this._paused=!0,this._flowing=!1,this.emit(`pause`),this}resume(){return this._paused=!1,this._flowing=!0,this._scheduleDrain(),this.emit(`resume`),this}_drainBuffer(){for(;this._flowing&&this._buffer.length>0;)this.emit(`data`,this._buffer.shift());this._ended&&this._buffer.length===0&&!this._endEmitted&&(this._endEmitted=!0,this.readableEnded=!0,this.emit(`end`))}destroy(e){return this.destroyed?this:(this.destroyed=!0,queueMicrotask(()=>{e&&this.emit(`error`,e),this.emit(`close`)}),this)}on(e,t){return super.on(e,t),e===`data`&&this._flowing===null&&(this._flowing=!0,this._scheduleDrain()),this}async*[Symbol.asyncIterator](){let e=this,t=null,n=[],r=!1,i=null,settle=e=>{if(t){let n=t;t=null,n(e)}},onData=e=>{t?settle({value:e,done:!1}):n.push(e)},onEnd=()=>{r=!0,settle({value:void 0,done:!0})},onError=e=>{i=e,settle({value:void 0,done:!0})};e.on(`data`,onData),e.on(`end`,onEnd),e.on(`error`,onError);try{for(;;){if(i)throw i;if(n.length>0){yield n.shift();continue}if(r)return;let e=await new Promise(e=>{t=e});if(e.done)return;yield e.value}}finally{e.removeListener(`data`,onData),e.removeListener(`end`,onEnd),e.removeListener(`error`,onError)}}},Writable=class extends Stream{writable=!0;writableEnded=!1;writableFinished=!1;destroyed=!1;_writing=!1;_writeEnded=!1;write(e,t,n){if(this._writeEnded){let e=Error(`write after end`);return queueMicrotask(()=>this.emit(`error`,e)),!1}let r=typeof t==`string`?t:`utf8`,i=typeof t==`function`?t:n;return typeof this._write==`function`?(this._writing=!0,this._write(e,r,e=>{if(this._writing=!1,e){queueMicrotask(()=>this.emit(`error`,e)),i?.();return}i?.(),queueMicrotask(()=>this.emit(`drain`))})):i&&queueMicrotask(()=>i()),!this._writing}end(e,t,n){let r=typeof t==`function`?t:n,finish=()=>{this._writeEnded=!0,this.writableEnded=!0,queueMicrotask(()=>{this.writableFinished=!0,this.emit(`finish`),this.emit(`close`)}),r&&queueMicrotask(()=>r())};return e==null?finish():this.write(e,typeof t==`string`?t:void 0,finish),this}destroy(e){return this.destroyed?this:(this.destroyed=!0,queueMicrotask(()=>{e&&this.emit(`error`,e),this.emit(`close`)}),this)}},Duplex=class extends t{writable=!0;writableEnded=!1;writableFinished=!1;_writing=!1;_writeEnded=!1;write(e,t,n){return Writable.prototype.write.call(this,e,t,n)}end(e,t,n){return Writable.prototype.end.call(this,e,t,n),this}},Transform=class extends Duplex{constructor(e){super(),e?.transform&&(this._transform=e.transform),e?.flush&&(this._flush=e.flush)}write(e,t,n){let r=typeof t==`string`?t:`utf8`,i=typeof t==`function`?t:n;return typeof this._transform==`function`?this._transform(e,r,(e,t)=>{if(e){queueMicrotask(()=>this.emit(`error`,e));return}t!=null&&this.push(t),i?.()}):(this.push(e),i&&queueMicrotask(()=>i())),!0}end(e,t,n){let finishOut=()=>{let e=typeof t==`function`?t:n,done=()=>{this.push(null),this._writeEnded=!0,this.writableEnded=!0,queueMicrotask(()=>{this.writableFinished=!0,this.emit(`finish`)}),e&&queueMicrotask(()=>e())};typeof this._flush==`function`?this._flush(e=>{e?queueMicrotask(()=>this.emit(`error`,e)):done()}):done()};return e==null?finishOut():this.write(e,typeof t==`string`?t:void 0,finishOut),this}},PassThrough=class extends Transform{constructor(){super({transform(e,t,n){n(null,e)}})}};function pipeline(...e){let t=typeof e[e.length-1]==`function`?e.pop():void 0,n=e;if(n.length<2)throw Error(`pipeline requires at least 2 streams`);let r=!1,finish=e=>{r||(r=!0,t?.(e??null))};for(let e=0;e<n.length-1;e++){let t=n[e],r=n[e+1];typeof t.pipe==`function`&&t.pipe(r),t.on(`error`,finish)}let i=n[n.length-1];return i.on(`error`,finish),i.on(`finish`,()=>finish()),i.on(`end`,()=>finish()),i}function finished(e,t,n){let r=typeof t==`function`?t:n,i=!1,finish=e=>{i||(i=!0,r?.(e??null))},onEnd=()=>finish(),onFinish=()=>finish(),onError=e=>finish(e),onClose=()=>finish();return e.on(`end`,onEnd),e.on(`finish`,onFinish),e.on(`error`,onError),e.on(`close`,onClose),()=>{e.removeListener(`end`,onEnd),e.removeListener(`finish`,onFinish),e.removeListener(`error`,onError),e.removeListener(`close`,onClose)}}function addAbortSignal(e,t){let onAbort=()=>{t.destroy?.(Error(`AbortError`))};return e.aborted?queueMicrotask(onAbort):e.addEventListener(`abort`,onAbort,{once:!0}),t}const isReadable=e=>e instanceof t&&e.readable,isWritable=e=>e instanceof Writable&&e.writable,isDestroyed=e=>!!(e&&typeof e==`object`&&e.destroyed),isDisturbed=e=>isDestroyed(e),isErrored=e=>!!(e&&typeof e==`object`&&e.errored);let n=16*1024;const getDefaultHighWaterMark=e=>n,setDefaultHighWaterMark=(e,t)=>{n=t};Stream.Stream=Stream,Stream.Readable=t,Stream.Writable=Writable,Stream.Duplex=Duplex,Stream.Transform=Transform,Stream.PassThrough=PassThrough,Stream.pipeline=pipeline,Stream.finished=finished;const r=Object.assign(Stream,{Readable:t,Writable,Duplex,Transform,PassThrough,Stream,pipeline,finished});export{Duplex,PassThrough,t as Readable,Stream,Transform,Writable,addAbortSignal,r as default,finished,getDefaultHighWaterMark,isDestroyed,isDisturbed,isErrored,isReadable,isWritable,pipeline,setDefaultHighWaterMark};
|
package/lib/types/browser.d.ts
CHANGED
|
@@ -37,7 +37,10 @@ export declare class Readable extends Stream {
|
|
|
37
37
|
protected _paused: boolean;
|
|
38
38
|
protected _flowing: boolean | null;
|
|
39
39
|
protected _ended: boolean;
|
|
40
|
+
protected _endEmitted: boolean;
|
|
41
|
+
protected _drainScheduled: boolean;
|
|
40
42
|
push(chunk: unknown): boolean;
|
|
43
|
+
protected _scheduleDrain(): void;
|
|
41
44
|
read(): unknown;
|
|
42
45
|
pause(): this;
|
|
43
46
|
resume(): this;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gjsify/stream",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.37",
|
|
4
4
|
"description": "Node.js stream module for Gjs",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"module": "lib/esm/index.js",
|
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
"build:test": "gjsify run build:test:gjs && gjsify run build:test:node",
|
|
44
44
|
"build:test:gjs": "gjsify build src/test.mts --app gjs --outfile test.gjs.mjs",
|
|
45
45
|
"build:test:node": "gjsify build src/test.mts --app node --outfile test.node.mjs",
|
|
46
|
+
"build:test:browser": "gjsify build src/test.browser.mts --app browser --outfile dist/test.browser.mjs",
|
|
46
47
|
"test": "gjsify run build:gjsify && gjsify run build:test && gjsify run test:node && gjsify run test:gjs",
|
|
47
48
|
"test:gjs": "gjsify run test.gjs.mjs",
|
|
48
49
|
"test:node": "node test.node.mjs"
|
|
@@ -53,21 +54,22 @@
|
|
|
53
54
|
"stream"
|
|
54
55
|
],
|
|
55
56
|
"devDependencies": {
|
|
56
|
-
"@gjsify/cli": "^0.4.
|
|
57
|
-
"@gjsify/unit": "^0.4.
|
|
57
|
+
"@gjsify/cli": "^0.4.37",
|
|
58
|
+
"@gjsify/unit": "^0.4.37",
|
|
58
59
|
"@types/node": "^25.9.1",
|
|
59
60
|
"typescript": "^5.9.3"
|
|
60
61
|
},
|
|
61
62
|
"dependencies": {
|
|
62
|
-
"@gjsify/events": "^0.4.
|
|
63
|
-
"@gjsify/utils": "^0.4.
|
|
64
|
-
"@gjsify/web-streams": "^0.4.
|
|
63
|
+
"@gjsify/events": "^0.4.37",
|
|
64
|
+
"@gjsify/utils": "^0.4.37",
|
|
65
|
+
"@gjsify/web-streams": "^0.4.37"
|
|
65
66
|
},
|
|
66
67
|
"gjsify": {
|
|
67
68
|
"runtimes": {
|
|
68
69
|
"gjs": "polyfill",
|
|
69
70
|
"node": "native",
|
|
70
|
-
"browser": "polyfill"
|
|
71
|
+
"browser": "polyfill",
|
|
72
|
+
"nativescript": "polyfill"
|
|
71
73
|
}
|
|
72
74
|
},
|
|
73
75
|
"license": "MIT",
|