@contentstack/cli-utilities
Version:
Utilities for contentstack projects
96 lines (95 loc) • 3.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Command = exports.Args = exports.Flags = void 0;
const tslib_1 = require("tslib");
const chalk_1 = tslib_1.__importDefault(require("chalk"));
const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
const core_1 = require("@oclif/core");
Object.defineProperty(exports, "Args", { enumerable: true, get: function () { return core_1.Args; } });
Object.defineProperty(exports, "Flags", { enumerable: true, get: function () { return core_1.Flags; } });
Object.defineProperty(exports, "Command", { enumerable: true, get: function () { return core_1.Command; } });
const ora_1 = tslib_1.__importDefault(require("ora"));
const cli_progress_1 = tslib_1.__importDefault(require("cli-progress"));
const cli_table_1 = tslib_1.__importDefault(require("./cli-table"));
const message_handler_1 = tslib_1.__importDefault(require("./message-handler"));
inquirer_1.default.registerPrompt('table', require('./inquirer-table-prompt'));
/**
* CLI Interface
*/
class CLIInterface {
constructor() {
this.loading = false;
}
init(context) { }
registerSearchPlugin() {
inquirer_1.default.registerPrompt('search-list', require('inquirer-search-list'));
inquirer_1.default.registerPrompt('search-checkbox', require('inquirer-search-checkbox'));
}
print(message, opts) {
if (opts) {
let chalkFn = chalk_1.default;
if (opts.color)
chalkFn = chalkFn[opts.color];
if (opts.bold)
chalkFn = chalkFn.bold;
core_1.ux.stdout(chalkFn(message_handler_1.default.parse(message)));
return;
}
core_1.ux.stdout(message_handler_1.default.parse(message));
}
success(message) {
core_1.ux.stdout(chalk_1.default.green(message_handler_1.default.parse(message)));
}
error(message, ...params) {
core_1.ux.stdout(chalk_1.default.red(message_handler_1.default.parse(message) + (params && params.length > 0 ? ': ' : '')), ...params);
}
loader(message = '') {
if (!this.loading) {
core_1.ux.action.start(message_handler_1.default.parse(message));
}
else {
core_1.ux.action.stop(message_handler_1.default.parse(message));
}
this.loading = !this.loading;
}
table(headers, data, flags, options) {
cli_table_1.default.render(headers, data, flags, options);
}
async inquire(inquirePayload) {
if (Array.isArray(inquirePayload)) {
return inquirer_1.default.prompt(inquirePayload);
}
else {
inquirePayload.message = message_handler_1.default.parse(inquirePayload.message);
const result = await inquirer_1.default.prompt(inquirePayload);
return result[inquirePayload.name];
}
}
async prompt(message, options) {
return await this.inquire({
type: 'input',
name: 'prompt',
message,
});
}
async confirm(message) {
return await this.inquire({
type: 'confirm',
name: 'prompt',
message,
});
}
progress(options) {
return new cli_progress_1.default.SingleBar(options);
}
loaderV2(message = '', spinner) {
if (!spinner) {
return (0, ora_1.default)(message).start();
}
else {
spinner.text = message;
spinner.stop();
}
}
}
exports.default = new CLIInterface();