Giter VIP home page Giter VIP logo

scan-dir-each's Introduction

scanDirEach(path, [worker = () => true, raw = false])

并行扫描文件夹,可在扫描的同时更新或过滤数据,一定程度复用遍历。

使用

  • path 待扫描的路径,必需提供,{String}
  • worker 处理器,如果扫描的同时需要更新、过滤操作可提供,一定程度复用穷举,可选,{ Function }
    • 返回 { Object | Boolean | Promise }
      • false 过滤掉当前扫描结果
      • true 保留当前扫描结果
      • 对象字面量,保留 / 更新当前扫描结果
      • 如果需要在处理器中需要安放些异步操作,如远程数据请求,可在处理器中返回一个 Promise,该 Promise 可返回,
        • false 过滤掉当前扫描结果
        • true 保留当前扫描结果
        • 对象字面量,保留 / 更新当前扫描结果
        • 其它类型则默认为没有任何处理
      • 其它类型则默认为没有任何处理
  • raw 是否专门返回未加工的扫描结果,使用 worker 后才会生效,默认 false可选,{ Boolean }
  • 返回,扫描结果 { Array }
    • 如果设置了 rawtrue,则返回 二维数组,第一项为加工后的扫描结果,第二项为未加工的扫描结果
    • 默认返回 一维数组,即:加工后的扫描结果
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]
   *   },
   *   ...
   * ]
   */
})();

安装

Node Version Badge

# 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()

参与贡献

PRs Welcome

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.