vtex
Version:
The platform for e-commerce apps
36 lines (35 loc) • 1.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const chalk_1 = tslib_1.__importDefault(require("chalk"));
const logger_1 = tslib_1.__importDefault(require("./api/logger"));
const SessionManager_1 = require("./api/session/SessionManager");
const Workspaces_1 = require("./api/clients/IOClients/infra/Workspaces");
const workspaceState = (meta) => (meta.production ? 'production' : 'dev');
const getWorkspaceState = async (account, workspace) => {
try {
const workspaces = Workspaces_1.createWorkspacesClient();
const meta = await workspaces.get(account, workspace);
return `${workspaceState(meta)} `;
}
catch (err) {
logger_1.default.debug(`Unable to fetch workspace state`);
logger_1.default.debug(err.message);
return undefined;
}
};
exports.greeting = async () => {
const { account, userLogged, workspace } = SessionManager_1.SessionManager.getSingleton();
if (account && userLogged && workspace) {
let loggedMessage = 'Logged into';
let state = await getWorkspaceState(account, workspace);
if (!state) {
loggedMessage = `${chalk_1.default.red('Not logged in')}. Previously logged into`;
state = '';
}
return [
`${loggedMessage} ${chalk_1.default.blue(account)} as ${chalk_1.default.green(userLogged)} at ${chalk_1.default.yellowBright(state)}workspace ${chalk_1.default.green(workspace)}`,
];
}
return ['Welcome to VTEX I/O', `Login with ${chalk_1.default.green('vtex login')} ${chalk_1.default.blue('<account>')}`];
};