kaomoji
Version:
Random kaomoji generator with 314 kaomojis across 4 categories.
88 lines (85 loc) • 3.02 kB
JavaScript
import { Command } from 'commander';
import * as prompts from '@clack/prompts';
import { thanks, congrats, sad, happy } from './index.esm.js';
function _instanceof(left, right) {
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
return !!right[Symbol.hasInstance](left);
} else {
return left instanceof right;
}
}
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) {
return _instanceof(value, 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());
});
}
typeof SuppressedError === "function" ? SuppressedError : function _SuppressedError(error, suppressed, message) {
var e = new Error(message);
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
};
const categories = {
happy,
sad,
congrats,
thanks
};
const categoryNames = Object.keys(categories);
function runInteractive() {
return __awaiter(this, void 0, void 0, function*() {
prompts.intro('kaomoji \(^o^)/');
const category = yield prompts.select({
message: 'Pick a category',
options: categoryNames.map((name)=>({
value: name,
label: name
}))
});
if (prompts.isCancel(category)) {
prompts.cancel('Bye!');
process.exit(0);
}
const result = categories[category]();
prompts.outro(result);
});
}
const program = new Command();
program.name('kaomoji').description('Random kaomoji generator \(^o^)/').version('0.0.1').argument('[category]', `Category: ${categoryNames.join(', ')}`).option('-a, --all', 'Print all kaomojis in the category').action((category, options)=>__awaiter(void 0, void 0, void 0, function*() {
if (!category) {
yield runInteractive();
return;
}
if (!categoryNames.includes(category)) {
console.error(`Unknown category: "${category}". Available: ${categoryNames.join(', ')}`);
process.exit(1);
}
const fn = categories[category];
if (options === null || options === void 0 ? void 0 : options.all) {
fn.all.forEach((k)=>console.log(k));
} else {
console.log(fn());
}
}));
program.parse();