![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /proc/self/root/lib/node_modules/npm/node_modules/find-npm-prefix/ |
'use strict' // try to find the most reasonable prefix to use module.exports = findPrefix const fs = require('fs') const path = require('path') function findPrefix (dir) { return new Promise((resolve, reject) => { dir = path.resolve(dir) // this is a weird special case where an infinite recurse of // node_modules folders resolves to the level that contains the // very first node_modules folder let walkedUp = false while (path.basename(dir) === 'node_modules') { dir = path.dirname(dir) walkedUp = true } if (walkedUp) { resolve(dir) } else { resolve(findPrefix_(dir)) } }) } function findPrefix_ (dir, original) { if (!original) original = dir const parent = path.dirname(dir) // this is a platform independent way of checking if we're in the root // directory if (parent === dir) return Promise.resolve(original) return new Promise((resolve, reject) => { fs.readdir(dir, (err, files) => { if (err) { // an error right away is a bad sign. // unless the prefix was simply a non // existent directory. if (err && dir === original && err.code !== 'ENOENT') { reject(err) } else { resolve(original) } } else if (files.indexOf('node_modules') !== -1 || files.indexOf('package.json') !== -1) { resolve(dir) } else { resolve(findPrefix_(parent, original)) } }) }) }