diff options
Diffstat (limited to 'node_modules/import-local')
-rwxr-xr-x | node_modules/import-local/fixtures/cli.js | 7 | ||||
-rw-r--r-- | node_modules/import-local/index.js | 17 | ||||
-rw-r--r-- | node_modules/import-local/license | 21 | ||||
-rw-r--r-- | node_modules/import-local/package.json | 46 | ||||
-rw-r--r-- | node_modules/import-local/readme.md | 30 |
5 files changed, 121 insertions, 0 deletions
diff --git a/node_modules/import-local/fixtures/cli.js b/node_modules/import-local/fixtures/cli.js new file mode 100755 index 000000000..46b939f13 --- /dev/null +++ b/node_modules/import-local/fixtures/cli.js @@ -0,0 +1,7 @@ +#!/usr/bin/env node +'use strict'; +const importLocal = require('..'); + +if (importLocal(__filename)) { + console.log('local'); +} diff --git a/node_modules/import-local/index.js b/node_modules/import-local/index.js new file mode 100644 index 000000000..8b8be6e33 --- /dev/null +++ b/node_modules/import-local/index.js @@ -0,0 +1,17 @@ +'use strict'; +const path = require('path'); +const resolveCwd = require('resolve-cwd'); +const pkgDir = require('pkg-dir'); + +module.exports = filename => { + const globalDir = pkgDir.sync(path.dirname(filename)); + const relativePath = path.relative(globalDir, filename); + const pkg = require(path.join(globalDir, 'package.json')); + const localFile = resolveCwd.silent(path.join(pkg.name, relativePath)); + + // Use `path.relative()` to detect local package installation, + // because __filename's case is inconsistent on Windows + // Can use `===` when targeting Node.js 8 + // See https://github.com/nodejs/node/issues/6624 + return localFile && path.relative(localFile, filename) !== '' ? require(localFile) : null; +}; diff --git a/node_modules/import-local/license b/node_modules/import-local/license new file mode 100644 index 000000000..654d0bfe9 --- /dev/null +++ b/node_modules/import-local/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com) + +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. diff --git a/node_modules/import-local/package.json b/node_modules/import-local/package.json new file mode 100644 index 000000000..fd5fae497 --- /dev/null +++ b/node_modules/import-local/package.json @@ -0,0 +1,46 @@ +{ + "name": "import-local", + "version": "0.1.1", + "description": "Let a globally installed package use a locally installed version of itself if available", + "license": "MIT", + "repository": "sindresorhus/import-local", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=4" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js", + "fixtures/cli.js" + ], + "keywords": [ + "import", + "local", + "require", + "resolve", + "global", + "version", + "prefer", + "cli" + ], + "dependencies": { + "pkg-dir": "^2.0.0", + "resolve-cwd": "^2.0.0" + }, + "devDependencies": { + "ava": "*", + "cpy": "^5.0.0", + "del": "^2.2.2", + "execa": "^0.6.3", + "xo": "*" + } +} diff --git a/node_modules/import-local/readme.md b/node_modules/import-local/readme.md new file mode 100644 index 000000000..5230e4e8a --- /dev/null +++ b/node_modules/import-local/readme.md @@ -0,0 +1,30 @@ +# import-local [](https://travis-ci.org/sindresorhus/import-local) + +> Let a globally installed package use a locally installed version of itself if available + +Useful for CLI tools that want to defer to the user's locally installed version when available, but still work if it's not installed locally. For example, [AVA](http://ava.li) and [XO](https://github.com/sindresorhus/xo) uses this method. + + +## Install + +``` +$ npm install --save import-local +``` + + +## Usage + +```js +const importLocal = require('import-local'); + +if (importLocal(__filename)) { + console.log('Using local version of this package'); +} else { + // Code for both global and local version here… +} +``` + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) |