UNPKG

constatic

Version:

Constatic is a CLI for creating and managing modern TypeScript projects, providing an organized structure and features that streamline development.

63 lines (61 loc) 1.23 kB
// src/helpers/prompts.ts import { select as searchSelectPro } from "inquirer-select-pro"; import ck from "chalk"; import merge from "lodash.merge"; var baseTheme = { style: { help: () => "", message: (text) => ck.reset(text), answer: (text) => ck.dim(text), renderSelectedChoices: () => "" }, prefix: { idle: ck.cyan("◆"), done: ck.green("◇") }, icon: { cursor: "→" } }; var theme = { ...baseTheme, searchSelect: { style: baseTheme.style, prefix: baseTheme.prefix.done, icon: { ...baseTheme.icon, checked: ck.green("◉"), unchecked: "◯" } } }; function withDefaults(config) { return { mask: "*", instructions: false, ...config, theme: merge(theme, config?.["theme"]) }; } function wrapWithCustomError(fn, createError) { return async (...args) => { try { return await fn(...args); } catch (err) { throw createError(err, args); } }; } class ExitPromptError extends Error { constructor() { super(); this.name = "ExitPromptError"; } } var searchSelect = wrapWithCustomError(searchSelectPro, () => new ExitPromptError); export { withDefaults, theme, searchSelect, baseTheme };