UNPKG

nanolith

Version:

Multi-threading in no time with seamless TypeScript support.

1 lines 466 B
import{Readable}from"stream";export class ReadableFromPort extends Readable{#e;#s;#t;#r=!1;get metaData(){return this.#t}constructor(e,s,t={}){super(),this.#t=t,this.#e=e,this.#s=s}_read(){if(this.#r)return;const e=s=>{switch(s.type){case"stream-chunk":{const{data:e,id:t}=s;t===this.#e&&this.push(e);break}case"stream-finished":{const{id:t}=s;if(t!==this.#e)break;this.push(null),this.#s.off("message",e),this.destroy();break}}};this.#s.on("message",e),this.#r=!0}}