vtex
Version:
The platform for e-commerce apps
36 lines (35 loc) • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const utils_1 = require("../../error/utils");
const SessionManager_1 = require("../../session/SessionManager");
const logger_1 = tslib_1.__importDefault(require("../../logger"));
const create_1 = require("./create");
const reset_1 = tslib_1.__importDefault(require("./reset"));
const Messages_1 = require("../../../lib/constants/Messages");
exports.default = async (name, options) => {
var _a;
const session = SessionManager_1.SessionManager.getSingleton();
const production = options === null || options === void 0 ? void 0 : options.production;
const reset = (_a = options === null || options === void 0 ? void 0 : options.reset) !== null && _a !== void 0 ? _a : false;
if (name === '-') {
name = session.lastUsedWorkspace;
if (name == null) {
throw utils_1.createFlowIssueError('No last used workspace was found');
}
}
const result = await session.workspaceSwitch({
targetWorkspace: name,
workspaceCreation: {
production,
promptCreation: true,
creator: create_1.workspaceCreator,
onError: create_1.handleErrorCreatingWorkspace,
},
});
if (reset && result !== 'created') {
await reset_1.default(name, { production });
}
const { account, workspace } = session;
logger_1.default.info(Messages_1.Messages.USE_SUCCESS(workspace, account));
};