aboutsummaryrefslogtreecommitdiff
path: root/node_modules/import-local
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/import-local')
-rwxr-xr-xnode_modules/import-local/fixtures/cli.js7
-rw-r--r--node_modules/import-local/index.js17
-rw-r--r--node_modules/import-local/license21
-rw-r--r--node_modules/import-local/package.json46
-rw-r--r--node_modules/import-local/readme.md30
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 [![Build Status](https://travis-ci.org/sindresorhus/import-local.svg?branch=master)](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)