create-testplane
Version:
A tool for fast and simple Testplane configuration
59 lines • 2.52 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 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