@limlabs/limo
Version:
Infrastructure as Code generator
98 lines (97 loc) • 3.72 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.parseOtherArgs = exports.delay = exports.animateTyping = exports.bold = exports.colorize = exports.ColorCodes = exports.spinner = exports.spinnerStyle = exports.parseProcessArgs = void 0;
const ora_1 = __importDefault(require("ora"));
const parseProcessArgs = (args = process.argv.slice(2)) => {
const result = {};
for (let i = 0; i < args.length; i++) {
let [key, value] = args[i].split("=");
if (!value && i + 1 < args.length && !args[i + 1].startsWith("-")) {
value = args[++i];
}
if (key) {
result[key.replace(/^--?/, "")] = value !== undefined ? value : "true";
}
}
return result;
};
exports.parseProcessArgs = parseProcessArgs;
exports.spinnerStyle = {
color: "magenta"
};
const spinner = (text, style = exports.spinnerStyle) => {
return (0, ora_1.default)(Object.assign({ text }, style));
};
exports.spinner = spinner;
exports.ColorCodes = {
black: 30,
red: 31,
green: 32,
yellow: 33,
blue: 34,
magenta: 35,
cyan: 36,
white: 37,
bgBlack: 40,
bgRed: 41,
bgGreen: 42,
bgYellow: 43,
bgBlue: 44,
bgMagenta: 45,
bgCyan: 46,
bgWhite: 47
};
const colorize = (color, text) => {
const code = exports.ColorCodes[color];
if (code === undefined) {
throw new Error(`Unknown color: ${color}`);
}
return `\x1b[${code}m${text}\x1b[0m`;
};
exports.colorize = colorize;
const bold = (text) => {
return `\x1b[1m${text}\x1b[0m`;
};
exports.bold = bold;
const animateTyping = (message) => __awaiter(void 0, void 0, void 0, function* () {
// only log if we are in a TTY
if (!process.stdout.isTTY) {
process.stdout.write(`${message}\n`);
return;
}
const minDelay = 10; // Minimum delay between "keypresses" in milliseconds
const maxDelay = 45; // Maximum delay between "keypresses" in milliseconds
const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
process.stdout.write("\n");
for (let i = 0; i < message.length; i++) {
const char = message[i];
process.stdout.write(char); // Print one character at a time
const randomDelay = Math.floor(Math.random() * (maxDelay - minDelay + 1)) + minDelay;
yield delay(randomDelay);
}
process.stdout.write("\n"); // Move to the next line after completing the animation
});
exports.animateTyping = animateTyping;
const delay = (ms) => __awaiter(void 0, void 0, void 0, function* () { return new Promise((resolve) => setTimeout(resolve, ms)); });
exports.delay = delay;
function parseOtherArgs(otherArgs) {
const result = {};
otherArgs.forEach((arg) => {
const [key, value] = arg.split("=");
result[key] = value;
});
return result;
}
exports.parseOtherArgs = parseOtherArgs;