UNPKG

react-imported-component

Version:
22 lines (21 loc) 785 B
import { Transform } from 'stream'; import { getUsedMarks } from '../loadable/marks'; export const createLoadableTransformer = (stream, callback) => { const usedMarks = new Set(); return new Transform({ // transform() is called with each chunk of data // tslint:disable-next-line:variable-name transform(chunk, _, _callback) { const marks = getUsedMarks(stream); const newMarks = []; marks.forEach((mark) => { if (!usedMarks.has(mark)) { newMarks.push(mark); usedMarks.add(mark); } }); const chunkData = Buffer.from(chunk, 'utf-8'); _callback(undefined, callback(newMarks) + chunkData); }, }); };