node/deps/npm/node_modules/libnpmexec/lib/file-exists.js
npm team 2d84620f86
deps: upgrade npm to 8.6.0
PR-URL: https://github.com/nodejs/node/pull/42550
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Mestery <mestery@protonmail.com>
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
Reviewed-By: Tierney Cyren <hello@bnb.im>
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
2022-04-09 12:56:30 +02:00

32 lines
676 B
JavaScript

const { resolve } = require('path')
const { promisify } = require('util')
const stat = promisify(require('fs').stat)
const walkUp = require('walk-up-path')
const fileExists = (file) => stat(file)
.then((res) => res.isFile())
.catch(() => false)
const localFileExists = async (dir, binName, root = '/') => {
root = resolve(root).toLowerCase()
for (const path of walkUp(resolve(dir))) {
const binDir = resolve(path, 'node_modules', '.bin')
if (await fileExists(resolve(binDir, binName))) {
return binDir
}
if (path.toLowerCase() === root) {
return false
}
}
return false
}
module.exports = {
fileExists,
localFileExists,
}