From 65bb24c5b3a96127b8ba78ebacb2f3091f53a64e Mon Sep 17 00:00:00 2001 From: "Kamat, Trivikram" <16024985+trivikr@users.noreply.github.com> Date: Sun, 1 Nov 2026 19:03:50 -0800 Subject: [PATCH] chore: remove split2 --- README.md | 8 +++++--- package.json | 3 +-- test.js | 18 ++++++++++++------ 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index a1cc1d2..45ab858 100644 --- a/README.md +++ b/README.md @@ -17,11 +17,13 @@ Typical usage: ```js import { spawn } from 'node:child_process' -import split2 from 'split2' +import { createInterface } from 'node:readline' +import { Readable } from 'node:stream' import listStream from 'list-stream' -spawn('bash', ['-c', 'git log']) - .stdout.pipe(split2()) // break up by newline characters +const { stdout } = spawn('bash', ['-c', 'git log']) + +Readable.from(createInterface({ input: stdout, crlfDelay: Infinity })) // break up by newline characters .pipe(commitStream('rvagg', 'commit-stream')) .pipe(listStream.obj(onCommitList)) diff --git a/package.json b/package.json index c149de1..2c3fdee 100644 --- a/package.json +++ b/package.json @@ -24,8 +24,7 @@ "@semantic-release/git": "^11.0.0", "conventional-changelog-conventionalcommits": "^9.3.1", "list-stream": "^2.1.0", - "semantic-release": "^25.0.3", - "split2": "^4.2.0" + "semantic-release": "^25.0.3" }, "release": { "branches": [ diff --git a/test.js b/test.js index ac843e3..5ada4e4 100644 --- a/test.js +++ b/test.js @@ -2,9 +2,9 @@ import commitStream from './commit-stream.js' import { spawn, exec } from 'node:child_process' import assert from 'node:assert/strict' import nodeTest from 'node:test' -import split2 from 'split2' +import { createInterface } from 'node:readline' import listStream from 'list-stream' -import { pipeline } from 'node:stream' +import { pipeline, Readable } from 'node:stream' function test (name, fn) { return nodeTest(name, (_, done) => fn({ @@ -21,6 +21,10 @@ function gitToList (t, gitCmd, user, repo, callback) { repo = undefined } const child = spawn('bash', ['-c', gitCmd]) + let pending = 2 + const done = () => { + if (--pending === 0) setImmediate(t.end.bind(t)) + } let stderr = '' child.stderr.setEncoding('utf8').on('data', (chunk) => { stderr += chunk }) child.on('error', (err) => { @@ -29,13 +33,15 @@ function gitToList (t, gitCmd, user, repo, callback) { child.on('close', (code) => { t.strictEqual(stderr, '') t.strictEqual(code, 0, 'exit code zero') - setImmediate(t.end.bind(t)) + done() }) pipeline( - child.stdout, - split2(), + Readable.from(createInterface({ input: child.stdout, crlfDelay: Infinity })), commitStream(user, repo), - listStream.obj(callback), + listStream.obj((err, list) => { + callback(err, list) + done() + }), () => {} ) }