From bd921223b16d614cf011e3ca30e069f4205982d2 Mon Sep 17 00:00:00 2001 From: Yagiz Nizipli Date: Fri, 8 Sep 2023 16:15:41 -0400 Subject: [PATCH] refactor: update deps and remove unnecessary ones (#966) * refactor: update deps and remove unnecessary ones * fix: add retryDelay to `fs.rm` * chore: update more dependencies --- lib/bin/citgm-all.js | 2 -- lib/bin/citgm.js | 2 -- lib/citgm.js | 5 +--- lib/package-manager/get-executable.js | 3 +- lib/package-manager/test.js | 3 +- lib/temp-directory.js | 11 ++++---- package.json | 40 +++++++++++++-------------- test/npm/test-npm-install.js | 17 ++++++------ test/npm/test-npm-test.js | 23 +++++++-------- test/reporter/test-reporter-junit.js | 9 ++++-- test/reporter/test-reporter-tap.js | 10 ++++--- test/test-citgm.js | 4 +-- test/test-grab-project.js | 10 ++++--- test/test-temp-directory.js | 9 +++--- test/yarn/test-yarn-install.js | 17 ++++++------ test/yarn/test-yarn-test.js | 27 +++++++++--------- 16 files changed, 95 insertions(+), 97 deletions(-) diff --git a/lib/bin/citgm-all.js b/lib/bin/citgm-all.js index ab2a5b318..cbb61544d 100755 --- a/lib/bin/citgm-all.js +++ b/lib/bin/citgm-all.js @@ -1,5 +1,3 @@ -import 'make-promises-safe'; - import * as os from 'os'; import async from 'async'; diff --git a/lib/bin/citgm.js b/lib/bin/citgm.js index 973ec0e29..3bdc2763f 100755 --- a/lib/bin/citgm.js +++ b/lib/bin/citgm.js @@ -1,5 +1,3 @@ -import 'make-promises-safe'; - import rootCheck from 'root-check'; import uidnumber from 'uid-number'; diff --git a/lib/citgm.js b/lib/citgm.js index d9a727e5e..d6b74981f 100644 --- a/lib/citgm.js +++ b/lib/citgm.js @@ -1,12 +1,9 @@ import { createHash } from 'crypto'; import { EventEmitter } from 'events'; -import { promisify } from 'util'; import npa from 'npm-package-arg'; import BufferList from 'bl'; -import whichLib from 'which'; - -const which = promisify(whichLib); +import which from 'which'; import { grabModuleData } from './grab-module-data.js'; import { grabProject } from './grab-project.js'; diff --git a/lib/package-manager/get-executable.js b/lib/package-manager/get-executable.js index d45725b8d..1d80b90d0 100644 --- a/lib/package-manager/get-executable.js +++ b/lib/package-manager/get-executable.js @@ -3,12 +3,11 @@ import { promisify } from 'util'; import { fileURLToPath } from 'url'; import npmWhichLib from 'npm-which'; -import whichLib from 'which'; +import which from 'which'; const npmWhich = promisify( npmWhichLib(dirname(fileURLToPath(import.meta.url))) ); -const which = promisify(whichLib); export function getExecutable(binaryName) { if (binaryName === 'yarn') { diff --git a/lib/package-manager/test.js b/lib/package-manager/test.js index 89263919b..2e0d2054b 100644 --- a/lib/package-manager/test.js +++ b/lib/package-manager/test.js @@ -3,10 +3,9 @@ import { promisify } from 'util'; import readPackageJson from 'read-package-json'; import stripAnsi from 'strip-ansi'; -import whichLib from 'which'; +import which from 'which'; const readPackage = promisify(readPackageJson); -const which = promisify(whichLib); import { createOptions } from '../create-options.js'; import { spawn } from '../spawn.js'; diff --git a/lib/temp-directory.js b/lib/temp-directory.js index 38ca20d38..f5e9ed403 100644 --- a/lib/temp-directory.js +++ b/lib/temp-directory.js @@ -1,13 +1,9 @@ -import { promisify } from 'util'; import { join } from 'path'; import { promises as fs } from 'fs'; import { randomUUID } from 'crypto'; -import rimrafLib from 'rimraf'; import osenv from 'osenv'; -const rimraf = promisify(rimrafLib); - export async function create(context) { if (context.options && context.options.tmpDir) { context.path = join(context.options.tmpDir, randomUUID()); @@ -38,7 +34,12 @@ export let remove = async function remove(context) { `${context.module.name} rm.tempdir`, context.path ); - await rimraf(context.path); + await fs.rm(context.path, { + recursive: true, + force: true, + maxRetries: 10, + retryDelay: 10 + }); }; // Used in tests to simulate errors in rimraf. diff --git a/package.json b/package.json index 0c487bb58..178d83d31 100644 --- a/package.json +++ b/package.json @@ -31,42 +31,39 @@ "license": "MIT", "dependencies": { "async": "^3.2.2", - "bl": "^5.0.0", - "chalk": "^5.0.0", - "columnify": "^1.5.4", - "execa": "^6.0.0", + "bl": "^6.0.7", + "chalk": "^5.3.0", + "columnify": "^1.6.0", + "execa": "^8.0.1", "lodash": "^4.17.21", - "make-promises-safe": "^5.1.0", "normalize-git-url": "^3.0.2", - "npm-package-arg": "^8.1.5", + "npm-package-arg": "^11.0.1", "npm-which": "^3.0.1", "osenv": "^0.1.5", - "read-package-json": "^4.1.1", - "rimraf": "^3.0.2", + "read-package-json": "^7.0.0", "root-check": "^2.0.0", - "semver": "^7.3.5", + "semver": "^7.5.4", "strip-ansi": "^7.0.1", "supports-color": "^9.2.1", - "tar": "^6.1.11", + "tar": "^6.2.0", "uid-number": "0.0.6", "undici": "^5.5.1", - "which": "^2.0.2", - "winston": "^3.3.3", + "which": "^4.0.0", + "winston": "^3.10.0", "xml-sanitizer": "^1.1.11", "xmlbuilder": "^15.1.1", "yargs": "^17.3.0", - "yarn": "^1.22.17" + "yarn": "^1.22.19" }, "devDependencies": { "ansi-regex": "^6.0.1", - "c8": "^7.10.0", - "eslint": "^8.4.0", - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-prettier": "^4.0.0", - "fs-extra": "^10.0.0", - "prettier": "^2.5.1", + "c8": "^8.0.1", + "eslint": "^8.48.0", + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-prettier": "^5.0.0", + "prettier": "^3.0.3", "string-to-stream": "^3.0.1", - "tap": "^16.2.0", + "tap": "^16.3.8", "tap-parser": "^11.0.1", "xml2js": "^0.5.0" }, @@ -89,5 +86,6 @@ }, "engines": { "node": "16.x || 18.x || 20.x" - } + }, + "packageManager": "yarn@3.6.3" } diff --git a/test/npm/test-npm-install.js b/test/npm/test-npm-install.js index 6fe7dfa26..c6c17c952 100644 --- a/test/npm/test-npm-install.js +++ b/test/npm/test-npm-install.js @@ -1,19 +1,15 @@ import { tmpdir } from 'os'; import { join, dirname } from 'path'; -import { promisify } from 'util'; import { fileURLToPath } from 'url'; import { promises as fs } from 'fs'; -import fse from 'fs-extra'; import tap from 'tap'; -import rimrafLib from 'rimraf'; import { getPackageManagers } from '../../lib/package-manager/index.js'; import packageManagerInstall from '../../lib/package-manager/install.js'; import { npmContext } from '../helpers/make-context.js'; const { test } = tap; -const rimraf = promisify(rimrafLib); const __dirname = dirname(fileURLToPath(import.meta.url)); const sandbox = join(tmpdir(), `citgm-${Date.now()}`); @@ -31,9 +27,9 @@ test('npm-install: setup', async () => { packageManagers = await getPackageManagers(); await fs.mkdir(sandbox, { recursive: true }); await Promise.all([ - fse.copy(moduleFixtures, moduleTemp), - fse.copy(extraParamFixtures, extraParamTemp), - fse.copy(badFixtures, badTemp) + fs.cp(moduleFixtures, moduleTemp, { recursive: true }), + fs.cp(extraParamFixtures, extraParamTemp, { recursive: true }), + fs.cp(badFixtures, badTemp, { recursive: true }) ]); }); @@ -107,5 +103,10 @@ test('npm-install: failed install', async (t) => { }); test('npm-install: teardown', async () => { - await rimraf(sandbox); + await fs.rm(sandbox, { + recursive: true, + force: true, + maxRetries: 10, + retryDelay: 10 + }); }); diff --git a/test/npm/test-npm-test.js b/test/npm/test-npm-test.js index 5c69446d9..f4ff7f500 100644 --- a/test/npm/test-npm-test.js +++ b/test/npm/test-npm-test.js @@ -1,19 +1,15 @@ import { tmpdir } from 'os'; import { join, resolve, dirname } from 'path'; -import { promisify } from 'util'; import { fileURLToPath } from 'url'; import { existsSync, promises as fs } from 'fs'; -import fse from 'fs-extra'; import tap from 'tap'; -import rimrafLib from 'rimraf'; import { npmContext } from '../helpers/make-context.js'; import { getPackageManagers } from '../../lib/package-manager/index.js'; import { test as packageManagerTest } from '../../lib/package-manager/test.js'; const { test } = tap; -const rimraf = promisify(rimrafLib); const __dirname = dirname(fileURLToPath(import.meta.url)); const sandbox = join(tmpdir(), `citgm-${Date.now()}`); @@ -43,12 +39,12 @@ test('npm-test: setup', async () => { packageManagers = await getPackageManagers(); await fs.mkdir(sandbox, { recursive: true }); await Promise.all([ - fse.copy(passFixtures, passTemp), - fse.copy(failFixtures, failTemp), - fse.copy(badFixtures, badTemp), - fse.copy(noTestScriptFixtures, noTestScriptTemp), - fse.copy(scriptsFixtures, scriptsTemp), - fse.copy(writeTmpdirFixtures, writeTmpdirTemp) + fs.cp(passFixtures, passTemp, { recursive: true }), + fs.cp(failFixtures, failTemp, { recursive: true }), + fs.cp(badFixtures, badTemp, { recursive: true }), + fs.cp(noTestScriptFixtures, noTestScriptTemp, { recursive: true }), + fs.cp(scriptsFixtures, scriptsTemp, { recursive: true }), + fs.cp(writeTmpdirFixtures, writeTmpdirTemp, { recursive: true }) ]); }); @@ -189,5 +185,10 @@ test('npm-test: tmpdir is redirected', async (t) => { }); test('npm-test: teardown', async () => { - await rimraf(sandbox); + await fs.rm(sandbox, { + recursive: true, + force: true, + maxRetries: 10, + retryDelay: 10 + }); }); diff --git a/test/reporter/test-reporter-junit.js b/test/reporter/test-reporter-junit.js index 5ab9df7d8..b19b96733 100644 --- a/test/reporter/test-reporter-junit.js +++ b/test/reporter/test-reporter-junit.js @@ -5,14 +5,12 @@ import { fileURLToPath } from 'url'; import { promisify } from 'util'; import tap from 'tap'; -import rimrafLib from 'rimraf'; import _ from 'lodash'; import xml2js from 'xml2js'; import junitReporter from '../../lib/reporter/junit.js'; const { test } = tap; -const rimraf = promisify(rimrafLib); const parseString = promisify(xml2js.parseString); const fixtures = JSON.parse( @@ -156,5 +154,10 @@ test('reporter.junit(): append to disk', (t) => { }); test('reporter.junit(): teardown', async () => { - await rimraf(sandbox); + await fs.rm(sandbox, { + recursive: true, + force: true, + maxRetries: 10, + retryDelay: 10 + }); }); diff --git a/test/reporter/test-reporter-tap.js b/test/reporter/test-reporter-tap.js index f5e4546eb..142f57788 100644 --- a/test/reporter/test-reporter-tap.js +++ b/test/reporter/test-reporter-tap.js @@ -4,10 +4,8 @@ import { readFileSync, writeFileSync, promises as fs } from 'fs'; import { join, dirname } from 'path'; import { tmpdir } from 'os'; import { fileURLToPath } from 'url'; -import { promisify } from 'util'; import tap from 'tap'; -import rimrafLib from 'rimraf'; import Parser from 'tap-parser'; import str from 'string-to-stream'; @@ -18,7 +16,6 @@ const fixtures = JSON.parse( ); const { test } = tap; -const rimraf = promisify(rimrafLib); const fixturesPath = join( dirname(fileURLToPath(import.meta.url)), @@ -132,5 +129,10 @@ test('reporter.tap(): append to disk when file does not exist', (t) => { }); test('reporter.tap(): teardown', async () => { - await rimraf(sandbox); + await fs.rm(sandbox, { + recursive: true, + force: true, + maxRetries: 10, + retryDelay: 10 + }); }); diff --git a/test/test-citgm.js b/test/test-citgm.js index 84f779246..23566c4c7 100644 --- a/test/test-citgm.js +++ b/test/test-citgm.js @@ -1,9 +1,7 @@ -import tap from 'tap'; +import { test } from 'tap'; import { Tester } from '../lib/citgm.js'; -const { test } = tap; - test('citgm: omg-i-pass', (t) => { t.plan(2); const options = { diff --git a/test/test-grab-project.js b/test/test-grab-project.js index df9f01506..fb923f6c4 100644 --- a/test/test-grab-project.js +++ b/test/test-grab-project.js @@ -5,16 +5,13 @@ import { dirname, join } from 'path'; import { fileURLToPath } from 'url'; import { tmpdir } from 'os'; -import { promisify } from 'util'; import { promises as fs } from 'fs'; import tap from 'tap'; -import rimrafLib from 'rimraf'; import { grabProject } from '../lib/grab-project.js'; const { test } = tap; -const rimraf = promisify(rimrafLib); const __dirname = dirname(fileURLToPath(import.meta.url)); const sandbox = join(tmpdir(), `citgm-${Date.now()}`); @@ -173,5 +170,10 @@ test('grab-project: timeout', async (t) => { }); test('grab-project: teardown', async () => { - await rimraf(sandbox); + await fs.rm(sandbox, { + recursive: true, + force: true, + maxRetries: 10, + retryDelay: 10 + }); }); diff --git a/test/test-temp-directory.js b/test/test-temp-directory.js index d9ff8ef9a..296d867c4 100644 --- a/test/test-temp-directory.js +++ b/test/test-temp-directory.js @@ -1,13 +1,10 @@ -import { promisify } from 'util'; import { promises as fs } from 'fs'; import tap from 'tap'; -import rimrafLib from 'rimraf'; import * as tempDirectory from '../lib/temp-directory.js'; const { test } = tap; -const rimraf = promisify(rimrafLib); const isWin32 = process.platform === 'win32'; const nullDevice = isWin32 ? '\\\\.\\NUL' : '/dev/null'; @@ -49,7 +46,11 @@ test('tempDirectory.create --tmpDir:', async (t) => { ); const stats = await fs.stat(contextTmpDir.path); t.ok(stats.isDirectory(), 'the path should exist and be a folder'); - await rimraf('./.thisisatest'); + await fs.rm('./.thisisatest', { + recursive: true, + force: true, + maxRetries: 10 + }); }); test('tempDirectory.remove:', async (t) => { diff --git a/test/yarn/test-yarn-install.js b/test/yarn/test-yarn-install.js index bfaa5bbfb..ce96fe9c8 100644 --- a/test/yarn/test-yarn-install.js +++ b/test/yarn/test-yarn-install.js @@ -2,18 +2,14 @@ import { tmpdir } from 'os'; import { promises as fs } from 'fs'; import { join, dirname } from 'path'; import { fileURLToPath } from 'url'; -import { promisify } from 'util'; -import fse from 'fs-extra'; import tap from 'tap'; -import rimrafLib from 'rimraf'; import { getPackageManagers } from '../../lib/package-manager/index.js'; import packageManagerInstall from '../../lib/package-manager/install.js'; import { npmContext } from '../helpers/make-context.js'; const { test } = tap; -const rimraf = promisify(rimrafLib); const sandbox = join(tmpdir(), `citgm-${Date.now()}`); const fixtures = join( @@ -34,9 +30,9 @@ test('yarn-install: setup', async () => { packageManagers = await getPackageManagers(); await fs.mkdir(sandbox, { recursive: true }); await Promise.all([ - fse.copy(moduleFixtures, moduleTemp), - fse.copy(extraParamFixtures, extraParamTemp), - fse.copy(badFixtures, badTemp) + fs.cp(moduleFixtures, moduleTemp, { recursive: true }), + fs.cp(extraParamFixtures, extraParamTemp, { recursive: true }), + fs.cp(badFixtures, badTemp, { recursive: true }) ]); }); @@ -85,5 +81,10 @@ test('yarn-install: failed install', async (t) => { }); test('yarn-install: teardown', async () => { - await rimraf(sandbox); + await fs.rm(sandbox, { + recursive: true, + force: true, + maxRetries: 10, + retryDelay: 10 + }); }); diff --git a/test/yarn/test-yarn-test.js b/test/yarn/test-yarn-test.js index e58781ed5..77eea1952 100644 --- a/test/yarn/test-yarn-test.js +++ b/test/yarn/test-yarn-test.js @@ -2,19 +2,13 @@ import { existsSync, promises as fs } from 'fs'; import { tmpdir } from 'os'; import { join, resolve, dirname } from 'path'; import { fileURLToPath } from 'url'; -import { promisify } from 'util'; -import fse from 'fs-extra'; -import tap from 'tap'; -import rimrafLib from 'rimraf'; +import { test } from 'tap'; import { npmContext } from '../helpers/make-context.js'; import { getPackageManagers } from '../../lib/package-manager/index.js'; import { test as packageManagerTest } from '../../lib/package-manager/test.js'; -const { test } = tap; -const rimraf = promisify(rimrafLib); - const __dirname = dirname(fileURLToPath(import.meta.url)); const sandbox = join(tmpdir(), `citgm-${Date.now()}`); @@ -44,12 +38,12 @@ test('yarn-test: setup', async () => { packageManagers = await getPackageManagers(); await fs.mkdir(sandbox, { recursive: true }); await Promise.all([ - fse.copy(passFixtures, passTemp), - fse.copy(failFixtures, failTemp), - fse.copy(badFixtures, badTemp), - fse.copy(noTestScriptFixtures, noTestScriptTemp), - fse.copy(scriptsFixtures, scriptsTemp), - fse.copy(writeTmpdirFixtures, writeTmpdirTemp) + fs.cp(passFixtures, passTemp, { recursive: true }), + fs.cp(failFixtures, failTemp, { recursive: true }), + fs.cp(badFixtures, badTemp, { recursive: true }), + fs.cp(noTestScriptFixtures, noTestScriptTemp, { recursive: true }), + fs.cp(scriptsFixtures, scriptsTemp, { recursive: true }), + fs.cp(writeTmpdirFixtures, writeTmpdirTemp, { recursive: true }) ]); }); @@ -187,5 +181,10 @@ test('yarn-test: tmpdir is redirected', async (t) => { }); test('yarn-test: teardown', async () => { - await rimraf(sandbox); + await fs.rm(sandbox, { + recursive: true, + force: true, + maxRetries: 10, + retryDelay: 10 + }); });