added unit testing, and started implementing unit tests...phew
This commit is contained in:
21
node_modules/detect-file/LICENSE
generated
vendored
Normal file
21
node_modules/detect-file/LICENSE
generated
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2016-2017, Brian Woodward.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
99
node_modules/detect-file/README.md
generated
vendored
Normal file
99
node_modules/detect-file/README.md
generated
vendored
Normal file
@ -0,0 +1,99 @@
|
||||
# detect-file [](https://www.npmjs.com/package/detect-file) [](https://npmjs.org/package/detect-file) [](https://npmjs.org/package/detect-file) [](https://travis-ci.org/doowb/detect-file) [](https://ci.appveyor.com/project/doowb/detect-file)
|
||||
|
||||
> Detects if a file exists and returns the resolved filepath.
|
||||
|
||||
## Install
|
||||
|
||||
Install with [npm](https://www.npmjs.com/):
|
||||
|
||||
```sh
|
||||
$ npm install --save detect-file
|
||||
```
|
||||
|
||||
Install with [yarn](https://yarnpkg.com):
|
||||
|
||||
```sh
|
||||
$ yarn add detect-file
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```js
|
||||
var detect = require('detect-file');
|
||||
```
|
||||
|
||||
## API
|
||||
|
||||
### [detect](index.js#L33)
|
||||
|
||||
Detect the given `filepath` if it exists.
|
||||
|
||||
**Params**
|
||||
|
||||
* `filepath` **{String}**: filepath to detect.
|
||||
* `options` **{Object}**: Additional options.
|
||||
* `options.nocase` **{Boolean}**: Set this to `true` to force case-insensitive filename checks. This is useful on case sensitive file systems.
|
||||
* `returns` **{String}**: Returns the detected filepath if it exists, otherwise returns `null`.
|
||||
|
||||
**Example**
|
||||
|
||||
```js
|
||||
var res = detect('package.json');
|
||||
console.log(res);
|
||||
//=> "package.json"
|
||||
|
||||
var res = detect('fake-file.json');
|
||||
console.log(res)
|
||||
//=> null
|
||||
```
|
||||
|
||||
## Case sensitive file systems
|
||||
|
||||
When using the `nocase` option, this library will attempt to detect the filepath with the following methods:
|
||||
|
||||
1. Try to read all files in the `filepath` using `fs.readdirSync`. If successful and `filepath` is a directory, return the `filepath`.
|
||||
2. Try to read all files in the `filepath`'s directory using `fs.readdirSync`. If successful, do case insensitive comparasions of the `filepath` to the files in `filepath`'s directory.
|
||||
|
||||
## About
|
||||
|
||||
### Related projects
|
||||
|
||||
[fs-exists-sync](https://www.npmjs.com/package/fs-exists-sync): Drop-in replacement for `fs.existsSync` with zero dependencies. Other libs I found either have crucial differences… [more](https://github.com/jonschlinkert/fs-exists-sync) | [homepage](https://github.com/jonschlinkert/fs-exists-sync "Drop-in replacement for `fs.existsSync` with zero dependencies. Other libs I found either have crucial differences from fs.existsSync, or unnecessary dependencies. See README.md for more info.")
|
||||
|
||||
### Contributing
|
||||
|
||||
Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
|
||||
|
||||
### Building docs
|
||||
|
||||
_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
|
||||
|
||||
To generate the readme, run the following command:
|
||||
|
||||
```sh
|
||||
$ npm install -g verbose/verb#dev verb-generate-readme && verb
|
||||
```
|
||||
|
||||
### Running tests
|
||||
|
||||
Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
|
||||
|
||||
```sh
|
||||
$ npm install && npm test
|
||||
```
|
||||
|
||||
### Author
|
||||
|
||||
**Brian Woodward**
|
||||
|
||||
* [github/doowb](https://github.com/doowb)
|
||||
* [twitter/doowb](https://twitter.com/doowb)
|
||||
|
||||
### License
|
||||
|
||||
Copyright © 2017, [Brian Woodward](https://github.com/doowb).
|
||||
Released under the [MIT License](LICENSE).
|
||||
|
||||
***
|
||||
|
||||
_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on August 05, 2017._
|
109
node_modules/detect-file/index.js
generated
vendored
Normal file
109
node_modules/detect-file/index.js
generated
vendored
Normal file
@ -0,0 +1,109 @@
|
||||
/*!
|
||||
* detect-file <https://github.com/doowb/detect-file>
|
||||
*
|
||||
* Copyright (c) 2016-2017, Brian Woodward.
|
||||
* Released under the MIT License.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
|
||||
/**
|
||||
* Detect the given `filepath` if it exists.
|
||||
*
|
||||
* ```js
|
||||
* var res = detect('package.json');
|
||||
* console.log(res);
|
||||
* //=> "package.json"
|
||||
*
|
||||
* var res = detect('fake-file.json');
|
||||
* console.log(res)
|
||||
* //=> null
|
||||
* ```
|
||||
*
|
||||
* @param {String} `filepath` filepath to detect.
|
||||
* @param {Object} `options` Additional options.
|
||||
* @param {Boolean} `options.nocase` Set this to `true` to force case-insensitive filename checks. This is useful on case sensitive file systems.
|
||||
* @return {String} Returns the detected filepath if it exists, otherwise returns `null`.
|
||||
* @api public
|
||||
*/
|
||||
|
||||
module.exports = function detect(filepath, options) {
|
||||
if (!filepath || (typeof filepath !== 'string')) {
|
||||
return null;
|
||||
}
|
||||
if (fs.existsSync(filepath)) {
|
||||
return path.resolve(filepath);
|
||||
}
|
||||
|
||||
options = options || {};
|
||||
if (options.nocase === true) {
|
||||
return nocase(filepath);
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
/**
|
||||
* Check if the filepath exists by falling back to reading in the entire directory.
|
||||
* Returns the real filepath (for case sensitive file systems) if found.
|
||||
*
|
||||
* @param {String} `filepath` filepath to check.
|
||||
* @return {String} Returns found filepath if exists, otherwise null.
|
||||
*/
|
||||
|
||||
function nocase(filepath) {
|
||||
filepath = path.resolve(filepath);
|
||||
var res = tryReaddir(filepath);
|
||||
if (res === null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// "filepath" is a directory, an error would be
|
||||
// thrown if it doesn't exist. if we're here, it exists
|
||||
if (res.path === filepath) {
|
||||
return res.path;
|
||||
}
|
||||
|
||||
// "filepath" is not a directory
|
||||
// compare against upper case later
|
||||
// see https://nodejs.org/en/docs/guides/working-with-different-filesystems/
|
||||
var upper = filepath.toUpperCase();
|
||||
var len = res.files.length;
|
||||
var idx = -1;
|
||||
|
||||
while (++idx < len) {
|
||||
var fp = path.resolve(res.path, res.files[idx]);
|
||||
if (filepath === fp || upper === fp) {
|
||||
return fp;
|
||||
}
|
||||
var fpUpper = fp.toUpperCase();
|
||||
if (filepath === fpUpper || upper === fpUpper) {
|
||||
return fp;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Try to read the filepath as a directory first, then fallback to the filepath's dirname.
|
||||
*
|
||||
* @param {String} `filepath` path of the directory to read.
|
||||
* @return {Object} Object containing `path` and `files` if succesful. Otherwise, null.
|
||||
*/
|
||||
|
||||
function tryReaddir(filepath) {
|
||||
var ctx = { path: filepath, files: [] };
|
||||
try {
|
||||
ctx.files = fs.readdirSync(filepath);
|
||||
return ctx;
|
||||
} catch (err) {}
|
||||
try {
|
||||
ctx.path = path.dirname(filepath);
|
||||
ctx.files = fs.readdirSync(ctx.path);
|
||||
return ctx;
|
||||
} catch (err) {}
|
||||
return null;
|
||||
}
|
91
node_modules/detect-file/package.json
generated
vendored
Normal file
91
node_modules/detect-file/package.json
generated
vendored
Normal file
@ -0,0 +1,91 @@
|
||||
{
|
||||
"_from": "detect-file@^1.0.0",
|
||||
"_id": "detect-file@1.0.0",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=",
|
||||
"_location": "/detect-file",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "detect-file@^1.0.0",
|
||||
"name": "detect-file",
|
||||
"escapedName": "detect-file",
|
||||
"rawSpec": "^1.0.0",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "^1.0.0"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/findup-sync"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
|
||||
"_shasum": "f0d66d03672a825cb1b73bdb3fe62310c8e552b7",
|
||||
"_spec": "detect-file@^1.0.0",
|
||||
"_where": "/Users/josh.burman/Projects/braid/node_modules/findup-sync",
|
||||
"author": {
|
||||
"name": "Brian Woodward",
|
||||
"url": "https://github.com/doowb"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/doowb/detect-file/issues"
|
||||
},
|
||||
"bundleDependencies": false,
|
||||
"dependencies": {},
|
||||
"deprecated": false,
|
||||
"description": "Detects if a file exists and returns the resolved filepath.",
|
||||
"devDependencies": {
|
||||
"gulp-format-md": "*",
|
||||
"mocha": "*"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
},
|
||||
"files": [
|
||||
"index.js"
|
||||
],
|
||||
"homepage": "https://github.com/doowb/detect-file",
|
||||
"keywords": [
|
||||
"detect",
|
||||
"exists",
|
||||
"file",
|
||||
"file exists",
|
||||
"file-path",
|
||||
"filepath",
|
||||
"path",
|
||||
"resolve",
|
||||
"resolve file",
|
||||
"resolve filepath"
|
||||
],
|
||||
"license": "MIT",
|
||||
"main": "index.js",
|
||||
"name": "detect-file",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/doowb/detect-file.git"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "mocha"
|
||||
},
|
||||
"verb": {
|
||||
"layout": "default",
|
||||
"tasks": [
|
||||
"readme"
|
||||
],
|
||||
"plugins": [
|
||||
"gulp-format-md"
|
||||
],
|
||||
"related": {
|
||||
"list": [
|
||||
"fs-exists-sync"
|
||||
]
|
||||
},
|
||||
"reflinks": [
|
||||
"verb",
|
||||
"verb-readme-generator"
|
||||
],
|
||||
"lint": {
|
||||
"reflinks": true
|
||||
}
|
||||
},
|
||||
"version": "1.0.0"
|
||||
}
|
Reference in New Issue
Block a user