@aws-cdk-testing/cli-integ
Version:
Integration tests for the AWS CDK CLI
43 lines • 6.08 kB
JavaScript
;
var _a, _b, _c;
Object.defineProperty(exports, "__esModule", { value: true });
const child_process = require("child_process");
const fs = require("fs-extra");
let argv = process.argv.slice(2);
// eslint-disable-next-line no-console
console.log('fake npm');
if (argv[0] === 'install') {
if (!process.env.REPO_PACKAGE_MAP) {
throw new Error('REPO_PACKAGE_MAP not set');
}
const repoPackageMap = fs.readJsonSync(process.env.REPO_PACKAGE_MAP, { encoding: 'utf-8' });
// Replace paths in the 'package.json' in the current directory
if (fs.pathExistsSync('package.json')) {
const packageJson = fs.readJsonSync('package.json', { encoding: 'utf-8' });
for (const deps of [(_a = packageJson.dependencies) !== null && _a !== void 0 ? _a : {}, (_b = packageJson.devDependencies) !== null && _b !== void 0 ? _b : {}]) {
for (const [name, version] of Object.entries(deps)) {
deps[name] = (_c = repoPackageMap[name]) !== null && _c !== void 0 ? _c : version;
}
}
fs.writeJsonSync('package.json', packageJson, { encoding: 'utf-8' });
}
// Replace package names on the command line
argv = argv.map(x => { var _a; return (_a = repoPackageMap[x]) !== null && _a !== void 0 ? _a : x; });
}
////////////////////////////////////////////////////////////////////////
// Shell out to original npm
const child = child_process.spawn('node', [require.resolve('npm'), ...argv], {
shell: false,
stdio: ['ignore', 'inherit', 'inherit'],
});
child.once('error', e => {
// eslint-disable-next-line no-console
console.error(e);
process.exitCode = 1;
});
child.once('close', code => {
if (code) {
process.exitCode = code;
}
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibnBtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtDQUErQztBQUMvQywrQkFBK0I7QUFFL0IsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFakMsc0NBQXNDO0FBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7QUFFeEIsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7SUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUNELE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRTVGLCtEQUErRDtJQUMvRCxJQUFJLEVBQUUsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztRQUN0QyxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFBLFdBQVcsQ0FBQyxZQUFZLG1DQUFJLEVBQUUsRUFBRSxNQUFBLFdBQVcsQ0FBQyxlQUFlLG1DQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDdkYsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbkQsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQUEsY0FBYyxDQUFDLElBQUksQ0FBQyxtQ0FBSSxPQUFPLENBQUM7WUFDL0MsQ0FBQztRQUNILENBQUM7UUFDRCxFQUFFLENBQUMsYUFBYSxDQUFDLGNBQWMsRUFBRSxXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsNENBQTRDO0lBQzVDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQUMsT0FBQSxNQUFBLGNBQWMsQ0FBQyxDQUFDLENBQUMsbUNBQUksQ0FBQyxDQUFBLEVBQUEsQ0FBQyxDQUFDO0FBQy9DLENBQUM7QUFFRCx3RUFBd0U7QUFDeEUsNkJBQTZCO0FBRTdCLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFO0lBQzNFLEtBQUssRUFBRSxLQUFLO0lBQ1osS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUM7Q0FDeEMsQ0FBQyxDQUFDO0FBRUgsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUU7SUFDdEIsc0NBQXNDO0lBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFDdkIsQ0FBQyxDQUFDLENBQUM7QUFFSCxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRTtJQUN6QixJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1QsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDMUIsQ0FBQztBQUNILENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2hpbGRfcHJvY2VzcyBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcblxubGV0IGFyZ3YgPSBwcm9jZXNzLmFyZ3Yuc2xpY2UoMik7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG5jb25zb2xlLmxvZygnZmFrZSBucG0nKTtcblxuaWYgKGFyZ3ZbMF0gPT09ICdpbnN0YWxsJykge1xuICBpZiAoIXByb2Nlc3MuZW52LlJFUE9fUEFDS0FHRV9NQVApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1JFUE9fUEFDS0FHRV9NQVAgbm90IHNldCcpO1xuICB9XG4gIGNvbnN0IHJlcG9QYWNrYWdlTWFwID0gZnMucmVhZEpzb25TeW5jKHByb2Nlc3MuZW52LlJFUE9fUEFDS0FHRV9NQVAsIHsgZW5jb2Rpbmc6ICd1dGYtOCcgfSk7XG5cbiAgLy8gUmVwbGFjZSBwYXRocyBpbiB0aGUgJ3BhY2thZ2UuanNvbicgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5XG4gIGlmIChmcy5wYXRoRXhpc3RzU3luYygncGFja2FnZS5qc29uJykpIHtcbiAgICBjb25zdCBwYWNrYWdlSnNvbiA9IGZzLnJlYWRKc29uU3luYygncGFja2FnZS5qc29uJywgeyBlbmNvZGluZzogJ3V0Zi04JyB9KTtcbiAgICBmb3IgKGNvbnN0IGRlcHMgb2YgW3BhY2thZ2VKc29uLmRlcGVuZGVuY2llcyA/PyB7fSwgcGFja2FnZUpzb24uZGV2RGVwZW5kZW5jaWVzID8/IHt9XSkge1xuICAgICAgZm9yIChjb25zdCBbbmFtZSwgdmVyc2lvbl0gb2YgT2JqZWN0LmVudHJpZXMoZGVwcykpIHtcbiAgICAgICAgZGVwc1tuYW1lXSA9IHJlcG9QYWNrYWdlTWFwW25hbWVdID8/IHZlcnNpb247XG4gICAgICB9XG4gICAgfVxuICAgIGZzLndyaXRlSnNvblN5bmMoJ3BhY2thZ2UuanNvbicsIHBhY2thZ2VKc29uLCB7IGVuY29kaW5nOiAndXRmLTgnIH0pO1xuICB9XG5cbiAgLy8gUmVwbGFjZSBwYWNrYWdlIG5hbWVzIG9uIHRoZSBjb21tYW5kIGxpbmVcbiAgYXJndiA9IGFyZ3YubWFwKHggPT4gcmVwb1BhY2thZ2VNYXBbeF0gPz8geCk7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gIFNoZWxsIG91dCB0byBvcmlnaW5hbCBucG1cblxuY29uc3QgY2hpbGQgPSBjaGlsZF9wcm9jZXNzLnNwYXduKCdub2RlJywgW3JlcXVpcmUucmVzb2x2ZSgnbnBtJyksIC4uLmFyZ3ZdLCB7XG4gIHNoZWxsOiBmYWxzZSxcbiAgc3RkaW86IFsnaWdub3JlJywgJ2luaGVyaXQnLCAnaW5oZXJpdCddLFxufSk7XG5cbmNoaWxkLm9uY2UoJ2Vycm9yJywgZSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gIGNvbnNvbGUuZXJyb3IoZSk7XG4gIHByb2Nlc3MuZXhpdENvZGUgPSAxO1xufSk7XG5cbmNoaWxkLm9uY2UoJ2Nsb3NlJywgY29kZSA9PiB7XG4gIGlmIChjb2RlKSB7XG4gICAgcHJvY2Vzcy5leGl0Q29kZSA9IGNvZGU7XG4gIH1cbn0pO1xuIl19