// Name: Lorem ipsum import "@johnlindquist/kit"; import { loremIpsum, ILoremIpsumParams } from "lorem-ipsum"; let ret: ReturnType<typeof loremIpsum>; const DEFAULTS = { count: 1, }; let count: ILoremIpsumParams["count"]; let units: ILoremIpsumParams["units"]; const flags = { html: { name: "html", shortcut: "cmd+h", }, copy: { name: "copy", shortcut: "cmd+c", }, }; function myLoremIpsum({ ...args }: Parameters<typeof loremIpsum>[0] = {}) { const format = flag?.html ? "html" : "plain"; // say(`generating ${count} ${units} of ${format} text`); return loremIpsum({ count, units, format, ...args }); } await arg( { placeholder: String(DEFAULTS.count), description: `Generate lorem ipsum text...`, flags, }, (input) => { count = (input && Number(input)) || undefined; return ["paragraphs", "sentences", "words"].map((el) => ({ name: el, preview: () => { units = el as ILoremIpsumParams["units"]; return myLoremIpsum(); }, })); } ); const loremText = myLoremIpsum(); if (flag?.copy) { copy(loremText); } else { setSelectedText(loremText); }