create-testplane
Version:
A tool for fast and simple Testplane configuration
67 lines • 4.24 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.run = exports.defaultTestplaneTestsDir = exports.baseGeneralPrompts = exports.asExpression = exports.addModule = exports.defineVariable = exports.askQuestion = void 0;
const defaultToolOpts_1 = __importDefault(require("./constants/defaultToolOpts"));
const package_1 = require("./package");
const utils_1 = require("./utils");
const plugins_1 = require("./plugins");
const baseGeneralPrompts_1 = __importDefault(require("./constants/baseGeneralPrompts"));
exports.baseGeneralPrompts = baseGeneralPrompts_1.default;
const configBuilder_1 = require("./configBuilder");
process.on("uncaughtException", err => {
console.error(err.stack);
process.exit(1);
});
process.on("unhandledRejection", (reason, p) => {
console.error("Unhandled Rejection:\n Promise: ", p, "\n Reason: ", reason);
});
var utils_2 = require("./utils");
Object.defineProperty(exports, "askQuestion", { enumerable: true, get: function () { return utils_2.askQuestion; } });
Object.defineProperty(exports, "defineVariable", { enumerable: true, get: function () { return utils_2.defineVariable; } });
Object.defineProperty(exports, "addModule", { enumerable: true, get: function () { return utils_2.addModule; } });
Object.defineProperty(exports, "asExpression", { enumerable: true, get: function () { return utils_2.asExpression; } });
var defaultTestplaneConfig_1 = require("./constants/defaultTestplaneConfig");
Object.defineProperty(exports, "defaultTestplaneTestsDir", { enumerable: true, get: function () { return defaultTestplaneConfig_1.defaultTestplaneTestsDir; } });
const run = async ({ createBaseConfig, createOpts, generalPrompts = baseGeneralPrompts_1.default, generalPromptsHandler, createPluginsConfig, getExtraPackagesToInstall, registry = "https://registry.npmjs.org", }) => {
const opts = createOpts(defaultToolOpts_1.default);
const configBuilder = configBuilder_1.ConfigBuilder.create(createBaseConfig, { language: opts.language });
const packageManager = await (0, package_1.initApp)(opts.path, opts.extraQuestions);
const generalPromptsHandlers = generalPromptsHandler
? [utils_1.baseGeneralPromptsHandler, generalPromptsHandler]
: [utils_1.baseGeneralPromptsHandler];
const generalAnswers = await configBuilder.handleGeneralQuestions(generalPrompts, generalPromptsHandlers, opts);
const { pluginNames, configNotes } = await (0, plugins_1.getPluginNames)(opts);
await configBuilder.configurePlugins({ pluginNames, createPluginsConfig, generalAnswers });
const extraPackages = getExtraPackagesToInstall ? getExtraPackagesToInstall() : { names: [], notes: [] };
const packageNamesToInstall = pluginNames.concat(extraPackages.names);
if (opts.language === "ts") {
(0, utils_1.extendWithTypescript)(packageNamesToInstall, opts.path);
}
await Promise.all([
(0, package_1.installPackages)(opts.path, packageManager, packageNamesToInstall, registry),
configBuilder.write(opts.path),
(0, utils_1.writeTestExample)(opts.path, opts.language),
]);
(0, utils_1.printSuccessMessage)(configNotes.concat(extraPackages.notes));
};
exports.run = run;
exports.default = { run: exports.run, askQuestion: utils_1.askQuestion, baseGeneralPrompts: baseGeneralPrompts_1.default };
__exportStar(require("./types"), exports);
//# sourceMappingURL=index.js.map