UNPKG

@vectorx/cloud-toolkit

Version:

VectorX Cloud Toolkit

90 lines (89 loc) 3.71 kB
"use strict"; 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();