/
githubmirror
/
meteor
Обзор
Документация
Войти
/
githubmirror
/
meteor
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
devel
tools/utils/eachline.ts
34 строки
754 B
denihs
Fixing breaking changes with [Typescript](https://devblogs.microsoft.com/typescript/announcing-typescript-4-4/#using-unknown-in-catch-variables).
01 фев 2022, 23:25
01 фев 2022, 23:25
18bfd07
Код
Авторство
О чём код?
const split = require("split2"); const pipe = require("multipipe"); import { Transform, Stream } from "stream"; type LineTransformer = (line: string) => string | Promise<string> export function eachline(stream: Stream, callback: LineTransformer) { stream.pipe(transform(callback)); } export function transform(callback: LineTransformer) { const splitStream = split(/\r?\n/, null, { trailing: false }); const transform = new Transform(); transform._transform = async function (chunk, _encoding, done) { let line = chunk.toString("utf8"); try { line = await callback(line); } catch (error: any) { done(error); return; } done(null, line); }; return pipe( splitStream, transform, ); }