UNPKG

kaomoji

Version:

Random kaomoji generator with 314 kaomojis across 4 categories.

88 lines (85 loc) 3.02 kB
#!/usr/bin/env node 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();