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