create-testplane
Version:
A tool for fast and simple Testplane configuration
51 lines • 2.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getPluginNames = void 0;
const utils_1 = require("./utils");
const getDefaultPluginNames = (opts) => {
const pluginNames = opts.pluginGroups.reduce((pluginNames, currentGroup) => {
const groupDefaultPlugins = currentGroup.plugins.filter(prompt => prompt.default);
const groupPluginNames = groupDefaultPlugins.map(prompt => prompt.plugin);
return pluginNames.concat(groupPluginNames);
}, []);
return { pluginNames, configNotes: [] };
};
const askPluginNames = async (opts) => {
let pluginNames = [];
let configNotes = [];
const wantedFeatures = await (0, utils_1.inquirerPrompt)({
type: "checkbox",
message: "Which features do you need?",
choices: opts.pluginGroups.map((group, ind) => ({
name: group.description,
value: ind,
checked: group.plugins.some(plugin => plugin.default),
})),
});
for (const ind of wantedFeatures) {
const { description, plugins } = opts.pluginGroups[ind];
const curGroupPlugins = await (0, utils_1.inquirerPrompt)({
type: "checkbox",
message: `Plugins: ${description}`,
choices: plugins.map(({ plugin, description, default: checked }, index) => ({
name: `${description} (${(0, utils_1.packageNameFromPlugin)(plugin)})`,
value: index,
checked,
})),
});
const notesIndToAdd = curGroupPlugins.filter(ind => plugins[ind].configNote);
const pluginNamesToAdd = curGroupPlugins.map(ind => plugins[ind].plugin);
const notesToAdd = notesIndToAdd.map(ind => ({
plugin: plugins[ind].plugin,
configNote: plugins[ind].configNote,
}));
pluginNames = pluginNames.concat(pluginNamesToAdd);
configNotes = configNotes.concat(notesToAdd);
}
return { pluginNames, configNotes };
};
const getPluginNames = async (opts) => {
return opts.extraQuestions ? await askPluginNames(opts) : getDefaultPluginNames(opts);
};
exports.getPluginNames = getPluginNames;
//# sourceMappingURL=plugins.js.map