vtex
Version:
The platform for e-commerce apps
35 lines (34 loc) • 1.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.fixPinnedDependencies = exports.fixBuilderFolderPinnedDeps = void 0;
const tslib_1 = require("tslib");
const logger_1 = tslib_1.__importDefault(require("./logger"));
const ManifestUtil_1 = require("./manifest/ManifestUtil");
const packageJson_1 = require("../lib/packageJson");
exports.fixBuilderFolderPinnedDeps = async (appRoot, builder, builderPinnedDeps) => {
const pkgJson = await packageJson_1.PackageJson.getBuilderPackageJsonIfExists(appRoot, builder, true, logger_1.default);
if (!pkgJson) {
return;
}
const depNames = Object.keys(builderPinnedDeps);
depNames.forEach(depName => {
const depVersion = builderPinnedDeps[depName];
pkgJson.changeDepVersionIfUnsatisfied(depName, depVersion);
});
await pkgJson.flushChanges();
};
exports.fixPinnedDependencies = async (pinnedDeps, buildersToFixDeps, manifestBuilders) => {
const appRoot = ManifestUtil_1.getAppRoot();
await Promise.all(buildersToFixDeps.map((builder) => {
var _a;
const builderMajorLocator = manifestBuilders[builder];
if (!builderMajorLocator) {
return Promise.resolve();
}
const pinnedDepsForBuilder = {
...pinnedDeps.common,
...(_a = pinnedDeps.builders[builder]) === null || _a === void 0 ? void 0 : _a[builderMajorLocator],
};
return exports.fixBuilderFolderPinnedDeps(appRoot, builder, pinnedDepsForBuilder);
}));
};