@tsed/cli
Version:
CLI to bootstrap your Ts.ED project
25 lines (24 loc) • 909 B
JavaScript
import { cleanObject, isFunction } from "@tsed/core";
import { FeaturesMap, FeaturesPrompt } from "../config/FeaturesPrompt.js";
function mapChoices(item, options) {
return item.choices.map((choice) => {
const config = FeaturesMap[choice];
if (!config) {
throw new Error(`Unknown init prompt choice "${choice}" for prompt "${item.name}"`);
}
const { checked } = config;
return cleanObject({
...config,
value: choice,
checked: isFunction(checked) ? checked(options) : checked
});
});
}
export function getFeaturesPrompt(runtimes, availablePackageManagers, options) {
return FeaturesPrompt(runtimes, availablePackageManagers).map((item, index) => {
return cleanObject({
...item,
choices: item.choices?.length ? mapChoices(item, options) : undefined
});
});
}