From 52fb6c6ee6eeabab57a7beb3da8564fc2bcb6972 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Wed, 14 Aug 2024 04:51:09 +0800 Subject: [PATCH] chore: replace `path-scurry` w/ `fdir` --- package-lock.json | 104 +++++++++++++++++++++++++++++++++++++++------- package.json | 2 +- test/index.ts | 34 ++++++++------- 3 files changed, 109 insertions(+), 31 deletions(-) diff --git a/package-lock.json b/package-lock.json index 58ff2bb..37fc2d5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "rollup-plugin-swc3", - "version": "0.11.1", + "version": "0.11.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "rollup-plugin-swc3", - "version": "0.11.1", + "version": "0.11.2", "license": "MIT", "dependencies": { "@fastify/deepmerge": "^1.3.0", @@ -30,9 +30,9 @@ "eslint": "^8.57.0", "eslint-config-sukka": "^4.1.10", "eslint-formatter-sukka": "^4.1.10", + "fdir": "^6.2.0", "mocha": "^10.4.0", "mocha-chai-jest-snapshot": "^1.1.4", - "path-scurry": "^1.10.2", "picocolors": "^1.0.0", "rimraf": "^5.0.5", "rollup": "^4.14.0", @@ -1780,6 +1780,17 @@ } } }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.14.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.0.tgz", @@ -2700,6 +2711,18 @@ "node": ">= 8" } }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -2789,12 +2812,12 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -3791,6 +3814,20 @@ "bser": "2.1.1" } }, + "node_modules/fdir": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.2.0.tgz", + "integrity": "sha512-9XaWcDl0riOX5j2kYfy0kKdg7skw3IY6kA4LFT8Tk2yF9UdrADUy8D6AJuBLtf7ISm/MksumwAHE3WVbMRyCLw==", + "dev": true, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -3804,9 +3841,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" @@ -4523,6 +4560,18 @@ "node": ">=8" } }, + "node_modules/jest-util/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/jest-worker": { "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", @@ -4777,6 +4826,18 @@ "node": ">=8.6" } }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -5163,11 +5224,14 @@ "dev": true }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "optional": true, + "peer": true, "engines": { - "node": ">=8.6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" @@ -5313,6 +5377,18 @@ "node": ">=8.10.0" } }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", diff --git a/package.json b/package.json index c25d6f9..f5e7b4e 100644 --- a/package.json +++ b/package.json @@ -52,9 +52,9 @@ "eslint": "^8.57.0", "eslint-config-sukka": "^4.1.10", "eslint-formatter-sukka": "^4.1.10", + "fdir": "^6.2.0", "mocha": "^10.4.0", "mocha-chai-jest-snapshot": "^1.1.4", - "path-scurry": "^1.10.2", "picocolors": "^1.0.0", "rimraf": "^5.0.5", "rollup": "^4.14.0", diff --git a/test/index.ts b/test/index.ts index 4f53c19..84c7676 100644 --- a/test/index.ts +++ b/test/index.ts @@ -1,7 +1,7 @@ import path from 'path'; import fsp from 'fs/promises'; -import { PathScurry } from 'path-scurry'; +import { fdir as Fdir } from 'fdir'; import { rollup as rollup2 } from 'rollup2'; import { rollup as rollup3 } from 'rollup3'; @@ -108,21 +108,23 @@ const tests = (rollupImpl: typeof rollup2 | typeof rollup3 | typeof rollup4, iso const dirs = new Set(); const files: Array<[from: string, to: string]> = []; - const pw = new PathScurry(fixtureDir); - for await (const entry of pw) { - if (entry.isFile()) { - const from = entry.fullpath(); - const to = path.join(testDir, entry.relative()); - const toDir = path.dirname(to); - - dirs.add(toDir); - files.push([from, to]); - - if (entry.name === 'package.json') { - const pkg = JSON.parse(await fsp.readFile(from, 'utf8')); - if (pkg.devDependencies || pkg.dependencies) { - requireInstall = true; - } + const entries = await new Fdir() + .withRelativePaths() + .crawl(fixtureDir) + .withPromise(); + + for (const entry of entries) { + const from = fixtureDir + path.sep + entry; + const to = path.join(testDir, entry); + const toDir = path.dirname(to); + + dirs.add(toDir); + files.push([from, to]); + + if (entry === 'package.json') { + const pkg = JSON.parse(await fsp.readFile(from, 'utf8')); + if (pkg.devDependencies || pkg.dependencies) { + requireInstall = true; } } }