npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@at_2nd/directory-scanner

v0.0.9

Published

Do function recursive with directory.

Downloads

30

Readme

概要

ディレクトリを探索しながら再帰的に関数を実行する。

インストール

npm install @at_2nd/directory-scanner

用例

./test直下の.txtファイルの内容を一括取得 ただし、ファイル名の先頭がhoge_のファイルは無視する

const scan = require("@at_2nd/directory-scanner");
const fs = require("fs/promises");

(async ()=>
{
	const dir = "./test";//スキャン対象
	const option = //scan option
	{
		subdir:false,//サブディレクトリを探索しない
		file:{txt:info=>fs.readFile(info.path,{encoding:"utf-8"})},//.txtを読み込んで返す
		filter:info=>!/^hoge_/.test(info.name)//ファイル名の先頭がhoge_のファイルを無視する
	};
	const result = await scan(dir,option);
	console.log(result);
})();

引数

dir:string

探索対象のパス

option:object

探索設定

*option.subdir:boolean サブディレクトリを探索するかの設定。デフォルトはtrue。

*option.dir:async function(result) ディレクトリ探索結果を加工するコールバック。 探索結果を受け取り、加工後の結果を返す。 デフォルトは無加工で返す。(result=>result)と等価。

*option.file:boolean|async function(info)|object ファイルを発見した時の挙動設定。デフォルトはtrue。コールバックにはinfoオブジェクトが渡される。

{
	"filename":filename,//ファイル名
	"name":name,//拡張子を除いたファイル名
	"ext":extention,//拡張子
	"path":fullPath//フルパス
};
*`false`:ファイルを無視する
*`true`:infoをそのまま返す。(info=>info)と等価。
*`function`:infoを受け取り、結果を返すコールバック。
*`object`:拡張子別の個別設定。拡張子をkeyとして、booleanもしくはfunctionの値を持つ。挙動は上記と同じ。

*option.filter:boolean|async function(info)|object ファイルを発見した時に有効なファイルとして扱うかどうかの設定。

*`false`:無効なファイルとする
*`true`:有効なファイルとする
*`function`:infoを受け取り、結果を返すコールバック。trueを返すと有効、falseを返すと無効。
*`object`:拡張子別の個別設定。拡張子をkeyとして、booleanもしくはfunctionの値を持つ。挙動は上記と同じ。