vtex
Version:
The platform for e-commerce apps
46 lines (45 loc) • 2.29 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ensureValidEdition = void 0;
const tslib_1 = require("tslib");
const chalk_1 = tslib_1.__importDefault(require("chalk"));
const Sponsor_1 = require("../../../clients/IOClients/apps/Sponsor");
const ErrorKinds_1 = require("../../../error/ErrorKinds");
const ErrorReport_1 = require("../../../error/ErrorReport");
const logger_1 = tslib_1.__importDefault(require("../../../logger"));
const prompts_1 = require("../../prompts");
const sponsor_1 = require("../../sponsor");
const recommendedEdition = 'vtex.edition-store@5.x';
const getCurrEdition = async () => {
var _a;
const sponsor = Sponsor_1.Sponsor.createClient({ workspace: 'master' });
try {
return await sponsor.getEdition();
}
catch (err) {
if (((_a = err.response) === null || _a === void 0 ? void 0 : _a.status) !== 404) {
ErrorReport_1.ErrorReport.createAndMaybeRegisterOnTelemetry({
kind: ErrorKinds_1.ErrorKinds.EDITION_REQUEST_ERROR,
originalError: err,
});
logger_1.default.debug(`Non-fatal error checking account edition: ${err.message}`);
}
return null;
}
};
const promptSwitchEdition = (currEditionId) => {
logger_1.default.warn(`This account is using the edition ${chalk_1.default.blue(currEditionId)}.`);
logger_1.default.warn(`If you are developing your store in IO, it is strongly recommended that you switch to the ${chalk_1.default.blue(recommendedEdition)}.`);
logger_1.default.warn(`For more information about editions, check ${chalk_1.default.blue('https://developers.vtex.com/vtex-developer-docs/docs/vtex-io-documentation-edition-app')}`);
return prompts_1.promptConfirm(`Would you like to change the edition to ${chalk_1.default.blue(recommendedEdition)} now?`, false);
};
async function ensureValidEdition(workspace) {
const edition = await getCurrEdition();
if (edition && edition.vendor === 'vtex' && edition.name === 'edition-business') {
const shouldSwitch = await promptSwitchEdition(edition.id);
if (shouldSwitch) {
await sponsor_1.setEdition(recommendedEdition, workspace, true);
}
}
}
exports.ensureValidEdition = ensureValidEdition;