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