added unit testing, and started implementing unit tests...phew
This commit is contained in:
69
node_modules/findup-sync/README.md
generated
vendored
Normal file
69
node_modules/findup-sync/README.md
generated
vendored
Normal file
@ -0,0 +1,69 @@
|
||||
# findup-sync [](https://travis-ci.org/js-cli/node-findup-sync) [](http://badge.fury.io/js/findup-sync)
|
||||
|
||||
> Find the first file matching a given pattern in the current directory or the nearest ancestor directory.
|
||||
|
||||
Matching is done with [micromatch][], please report any matching related issues on that repository.
|
||||
|
||||
## Install with [npm](npmjs.org)
|
||||
|
||||
```bash
|
||||
npm i findup-sync --save
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```js
|
||||
var findup = require('findup-sync');
|
||||
findup(patternOrPatterns [, micromatchOptions]);
|
||||
|
||||
// Start looking in the CWD.
|
||||
var filepath1 = findup('{a,b}*.txt');
|
||||
|
||||
// Start looking somewhere else, and ignore case (probably a good idea).
|
||||
var filepath2 = findup('{a,b}*.txt', {cwd: '/some/path', nocase: true});
|
||||
```
|
||||
|
||||
* `patterns` **{String|Array}**: Glob pattern(s) or file path(s) to match against.
|
||||
* `options` **{Object}**: Options to pass to [micromatch]. Note that if you want to start in a different directory than the current working directory, specify a `cwd` property here.
|
||||
* `returns` **{String}**: Returns the first matching file.
|
||||
|
||||
## Running tests
|
||||
|
||||
Install dev dependencies:
|
||||
|
||||
```bash
|
||||
npm i -d && npm test
|
||||
```
|
||||
|
||||
## 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](http://gruntjs.com/)
|
||||
|
||||
For bugs and feature requests, [please create an issue](https://github.com/cowboy/node-findup-sync/issues).
|
||||
|
||||
## Release History
|
||||
|
||||
2017-08-07 - v2.0.0 - Drop node 0.8 support, Bump all dependencies (including some Majors)
|
||||
2017-04-18 - v1.0.0 - Major bump from stable 0.4.3
|
||||
2015-01-30 - v0.4.0 - Refactored, not also uses [micromatch][] instead of minimatch.
|
||||
2015-09-14 - v0.3.0 - updated glob to ~5.0.
|
||||
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.
|
||||
|
||||
## Authors
|
||||
|
||||
**"Cowboy" Ben Alman**
|
||||
|
||||
+ [github/cowboy](https://github.com/cowboy)
|
||||
+ [twitter/cowboy](http://twitter.com/cowboy)
|
||||
|
||||
## License
|
||||
|
||||
Copyright (c) 2012-2016 "Cowboy" Ben Alman
|
||||
Released under the MIT license
|
||||
|
||||
[micromatch]: http://github.com/jonschlinkert/micromatch
|
85
node_modules/findup-sync/index.js
generated
vendored
Normal file
85
node_modules/findup-sync/index.js
generated
vendored
Normal file
@ -0,0 +1,85 @@
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Module dependencies
|
||||
*/
|
||||
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
var isGlob = require('is-glob');
|
||||
var resolveDir = require('resolve-dir');
|
||||
var detect = require('detect-file');
|
||||
var mm = require('micromatch');
|
||||
|
||||
/**
|
||||
* @param {String|Array} `pattern` Glob pattern or file path(s) to match against.
|
||||
* @param {Object} `options` Options to pass to [micromatch]. Note that if you want to start in a different directory than the current working directory, specify the `options.cwd` property here.
|
||||
* @return {String} Returns the first matching file.
|
||||
* @api public
|
||||
*/
|
||||
|
||||
module.exports = function(patterns, options) {
|
||||
options = options || {};
|
||||
var cwd = path.resolve(resolveDir(options.cwd || ''));
|
||||
|
||||
if (typeof patterns === 'string') {
|
||||
return lookup(cwd, [patterns], options);
|
||||
}
|
||||
|
||||
if (!Array.isArray(patterns)) {
|
||||
throw new TypeError('findup-sync expects a string or array as the first argument.');
|
||||
}
|
||||
|
||||
return lookup(cwd, patterns, options);
|
||||
};
|
||||
|
||||
function lookup(cwd, patterns, options) {
|
||||
var len = patterns.length;
|
||||
var idx = -1;
|
||||
var res;
|
||||
|
||||
while (++idx < len) {
|
||||
if (isGlob(patterns[idx])) {
|
||||
res = matchFile(cwd, patterns[idx], options);
|
||||
} else {
|
||||
res = findFile(cwd, patterns[idx], options);
|
||||
}
|
||||
if (res) {
|
||||
return res;
|
||||
}
|
||||
}
|
||||
|
||||
var dir = path.dirname(cwd);
|
||||
if (dir === cwd) {
|
||||
return null;
|
||||
}
|
||||
return lookup(dir, patterns, options);
|
||||
}
|
||||
|
||||
function matchFile(cwd, pattern, opts) {
|
||||
var isMatch = mm.matcher(pattern, opts);
|
||||
var files = tryReaddirSync(cwd);
|
||||
var len = files.length;
|
||||
var idx = -1;
|
||||
|
||||
while (++idx < len) {
|
||||
var name = files[idx];
|
||||
var fp = path.join(cwd, name);
|
||||
if (isMatch(name) || isMatch(fp)) {
|
||||
return fp;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function findFile(cwd, filename, options) {
|
||||
var fp = cwd ? path.resolve(cwd, filename) : filename;
|
||||
return detect(fp, options);
|
||||
}
|
||||
|
||||
function tryReaddirSync(fp) {
|
||||
try {
|
||||
return fs.readdirSync(fp);
|
||||
} catch(err) {}
|
||||
return [];
|
||||
}
|
79
node_modules/findup-sync/package.json
generated
vendored
Normal file
79
node_modules/findup-sync/package.json
generated
vendored
Normal file
@ -0,0 +1,79 @@
|
||||
{
|
||||
"_from": "findup-sync@2.0.0",
|
||||
"_id": "findup-sync@2.0.0",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=",
|
||||
"_location": "/findup-sync",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"registry": true,
|
||||
"raw": "findup-sync@2.0.0",
|
||||
"name": "findup-sync",
|
||||
"escapedName": "findup-sync",
|
||||
"rawSpec": "2.0.0",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "2.0.0"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/mocha"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz",
|
||||
"_shasum": "9326b1488c22d1a6088650a86901b2d9a90a2cbc",
|
||||
"_spec": "findup-sync@2.0.0",
|
||||
"_where": "/Users/josh.burman/Projects/braid/node_modules/mocha",
|
||||
"author": {
|
||||
"name": "\"Cowboy\" Ben Alman",
|
||||
"url": "http://benalman.com"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/js-cli/node-findup-sync/issues"
|
||||
},
|
||||
"bundleDependencies": false,
|
||||
"dependencies": {
|
||||
"detect-file": "^1.0.0",
|
||||
"is-glob": "^3.1.0",
|
||||
"micromatch": "^3.0.4",
|
||||
"resolve-dir": "^1.0.1"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "Find the first file matching a given pattern in the current directory or the nearest ancestor directory.",
|
||||
"devDependencies": {
|
||||
"homedir-polyfill": "^1.0.1",
|
||||
"is-absolute": "^1.0.0",
|
||||
"jshint": "^2.9.5",
|
||||
"mocha": "^3.5.0",
|
||||
"normalize-path": "^2.1.1",
|
||||
"resolve": "^1.4.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.10"
|
||||
},
|
||||
"files": [
|
||||
"index.js"
|
||||
],
|
||||
"homepage": "https://github.com/js-cli/node-findup-sync#readme",
|
||||
"keywords": [
|
||||
"file",
|
||||
"find",
|
||||
"find-up",
|
||||
"findup",
|
||||
"glob",
|
||||
"match",
|
||||
"pattern",
|
||||
"resolve",
|
||||
"search"
|
||||
],
|
||||
"license": "MIT",
|
||||
"main": "index.js",
|
||||
"name": "findup-sync",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/js-cli/node-findup-sync.git"
|
||||
},
|
||||
"scripts": {
|
||||
"lint": "jshint index.js test/support/index.js test/test.js",
|
||||
"test": "npm run lint && mocha"
|
||||
},
|
||||
"version": "2.0.0"
|
||||
}
|
Reference in New Issue
Block a user