foxts
Version:
Opinionated collection of common TypeScript utils by @SukkaW
2 lines (1 loc) • 635 B
JavaScript
import{falseFn as e}from"./noop.mjs";class n extends TransformStream{constructor({allowCR:n=!1,skipEmptyLines:t=!1}={}){let r="",l=0,i=n?(e,n,r)=>{let i=e.indexOf("\r",l);if(-1!==i&&i!==e.length-1&&(-1===n||n-1>i)){let n=e.slice(l,i);return t&&0===n.length||r.enqueue(e.slice(l,i)),l=i+1,!0}return!1}:e;super({transform(e,n){for(e=r+e,l=0;;){let r=e.indexOf("\n",l);if(i(e,r,n))continue;if(-1===r)break;let u=r;"\r"===e[r-1]&&u--;let s=e.slice(l,u);if(t&&0===s.length){l=r+1;continue}n.enqueue(s),l=r+1}r=e.slice(l)},flush(e){r.length>0&&(n&&"\r"===r[r.length-1]?e.enqueue(r.slice(0,-1)):e.enqueue(r))}})}}export{n as TextLineStream};