1.0.2 • Published 3 years ago
@iyowei/scan-dir-each v1.0.2
scanDirEach(path, worker = () => true, raw = false)
并行扫描文件夹,可在扫描的同时更新或过滤数据,一定程度复用遍历。
使用
path
待扫描的路径,必需提供,{String}worker
处理器,如果扫描的同时需要更新、过滤操作可提供,一定程度复用穷举,可选,{ Function }- 返回 { Object | Boolean | Promise }
false
过滤掉当前扫描结果true
保留当前扫描结果- 对象字面量,保留 / 更新当前扫描结果
- 如果需要在处理器中需要安放些异步操作,如远程数据请求,可在处理器中返回一个 Promise,该 Promise 可返回,
false
过滤掉当前扫描结果true
保留当前扫描结果- 对象字面量,保留 / 更新当前扫描结果
- 其它类型则默认为没有任何处理
- 其它类型则默认为没有任何处理
- 返回 { Object | Boolean | Promise }
raw
是否专门返回未加工的扫描结果,使用worker
后才会生效,默认false
,可选,{ Boolean }- 返回,扫描结果 { Array }
- 如果设置了
raw
为true
,则返回 二维数组,第一项为加工后的扫描结果,第二项为未加工的扫描结果 - 默认返回 一维数组,即:加工后的扫描结果
- 如果设置了
import { log } from "console";
import scanDirEach from "@iyowei/scan-dir-each";
(async () => {
const got = await scanDirEach(
process.cwd(),
(cur, index) =>
new Promise((resolve) => {
// 可以做些异步操作,如远程数据请求
resolve(index % 2 === 0 ? cur : false);
}),
false
);
log(got);
/**
* [
* {
* path: '',
* dirent: [Dirent]
* },
* ...
* ]
*/
})();
安装
# Pnpm
pnpm add @iyowei/scan-dir-each
# yarn
yarn add @iyowei/scan-dir-each
# npm
npm add @iyowei/scan-dir-each
相关
lsDirSync()
,串行扫描文件夹;lsDir()
,并行扫描文件夹;scanDirEachSync()
,可在扫描的同时更新或过滤数据,串行 实现;scanDirSync()
,worker
选填,有worker
,行为同scanDirEachSync()
一致,否则与lsDirSync()
一致,如果项目中同时使用了scanDirEachSync()
、lsDirSync()
,则推荐使用scanDirSync()
;scanDir()
,worker
选填,有worker
,行为同scanDirEach()
一致,否则与lsDir()
一致,如果项目中同时使用了scanDirEach()
、lsDir()
,则推荐使用scanDir()
;