@vectorx/cloud-toolkit
Version:
VectorX Cloud Toolkit
90 lines (89 loc) • 3.71 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.logger = exports.Logger = void 0;
const console_1 = require("console");
const util_1 = require("util");
const chalk_1 = __importDefault(require("chalk"));
const log_symbols_1 = __importDefault(require("log-symbols"));
const ora_1 = __importDefault(require("ora"));
const terminal_link_1 = __importDefault(require("terminal-link"));
class Logger {
constructor(options = {}) {
this.c = {
_times: new Map(),
log(a, ...args) {
this.debug((0, util_1.format)(a, ...args));
},
};
const { verbose } = options;
this.verboseEnabled = verbose || false;
}
breakLine() {
console.log();
}
log(...args) {
console.log(`▶️ ${chalk_1.default.gray(`[${new Date().toLocaleString()}]`)} ${args.join(" ")}`);
}
info(msg) {
console.log(`▶️ ${chalk_1.default.gray(`[${new Date().toLocaleString()}]`)} ${log_symbols_1.default.info} ${msg}`);
}
success(msg) {
console.log(`▶️ ${chalk_1.default.gray(`[${new Date().toLocaleString()}]`)}${log_symbols_1.default.success} ${msg}`);
}
warn(msg) {
console.log(`▶️ ${chalk_1.default.gray(`[${new Date().toLocaleString()}]`)}${log_symbols_1.default.warning} ${msg}`);
}
error(msg) {
console.log(`▶️ ${chalk_1.default.red(`[${new Date().toLocaleString()}]`)}${log_symbols_1.default.error} ${msg}`);
}
verbose(...args) {
if (this.verboseEnabled) {
const msg = args.join(" ▶️ ");
console.log(`${chalk_1.default.bold("[debug]")} ${chalk_1.default.gray(`[${new Date().toLocaleString()}]`)} ${msg}`);
}
}
debug(...args) {
return this.verbose(...args);
}
genClickableLink(link) {
if (terminal_link_1.default.isSupported) {
const clickablelink = (0, terminal_link_1.default)(link, link);
return chalk_1.default.bold.cyan(clickablelink);
}
return chalk_1.default.bold.underline.cyan(link);
}
printClickableLink(link) {
const clickLink = this.genClickableLink(link);
this.info(clickLink);
}
time(label, fn) {
return __awaiter(this, void 0, void 0, function* () {
const promise = typeof fn === "function" ? fn() : fn;
if (this.verboseEnabled) {
this.c.log(label);
console_1.Console.prototype.time.call(this.c, label);
const r = yield promise;
console_1.Console.prototype.timeEnd.call(this.c, label);
return r;
}
return promise;
});
}
spinner(text, color = "cyan") {
return (0, ora_1.default)({ text, color }).start();
}
}
exports.Logger = Logger;
exports.logger = new Logger();