From 6f62c2d51cb5395de2c2fc21ee329203625762bd Mon Sep 17 00:00:00 2001 From: Mark Wubben Date: Thu, 22 Jun 2023 17:19:19 +0200 Subject: [PATCH] Remove superfluous dependencies * Remove get-stream dependency * Remove delay dependency * Remove fs-extra * Remove temp-write --- package-lock.json | 90 ------------------- package.json | 4 - test-tap/code-excerpt.js | 47 ++++------ test-tap/fixture/fail-fast/timeout/fails.cjs | 2 +- .../fixture/fail-fast/timeout/passes-slow.cjs | 2 +- test-tap/fixture/long-running.cjs | 2 +- .../fixture/report/timeoutcontextlogs/a.cjs | 2 +- .../fixture/report/timeoutcontextlogs/b.cjs | 2 +- .../report/timeoutinmultiplefiles/a.cjs | 2 +- .../report/timeoutinmultiplefiles/b.cjs | 2 +- .../fixture/report/timeoutinsinglefile/a.cjs | 2 +- .../fixture/report/timeoutwithmatch/a.cjs | 2 +- test-tap/fixture/serial.cjs | 2 +- test-tap/helper/cli.js | 6 +- test-tap/helper/replay-report.js | 3 +- test-tap/runner.js | 3 +- test-tap/test-try-commit.js | 3 +- test-tap/test.js | 10 ++- test/helpers/with-temporary-fixture.js | 5 +- test/shared-workers/timeout/fixtures/test.js | 3 +- 20 files changed, 48 insertions(+), 146 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0b769784f..8b5446dcf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -62,14 +62,10 @@ "@sindresorhus/tsconfig": "^3.0.1", "ansi-escapes": "^6.2.0", "c8": "^7.13.0", - "delay": "^5.0.0", "execa": "^7.1.1", "expect": "^29.5.0", - "fs-extra": "^11.1.1", - "get-stream": "^6.0.1", "sinon": "^15.1.0", "tap": "^16.3.4", - "temp-write": "^5.0.0", "tempy": "^3.0.0", "touch": "^3.1.0", "tsd": "^0.28.1", @@ -2569,18 +2565,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/delay": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", - "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/diff": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", @@ -3997,20 +3981,6 @@ "integrity": "sha512-kSxoARUDn4F2RPXX48UXnaFKwVU7Ivd/6qpzZL29MCDmr9sTvybv4gFCp+qaI4fM9m0z9fgz/yJvi56GAz+BZg==", "dev": true }, - "node_modules/fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -5578,18 +5548,6 @@ "node": ">=6" } }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, "node_modules/just-extend": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", @@ -10179,45 +10137,6 @@ "node": ">=14.16" } }, - "node_modules/temp-write": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/temp-write/-/temp-write-5.0.0.tgz", - "integrity": "sha512-cJhnzBW7DjNox7VcZDXeNlQSkIh3mX/h+M0n0Fh+zgT7YAHwI9c+OngKx4MCiQCVx9iXxV104xYlJgDBCCtawA==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.6", - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "uuid": "^8.3.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/temp-write/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/temp-write/node_modules/temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/tempy": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.0.0.tgz", @@ -10593,15 +10512,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/update-browserslist-db": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", diff --git a/package.json b/package.json index 3b2746be7..2a83b5f68 100644 --- a/package.json +++ b/package.json @@ -131,14 +131,10 @@ "@sindresorhus/tsconfig": "^3.0.1", "ansi-escapes": "^6.2.0", "c8": "^7.13.0", - "delay": "^5.0.0", "execa": "^7.1.1", "expect": "^29.5.0", - "fs-extra": "^11.1.1", - "get-stream": "^6.0.1", "sinon": "^15.1.0", "tap": "^16.3.4", - "temp-write": "^5.0.0", "tempy": "^3.0.0", "touch": "^3.1.0", "tsd": "^0.28.1", diff --git a/test-tap/code-excerpt.js b/test-tap/code-excerpt.js index 1e06bbd5c..c46de5a06 100644 --- a/test-tap/code-excerpt.js +++ b/test-tap/code-excerpt.js @@ -1,9 +1,8 @@ -import fs from 'node:fs'; import {pathToFileURL} from 'node:url'; import {Chalk} from 'chalk'; // eslint-disable-line unicorn/import-style import {test} from 'tap'; -import tempWrite from 'temp-write'; +import {temporaryFile, temporaryWriteSync} from 'tempy'; import {set as setChalk} from '../lib/chalk.js'; import codeExcerpt from '../lib/code-excerpt.js'; @@ -13,11 +12,9 @@ setChalk({level: 1}); const chalk = new Chalk({level: 1}); test('read code excerpt', t => { - const file = pathToFileURL(tempWrite.sync([ - 'function a() {', - '\talert();', - '}', - ].join('\n'))); + const file = pathToFileURL(temporaryWriteSync(`function a() { + alert(); +}`)); const excerpt = codeExcerpt({file, line: 2, isWithinProject: true, isDependency: false}); const expected = [ @@ -31,11 +28,9 @@ test('read code excerpt', t => { }); test('truncate lines', t => { - const file = pathToFileURL(tempWrite.sync([ - 'function a() {', - '\talert();', - '}', - ].join('\n'))); + const file = pathToFileURL(temporaryWriteSync(`function a() { + alert(); +}`)); const excerpt = codeExcerpt({file, line: 2, isWithinProject: true, isDependency: false}, {maxWidth: 14}); const expected = [ @@ -49,19 +44,17 @@ test('truncate lines', t => { }); test('format line numbers', t => { - const file = pathToFileURL(tempWrite.sync([ - '', - '', - '', - '', - '', - '', - '', - '', - 'function a() {', - '\talert();', - '}', - ].join('\n'))); + const file = pathToFileURL(temporaryWriteSync(` + + + + + + + +function a() { + alert(); +}`)); const excerpt = codeExcerpt({file, line: 10, isWithinProject: true, isDependency: false}); const expected = [ @@ -75,9 +68,7 @@ test('format line numbers', t => { }); test('noop if file cannot be read', t => { - const file = pathToFileURL(tempWrite.sync('')); - fs.unlinkSync(file); - + const file = pathToFileURL(temporaryFile()); const excerpt = codeExcerpt({file, line: 10, isWithinProject: true, isDependency: false}); t.equal(excerpt, null); t.end(); diff --git a/test-tap/fixture/fail-fast/timeout/fails.cjs b/test-tap/fixture/fail-fast/timeout/fails.cjs index e0996ab92..a34b55d5f 100644 --- a/test-tap/fixture/fail-fast/timeout/fails.cjs +++ b/test-tap/fixture/fail-fast/timeout/fails.cjs @@ -1,4 +1,4 @@ -const delay = require('delay'); +const {setTimeout: delay} = require('node:timers/promises'); const test = require('../../../../entrypoints/main.cjs'); diff --git a/test-tap/fixture/fail-fast/timeout/passes-slow.cjs b/test-tap/fixture/fail-fast/timeout/passes-slow.cjs index e8eadb0c5..00dd977a9 100644 --- a/test-tap/fixture/fail-fast/timeout/passes-slow.cjs +++ b/test-tap/fixture/fail-fast/timeout/passes-slow.cjs @@ -1,4 +1,4 @@ -const delay = require('delay'); +const {setTimeout: delay} = require('node:timers/promises'); const test = require('../../../../entrypoints/main.cjs'); diff --git a/test-tap/fixture/long-running.cjs b/test-tap/fixture/long-running.cjs index f2871ff46..3c8796ebb 100644 --- a/test-tap/fixture/long-running.cjs +++ b/test-tap/fixture/long-running.cjs @@ -1,4 +1,4 @@ -const delay = require('delay'); +const {setTimeout: delay} = require('node:timers/promises'); const test = require('../../entrypoints/main.cjs'); diff --git a/test-tap/fixture/report/timeoutcontextlogs/a.cjs b/test-tap/fixture/report/timeoutcontextlogs/a.cjs index 531fc7776..23a58d138 100644 --- a/test-tap/fixture/report/timeoutcontextlogs/a.cjs +++ b/test-tap/fixture/report/timeoutcontextlogs/a.cjs @@ -1,4 +1,4 @@ -const delay = require('delay'); +const {setTimeout: delay} = require('node:timers/promises'); const test = require('../../../../entrypoints/main.cjs'); diff --git a/test-tap/fixture/report/timeoutcontextlogs/b.cjs b/test-tap/fixture/report/timeoutcontextlogs/b.cjs index 8789c9c6c..d7d08852e 100644 --- a/test-tap/fixture/report/timeoutcontextlogs/b.cjs +++ b/test-tap/fixture/report/timeoutcontextlogs/b.cjs @@ -1,4 +1,4 @@ -const delay = require('delay'); +const {setTimeout: delay} = require('node:timers/promises'); const test = require('../../../../entrypoints/main.cjs'); diff --git a/test-tap/fixture/report/timeoutinmultiplefiles/a.cjs b/test-tap/fixture/report/timeoutinmultiplefiles/a.cjs index 000a7fb7e..68b73b53a 100644 --- a/test-tap/fixture/report/timeoutinmultiplefiles/a.cjs +++ b/test-tap/fixture/report/timeoutinmultiplefiles/a.cjs @@ -1,4 +1,4 @@ -const delay = require('delay'); +const {setTimeout: delay} = require('node:timers/promises'); const test = require('../../../../entrypoints/main.cjs'); diff --git a/test-tap/fixture/report/timeoutinmultiplefiles/b.cjs b/test-tap/fixture/report/timeoutinmultiplefiles/b.cjs index c7ecfc9b3..0c55b93f6 100644 --- a/test-tap/fixture/report/timeoutinmultiplefiles/b.cjs +++ b/test-tap/fixture/report/timeoutinmultiplefiles/b.cjs @@ -1,4 +1,4 @@ -const delay = require('delay'); +const {setTimeout: delay} = require('node:timers/promises'); const test = require('../../../../entrypoints/main.cjs'); diff --git a/test-tap/fixture/report/timeoutinsinglefile/a.cjs b/test-tap/fixture/report/timeoutinsinglefile/a.cjs index bde11abc0..b1fc9fe56 100644 --- a/test-tap/fixture/report/timeoutinsinglefile/a.cjs +++ b/test-tap/fixture/report/timeoutinsinglefile/a.cjs @@ -1,4 +1,4 @@ -const delay = require('delay'); +const {setTimeout: delay} = require('node:timers/promises'); const test = require('../../../../entrypoints/main.cjs'); diff --git a/test-tap/fixture/report/timeoutwithmatch/a.cjs b/test-tap/fixture/report/timeoutwithmatch/a.cjs index d7ddb3e8a..21642a74c 100644 --- a/test-tap/fixture/report/timeoutwithmatch/a.cjs +++ b/test-tap/fixture/report/timeoutwithmatch/a.cjs @@ -1,4 +1,4 @@ -const delay = require('delay'); +const {setTimeout: delay} = require('node:timers/promises'); const test = require('../../../../entrypoints/main.cjs'); diff --git a/test-tap/fixture/serial.cjs b/test-tap/fixture/serial.cjs index 55847a06d..a54a73dd1 100644 --- a/test-tap/fixture/serial.cjs +++ b/test-tap/fixture/serial.cjs @@ -1,4 +1,4 @@ -const delay = require('delay'); +const {setTimeout: delay} = require('node:timers/promises'); const test = require('../../entrypoints/main.cjs'); diff --git a/test-tap/helper/cli.js b/test-tap/helper/cli.js index 7716ce965..1536559c9 100644 --- a/test-tap/helper/cli.js +++ b/test-tap/helper/cli.js @@ -2,8 +2,6 @@ import childProcess from 'node:child_process'; import path from 'node:path'; import {fileURLToPath} from 'node:url'; -import getStream from 'get-stream'; - const __dirname = fileURLToPath(new URL('.', import.meta.url)); const cliPath = fileURLToPath(new URL('../../entrypoints/cli.mjs', import.meta.url)); @@ -48,8 +46,8 @@ export function execCli(args, options, cb) { resolve(code); }); - stdout = getStream(child.stdout); - stderr = getStream(child.stderr); + stdout = child.stdout.toArray().then(chunks => chunks.join('')); + stderr = child.stderr.toArray().then(chunks => chunks.join('')); }); Promise.all([processPromise, stdout, stderr]).then(args => { diff --git a/test-tap/helper/replay-report.js b/test-tap/helper/replay-report.js index 4f77618a5..37ac3955a 100755 --- a/test-tap/helper/replay-report.js +++ b/test-tap/helper/replay-report.js @@ -1,7 +1,6 @@ #!/usr/bin/env node import fs from 'node:fs'; - -import delay from 'delay'; +import {setTimeout as delay} from 'node:timers/promises'; import TTYStream from './tty-stream.js'; diff --git a/test-tap/runner.js b/test-tap/runner.js index 1760949e0..d36137bdf 100644 --- a/test-tap/runner.js +++ b/test-tap/runner.js @@ -1,4 +1,5 @@ -import delay from 'delay'; +import {setTimeout as delay} from 'node:timers/promises'; + import {test} from 'tap'; import Runner from '../lib/runner.js'; diff --git a/test-tap/test-try-commit.js b/test-tap/test-try-commit.js index ba99047c2..0bda4db78 100644 --- a/test-tap/test-try-commit.js +++ b/test-tap/test-try-commit.js @@ -1,4 +1,5 @@ -import delay from 'delay'; +import {setTimeout as delay} from 'node:timers/promises'; + import {test} from 'tap'; import ContextRef from '../lib/context-ref.js'; diff --git a/test-tap/test.js b/test-tap/test.js index e5014dbfe..4a8e41938 100644 --- a/test-tap/test.js +++ b/test-tap/test.js @@ -1,8 +1,8 @@ import path from 'node:path'; +import {setTimeout as delay} from 'node:timers/promises'; import {fileURLToPath} from 'node:url'; import ciInfo from 'ci-info'; -import delay from 'delay'; import sinon from 'sinon'; import {test} from 'tap'; @@ -312,7 +312,9 @@ test('throws and notThrows work with promises', t => { const instance = ava(a => { a.plan(2); return Promise.all([ - a.throwsAsync(delay.reject(10, {value: new Error('foo')}), {message: 'foo'}), + a.throwsAsync(delay(10).then(() => { + throw new Error('foo'); + }), {message: 'foo'}), a.notThrowsAsync(delay(20).then(() => { asyncCalled = true; })), @@ -332,7 +334,9 @@ test('multiple resolving and rejecting promises passed to t.throws/t.notThrows', const promises = []; for (let i = 0; i < 3; i++) { promises.push( - a.throwsAsync(delay.reject(10, {value: new Error('foo')}), {message: 'foo'}), + a.throwsAsync(delay(10).then(() => { + throw new Error('foo'); + }), {message: 'foo'}), a.notThrowsAsync(delay(10)), ); } diff --git a/test/helpers/with-temporary-fixture.js b/test/helpers/with-temporary-fixture.js index f92d8382e..1f6906f90 100644 --- a/test/helpers/with-temporary-fixture.js +++ b/test/helpers/with-temporary-fixture.js @@ -1,10 +1,11 @@ -import fse from 'fs-extra'; +import fs from 'node:fs/promises'; + import {temporaryDirectoryTask} from 'tempy'; export async function withTemporaryFixture(cwd, task) { let result; await temporaryDirectoryTask(async temporary => { - await fse.copy(cwd, temporary); + await fs.cp(cwd, temporary, {recursive: true}); result = await task(temporary); }); diff --git a/test/shared-workers/timeout/fixtures/test.js b/test/shared-workers/timeout/fixtures/test.js index 60f7d9e38..456a06df7 100644 --- a/test/shared-workers/timeout/fixtures/test.js +++ b/test/shared-workers/timeout/fixtures/test.js @@ -1,6 +1,7 @@ +import {setTimeout as delay} from 'node:timers/promises'; + import test from 'ava'; import {registerSharedWorker} from 'ava/plugin'; -import delay from 'delay'; registerSharedWorker({ filename: new URL('worker.mjs', import.meta.url),