What is findup-sync?
The findup-sync npm package is used to search for files or directories by name in the file system, starting from a given directory and moving up the directory tree until a match is found or the root is reached. It is particularly useful for finding configuration files or other resources that may be located at various levels of a directory structure.
What are findup-sync's main functionalities?
Find a file or directory by name
This feature allows you to find a file or directory by its name. The function will start searching from the current directory and move up the directory tree until it finds a match or reaches the root.
const findupSync = require('findup-sync');
const path = findupSync('filename.ext');
Use a glob pattern to find files or directories
This feature enables the use of glob patterns to find files or directories. It will return the first match found when searching up the directory tree.
const findupSync = require('findup-sync');
const path = findupSync('*.ext');
Specify a custom starting directory
With this feature, you can specify a custom starting directory from which the search will begin, rather than using the current working directory.
const findupSync = require('findup-sync');
const path = findupSync('filename.ext', { cwd: '/starting/directory' });
Other packages similar to findup-sync
glob
The 'glob' package allows for pattern matching based on the rules used by the shell (e.g., bash). It's similar to findup-sync in that it can search for files, but it does not have the built-in functionality to search up the directory tree.
globby
Globby is a wrapper around 'glob' that supports multiple patterns and provides a Promise API. It's similar to findup-sync in terms of searching for files using patterns, but like 'glob', it does not natively support searching up the directory tree.
locate-path
Locate-path is designed to find a file or directory by walking up parent directories. It's similar to findup-sync but offers a Promise-based API and is more minimalistic.
findup-sync
Find the first file matching a given pattern in the current directory or the nearest ancestor directory.
Getting Started
Install the module with: npm install findup-sync
var findup = require('findup-sync');
var filepath1 = findup('{a,b}*.txt');
var filepath2 = findup('{a,b}*.txt', {cwd: '/some/path', nocase: true});
Usage
findup(patternOrPatterns [, minimatchOptions])
patternOrPatterns
Type: String
or Array
Default: none
One or more wildcard glob patterns. Or just filenames.
minimatchOptions
Type: Object
Default: {}
Options to be passed to minimatch.
Note that if you want to start in a different directory than the current working directory, specify a cwd
property here.
Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.
Release History
2014-12-17 - v0.2.1 - updated to glob 4.3.
2014-12-16 - v0.2.0 - Removed lodash, updated to glob 4.x.
2014-03-14 - v0.1.3 - Updated dependencies.
2013-03-08 - v0.1.2 - Updated dependencies. Fixed a Node 0.9.x bug. Updated unit tests to work cross-platform.
2012-11-15 - v0.1.1 - Now works without an options object.
2012-11-01 - v0.1.0 - Initial release.