From b9ca36b18a15840572a9d8525e8c21172ec4304e Mon Sep 17 00:00:00 2001 From: Marc Huffnagle <6790070+marchuffnagle@users.noreply.github.com> Date: Tue, 29 Aug 2023 23:21:17 -0400 Subject: [PATCH] Add path to onProgress event --- index.d.ts | 7 ++++++- index.js | 1 + readme.md | 4 +++- test.js | 16 +++++++++------- 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/index.d.ts b/index.d.ts index 3fcb0f1..f15a46f 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1,4 +1,4 @@ -import {Options as GlobbyOptions} from 'globby'; +import { Options as GlobbyOptions } from 'globby'; export interface ProgressData { /** @@ -15,6 +15,11 @@ export interface ProgressData { Completed percentage. A value between `0` and `1`. */ readonly percent: number; + + /** + Path of deleted file + */ + readonly path?: string; } export interface Options extends GlobbyOptions { diff --git a/index.js b/index.js index 5e2a43a..aa2cd13 100644 --- a/index.js +++ b/index.js @@ -93,6 +93,7 @@ export async function deleteAsync(patterns, {force, dryRun, cwd = process.cwd(), totalCount: files.length, deletedCount, percent: deletedCount / files.length, + path: file }); return file; diff --git a/readme.md b/readme.md index d2e8082..f5963bd 100644 --- a/readme.md +++ b/readme.md @@ -153,11 +153,13 @@ await deleteAsync(patterns, { { totalCount: number, deletedCount: number, - percent: number + percent: number, + path?: string } ``` - `percent` is a value between `0` and `1` +- `path` will not be present if no files were deleted ## CLI diff --git a/test.js b/test.js index 5b972ad..95f5a84 100644 --- a/test.js +++ b/test.js @@ -378,11 +378,12 @@ test('onProgress option - progress of single file', async t => { totalCount: 1, deletedCount: 1, percent: 1, + path: t.context.tmp }); }); test('onProgress option - progress of multiple files', async t => { - let report; + let reports = []; const sourcePath = process.platform === 'win32' ? path.resolve(`${t.context.tmp}/*`).replace(/\\/g, '/') : `${t.context.tmp}/*`; @@ -390,13 +391,14 @@ test('onProgress option - progress of multiple files', async t => { cwd: __dirname, force: true, onProgress(event) { - report = event; + reports.push(event); }, }); - t.deepEqual(report, { - totalCount: 4, - deletedCount: 4, - percent: 1, - }); + t.is(reports.length, 4); + t.deepEqual(reports.map(r => r.totalCount), [4, 4, 4, 4]); + t.deepEqual(reports.map(r => r.deletedCount).sort(), [1, 2, 3, 4]); + + const expectedPaths = ['1', '2', '3', '4'].map(x => path.join(t.context.tmp, `${x}.tmp`)); + t.deepEqual(reports.map(r => r.path).sort(), expectedPaths.sort()); });