UNPKG

create-testplane

Version:

A tool for fast and simple Testplane configuration

59 lines 2.52 kB
"use strict"; 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 getDefaultFeatures = (opts) => { const inds = []; opts.pluginGroups.forEach(({ plugins }, ind) => { if (plugins.some(plugin => plugin.default)) { inds.push(ind); } }); return inds; }; const wantedFeatures = await (0, utils_1.askQuestion)({ type: "checkbox", message: "Which features do you need?", choices: opts.pluginGroups.map((group, ind) => ({ name: group.description, value: ind })), default: getDefaultFeatures(opts), }); for (const ind of wantedFeatures) { const { description, plugins } = opts.pluginGroups[ind]; const curGroupPlugins = await (0, utils_1.askQuestion)({ type: "checkbox", message: `Plugins: ${description}`, choices: plugins.map(({ plugin, description }, index) => ({ name: `${description} (${(0, utils_1.packageNameFromPlugin)(plugin)})`, value: index, })), default: plugins.reduce((def, plugin, index) => { return plugin.default ? def.concat(index) : def; }, []), }); 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