Open lorem-ipsum in Script Kit

https://github.com/johnlindquist/kit/assets/76580/a6e449aa-d9ef-4404-9be8-b5fd7855e6d0

source code

// 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);
}