From f4c1c7be608dc75e48c5d74e069e69d48ff59bf2 Mon Sep 17 00:00:00 2001 From: jaywcjlove <398188662@qq.com> Date: Sun, 17 Oct 2021 23:43:45 +0800 Subject: [PATCH] feat: Add file stats. --- src/index.test.ts | 4 ++-- src/index.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/index.test.ts b/src/index.test.ts index 7caa63e..4d2d898 100644 --- a/src/index.test.ts +++ b/src/index.test.ts @@ -8,7 +8,7 @@ it('ignored test case', async () => { ignored: /\/(node_modules|coverage|\.git)/ }); expect(files.length).toBe(10); - expect(Object.keys(files[0])).toEqual(['name', 'path', 'size', 'ext']); + expect(Object.keys(files[0])).toEqual(['dev', 'mode', 'nlink', 'uid', 'gid', 'rdev', 'blksize', 'ino', 'size', 'blocks', 'atimeMs', 'mtimeMs', 'ctimeMs', 'birthtimeMs', 'atime', 'mtime', 'ctime', 'birthtime', 'name', 'path', 'ext',]); }); it('ignored/exclude/include test case', async () => { @@ -22,7 +22,7 @@ it('ignored/exclude/include test case', async () => { expect(arrs[0]).toEqual('package.json'); const arrs2 = files.filter(item => /renovate\.json$/.test(item.path)).map(item => item.name); expect(arrs2.length).toEqual(0); - expect(Object.keys(files[0])).toEqual(['name', 'path', 'size', 'ext']); + expect(Object.keys(files[0])).toEqual(['dev', 'mode', 'nlink', 'uid', 'gid', 'rdev', 'blksize', 'ino', 'size', 'blocks', 'atimeMs', 'mtimeMs', 'ctimeMs', 'birthtimeMs', 'atime', 'mtime', 'ctime', 'birthtime', 'name', 'path', 'ext',]); }); it('Recursive Readdir Files, options', async () => { diff --git a/src/index.ts b/src/index.ts index 3b6e3cf..011f746 100644 --- a/src/index.ts +++ b/src/index.ts @@ -21,7 +21,7 @@ export interface RecursiveReaddirFilesOptions { filter?: (item: IFileDirStat) => boolean; } - export interface IFileDirStat { + export interface IFileDirStat extends Partial { /** * @example `/a/sum.jpg` => `sum.jpg` */ @@ -34,7 +34,6 @@ export interface RecursiveReaddirFilesOptions { * @example `/a/b.jpg` => `jpg` */ ext?: string; - size?: number; } export default function recursiveReaddirFiles(rootPath: string, options: RecursiveReaddirFilesOptions = {}): Promise { @@ -72,6 +71,7 @@ async function getFiles(rootPath: string, options: RecursiveReaddirFilesOptions files = files.concat(arr); } else if (stat.isFile()) { item.ext = await getExt(item.path); + item = { ...stat, ...item } files.push(item); } }),