function promoteDefaults(dir) {
const promoteVersionToDefault = (version, modName) => {
const vDir = Path.join(dir, modName, flatVDir, version, modName);
if (Fs.existsSync(vDir)) {
console.log("Promoting module", modName + "@" + version, "to default");
const files = Fs.readdirSync(vDir).map(x => Path.join(vDir, x));
shell.mv(files, Path.join(dir, modName));
const pkgFile = Path.join(dir, modName, "package.json");
const pkg = require(pkgFile);
pkg._flatVersion = version;
Fs.writeFileSync(pkgFile, JSON.stringify(pkg, null, 2));
Fs.rmdirSync(vDir);
Fs.rmdirSync(Path.join(vDir, ".."));
return true;
}
return false;
};
versionsMap.forEach((versions, modName) => {
const res = appDepRes[modName];
const promote = res ? res.resolved : versions[0];
if (promoteVersionToDefault(promote, modName)) {
if (versions.length === 1) {
shell.rm("-rf", Path.join(dir, modName, flatVDir));
}
}
});
}