UNPKG

flagpole

Version:

Simple and fast DOM integration, headless or headful browser, and REST API testing framework.

111 lines 4.65 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const cli_1 = require("./cli"); const child_process_1 = require("child_process"); const prompts = require("prompts"); const cli_helper_1 = require("./cli-helper"); function build() { return __awaiter(this, void 0, void 0, function* () { cli_1.Cli.hideBanner = true; cli_helper_1.printSubheader("Build TypeScript Tests"); if (!(yield isTscInstalled(3, 7, 0))) { cli_helper_1.printLine(`Must have TypeScript installed globally, with at least version 3.7.0`, "", "Use this command:", "npm i -g typescript", ""); cli_1.Cli.exit(1); return; } if (cli_1.Cli.config.project.isSourceAndOutput) { cli_helper_1.printLine("Transpiling TypeScript to JavaScript..."); try { yield cli_1.Cli.config.tsc(); cli_helper_1.printLine("Done!"); cli_1.Cli.exit(0); } catch (err) { cli_1.Cli.log(String(err)); cli_1.Cli.exit(1); } return; } cli_helper_1.printLine("This project is not currently configured to use TypeScript with Flagpole.", ""); const useTypeScript = yield doYouWantToConfigureTypeScript(); if (!useTypeScript) { cli_1.Cli.exit(1); return; } const rootFolder = yield setRootFolder(); const sourceFolder = yield setSourceFolder(rootFolder); const outputFolder = yield setOutputFolder(rootFolder); cli_1.Cli.config.project.setTypeScriptFolders(rootFolder, sourceFolder, outputFolder); yield cli_1.Cli.config.save(); const tsconfigPath = yield cli_1.Cli.config.writeTsConfig(); cli_helper_1.printLine(""); }); } exports.build = build; const isTscInstalled = (major, minor, build) => __awaiter(void 0, void 0, void 0, function* () { const result = child_process_1.execSync("tsc -v"); const match = result.toString().match(/ ([1-9]+\.[0-9]+\.[0-9]+)/); if (match === null) { return false; } const version = match[1].split(".").map(n => parseInt(n)); return (version[0] > major || (version[0] == major && version[1] > minor) || (version[0] == major && version[1] == minor && version[2] >= build)); }); const doYouWantToConfigureTypeScript = () => { return new Promise((resolve) => __awaiter(void 0, void 0, void 0, function* () { const response = yield prompts({ type: "toggle", name: "useTypeScript", message: "Configure this project to use TypeScript?", initial: true, active: "Yes", inactive: "No" }); resolve(response.useTypeScript); })); }; const setRootFolder = () => { return new Promise((resolve) => __awaiter(void 0, void 0, void 0, function* () { const response = yield prompts({ type: "text", name: "rootFolder", message: "Flagpole Root Folder", initial: `${cli_1.Cli.config.project.path}` }); resolve(response.rootFolder); })); }; const setSourceFolder = (rootFolder) => { return new Promise((resolve) => __awaiter(void 0, void 0, void 0, function* () { const response = yield prompts({ type: "text", name: "sourceFolder", message: `Source Folder ${rootFolder}/`, initial: `src` }); resolve(response.sourceFolder); })); }; const setOutputFolder = (rootFolder) => { return new Promise((resolve) => __awaiter(void 0, void 0, void 0, function* () { const response = yield prompts({ type: "text", name: "outputFolder", message: `Output Folder ${rootFolder}/`, initial: `out` }); resolve(response.outputFolder); })); }; //# sourceMappingURL=build.js.map