@sap/cds-dk
Version:
Command line client and development toolkit for the SAP Cloud Application Programming Model
39 lines (31 loc) • 878 B
JavaScript
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
}