49 lines
3.4 KiB
JavaScript
49 lines
3.4 KiB
JavaScript
import fs from 'fs';
|
|
import readline from 'readline';
|
|
import { splitStream } from '@simple-libs/stream-utils';
|
|
export async function* readRawCommitsFromFiles(files, separator) {
|
|
for (const file of files) {
|
|
try {
|
|
yield* splitStream(fs.createReadStream(file), separator);
|
|
}
|
|
catch (err) {
|
|
console.warn(`Failed to read file ${file}:\n ${err}`);
|
|
}
|
|
}
|
|
}
|
|
export async function* readRawCommitsFromLine(separator) {
|
|
const rl = readline.createInterface({
|
|
input: process.stdin,
|
|
output: process.stdout,
|
|
terminal: true
|
|
});
|
|
let line = '';
|
|
let commit = '';
|
|
for await (line of rl) {
|
|
commit += `${line}\n`;
|
|
if (!commit.includes(separator)) {
|
|
return;
|
|
}
|
|
yield commit;
|
|
commit = '';
|
|
}
|
|
}
|
|
export function readRawCommitsFromStdin(separator) {
|
|
return splitStream(process.stdin, separator);
|
|
}
|
|
const JSON_STREAM_OPEN = '[\n';
|
|
const JSON_STREAM_SEPARATOR = '\n,\n';
|
|
const JSON_STREAM_CLOSE = '\n]\n';
|
|
export async function* stringify(commits) {
|
|
let jsonStreamOpened = false;
|
|
yield JSON_STREAM_OPEN;
|
|
for await (const commit of commits) {
|
|
if (jsonStreamOpened) {
|
|
yield JSON_STREAM_SEPARATOR;
|
|
}
|
|
yield JSON.stringify(commit);
|
|
jsonStreamOpened = true;
|
|
}
|
|
yield JSON_STREAM_CLOSE;
|
|
}
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQTtBQUNuQixPQUFPLFFBQVEsTUFBTSxVQUFVLENBQUE7QUFDL0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBRXZELE1BQU0sQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLEtBQWUsRUFBRSxTQUFpQjtJQUMvRSxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQztZQUNILEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUE7UUFDMUQsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixPQUFPLENBQUMsSUFBSSxDQUFDLHVCQUF1QixJQUFJLFFBQVEsR0FBYSxFQUFFLENBQUMsQ0FBQTtRQUNsRSxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxTQUFpQjtJQUM3RCxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDO1FBQ2xDLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztRQUNwQixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07UUFDdEIsUUFBUSxFQUFFLElBQUk7S0FDZixDQUFDLENBQUE7SUFDRixJQUFJLElBQUksR0FBRyxFQUFFLENBQUE7SUFDYixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUE7SUFFZixJQUFJLEtBQUssRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLENBQUM7UUFDdEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUE7UUFFckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxPQUFNO1FBQ1IsQ0FBQztRQUVELE1BQU0sTUFBTSxDQUFBO1FBQ1osTUFBTSxHQUFHLEVBQUUsQ0FBQTtJQUNiLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUFDLFNBQWlCO0lBQ3ZELE9BQU8sV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUE7QUFDOUMsQ0FBQztBQUVELE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxDQUFBO0FBQzlCLE1BQU0scUJBQXFCLEdBQUcsT0FBTyxDQUFBO0FBQ3JDLE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFBO0FBRWpDLE1BQU0sQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUErQztJQUM5RSxJQUFJLGdCQUFnQixHQUFHLEtBQUssQ0FBQTtJQUU1QixNQUFNLGdCQUFnQixDQUFBO0lBRXRCLElBQUksS0FBSyxFQUFFLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ25DLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNyQixNQUFNLHFCQUFxQixDQUFBO1FBQzdCLENBQUM7UUFFRCxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDNUIsZ0JBQWdCLEdBQUcsSUFBSSxDQUFBO0lBQ3pCLENBQUM7SUFFRCxNQUFNLGlCQUFpQixDQUFBO0FBQ3pCLENBQUMifQ==
|