Socket
Socket
Sign inDemoInstall

find-and-read

Package Overview
Dependencies
0
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    find-and-read

Finding and Reading Files Made a Little Easier


Version published
Weekly downloads
107
increased by55.07%
Maintainers
1
Install size
15.6 kB
Created
Weekly downloads
 

Readme

Source

find-and-read

Finding and Reading Files Made a Little Easier

what?

This library exposes a single function findAndRead, which takes in a filename. It iteratively searches up, down and across your folder hierarchy for the file. When it finds the file, it runs NodeJS' built-in readFileSync on it.

why?

I work on a lot of projects that separate the data used for tests from the actual test scripts. It's often a pain to determine the correct path to pass into readFileSync. My code would often look like readFileSync("../../../test-data/images/example.png"). It would be a lot easier if I could just run findAndRead("example.png"), so I created a library that does that.

features

  • Dependency Free (only uses NodeJS builtins)
  • Automatically Finds Closest Matching File (least amount of change directory steps)
  • Small Code Base
  • Memory Efficient
  • TypeScript Support

install

npm install find-and-read

basic usage

Automatically find the closest file with the given name and run readFileSync on it

const findAndRead = require("find-and-read");

const buffer = findAndRead("example.png");

advanced usage

You can pass in the same options as you would to readFileSync, "encoding" and "flag";

const findAndRead = require("find-and-read");

const json = findAndRead("example.json", { encoding: 'utf-8' });
adjusting start

When a file calls findAndRead, it will start looking in the folder of the caller file. When you run findAndRead in a REPL, it will start looking in the folder where you started the REPL. If you would like to start at a different place, pass in a start parameter like below:

const findAndRead = require("find-and-read");

// look for an image starting in the /tmp folder
const buffer = findAndRead("image.jpg", { start: '/tmp' });
custom stop function

By default, findAndRead doesn't navigate into node_modules and hidden folders (like .git). When run inside a git repository, it also doesn't navigate up outside the git repo. You can turn this off by passing stop: null or create own custom function for determining when to stop on a path.

const findAndRead = require("find-and-read");

const buffer = findAndRead("test-image.jpg", {
  stop: ({
    dirpath, // the path to the directory that we are navigating to
    from, // the path to the directory that we are navigating from
    direction // "up" or "down"
  }) => {
    // don't search inside of the env folder
    return dirpath.includes('env');
  }
});
warnings

By default, findAndRead will issue a console.warn if it's unable to find a file. You can turn off this behavior by passing in warn: false.

const findAndRead = require("find-and-read");

findAndRead("unfindable.txt");
// logs `[find-and-read] unable to find "unfindable.txt"`

findAndRead("unfindable.txt", { warn: false });
// nothing is logged

Keywords

FAQs

Last updated on 28 May 2022

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc