diff options
author | Joel Kronqvist <work.joelkronqvist@pm.me> | 2022-03-11 20:46:06 +0200 |
---|---|---|
committer | Joel Kronqvist <work.joelkronqvist@pm.me> | 2022-03-11 20:46:06 +0200 |
commit | 080c5819d87b933816d724a83f3bf4f1686770a7 (patch) | |
tree | 4a2ccc68b27edf7d4cbc586c932cc7542b655e19 /node_modules/import-local/index.js | |
parent | 5ac7049a9d30733165cc212dee308163c2a14644 (diff) | |
parent | d003b82235a9329f912522a2f70aa950dfce4998 (diff) | |
download | LYLLRuoka-080c5819d87b933816d724a83f3bf4f1686770a7.tar.gz LYLLRuoka-080c5819d87b933816d724a83f3bf4f1686770a7.zip |
Merge branch 'master' of https://github.com/JoelHMikael/FoodJS
Updating remote changes
Diffstat (limited to 'node_modules/import-local/index.js')
-rw-r--r-- | node_modules/import-local/index.js | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/node_modules/import-local/index.js b/node_modules/import-local/index.js new file mode 100644 index 0000000..28c9c60 --- /dev/null +++ b/node_modules/import-local/index.js @@ -0,0 +1,24 @@ +'use strict'; +const path = require('path'); +const {fileURLToPath} = require('url'); +const resolveCwd = require('resolve-cwd'); +const pkgDir = require('pkg-dir'); + +module.exports = filename => { + const normalizedFilename = filename.startsWith('file://') ? fileURLToPath(filename) : filename; + const globalDir = pkgDir.sync(path.dirname(normalizedFilename)); + const relativePath = path.relative(globalDir, normalizedFilename); + const pkg = require(path.join(globalDir, 'package.json')); + const localFile = resolveCwd.silent(path.join(pkg.name, relativePath)); + const localNodeModules = path.join(process.cwd(), 'node_modules'); + + const filenameInLocalNodeModules = !path.relative(localNodeModules, normalizedFilename).startsWith('..') && + // On Windows, if `localNodeModules` and `normalizedFilename` are on different partitions, `path.relative()` returns the value of `normalizedFilename`, resulting in `filenameInLocalNodeModules` incorrectly becoming `true`. + path.parse(localNodeModules).root === path.parse(normalizedFilename).root; + + // 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 !filenameInLocalNodeModules && localFile && path.relative(localFile, normalizedFilename) !== '' && require(localFile); +}; |