UNPKG

@sap/cds-dk

Version:

Command line client and development toolkit for the SAP Cloud Application Programming Model

39 lines (31 loc) 878 B
const os = require('os'); const { execFileSync } = require('child_process'); const cds = require('../../cds'); const DEBUG = cds.debug('cli'); let modulesDir; function globalModulesDir() { if (!modulesDir) { modulesDir = execFileSync('npm', ['root', '-g'], { encoding: 'utf8', shell: os.platform() === 'win32', stdio: ['ignore', 'pipe', 'ignore'] }).trim(); } return modulesDir; } function requireGlobal(packageId) { try { const packagePath = require.resolve(packageId, { paths: [globalModulesDir()] }); return require(packagePath); } catch (error) { // Ignore error. DEBUG?.(`Failed to find module '${packageId}' in ${globalModulesDir()}:`, error); } } function resetCache() { modulesDir = undefined; } module.exports = { requireGlobal, resetCache }