flipfind
v0.1.4
Published
auto-find & resolve a file or path that is somewhere nearby in an optimized manner
Downloads
33
Maintainers
Readme
🔎 🎯 flipfind
find and resolve files automatically searches nearby paths in an optimized order
usage
yarn add flipfind
npm i flipfind --save
// can be used as a class for chaining and debugging
const {Finder} = require('flipfind')
// or as a function for easier fun
const finder = require('flipfind')
🔊 debug
const found = Finder.file('./src/eh').debug().all().asObj().find()
👣 steps
to optimize, it will go through the steps in order and return
once it finds the correct existing path. If .debug is used with .all
, it will go through every step and output the results so you can see the process.
- if a file and dir are given, it will attempt to resolve using file + dir
- if the given file is absolute, and if it exists
- checks with the cwd
- checks with require.main extracts the dirname from it
- checks the app-root-path
- checks a glob for very near files
- filters to ensure it does-include the file and/or dir passed in through options
- checks with the mono-root
📘 examples
// will return null
const found = Finder.file('not-real').find()
// without ext
Finder.file('eh').find()
// with ext
Finder.file('eh.js').find()
// can use relative,
Finder.file('./src/eh').find()
// or shorthand
Finder.file('src/eh').find()
// with dir
Finder.file('eh').dir('test/fixtures').find()
// return an object
const {
abs,
file,
name,
ext,
dir,
} = Finder.file('src/eh').asObj().find()
// as function
find('src/eh')
📝 todo
- add fallback for resolving a file that does not yet exist - currently is
null
, will require an option - cache the results