UNPKG

@expressots/cli

Version:

Expressots CLI - modern, fast, lightweight nodejs web framework (@cli)

59 lines (58 loc) 2.63 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createExternalProvider = void 0; const chalk_1 = __importDefault(require("chalk")); const degit_1 = __importDefault(require("degit")); const inquirer_1 = __importDefault(require("inquirer")); const center_text_1 = require("../../utils/center-text"); const change_package_info_1 = require("../../utils/change-package-info"); const cli_ui_1 = require("../../utils/cli-ui"); async function printInfo(providerName) { console.log("\n"); console.log("🐎 Provider", chalk_1.default.green(providerName), "created successfully!"); console.log("🤙 Run the following commands to start the provider:\n"); console.log(chalk_1.default.bold.gray(`$ cd ${providerName}`)); console.log("\n"); console.log(chalk_1.default.bold.green((0, center_text_1.centerText)("Happy coding!"))); console.log(chalk_1.default.bold.gray((0, center_text_1.centerText)("Please consider donating to support the project.\n"))); console.log(chalk_1.default.bold.white((0, center_text_1.centerText)("💖 Sponsor: https://github.com/sponsors/expressots"))); console.log("\n"); } const createExternalProvider = async (provider) => { return new Promise(async (resolve, reject) => { let providerInfo = {}; providerInfo.providerName = provider; if (!provider) { providerInfo = await inquirer_1.default.prompt([ { type: "input", name: "providerName", message: "Provider name", default: "expressots-provider", transformer: (input) => { return chalk_1.default.yellow(chalk_1.default.bold(input)); }, }, ]); } try { const emitter = (0, degit_1.default)(`expressots/templates/provider`); await emitter.clone(providerInfo.providerName); (0, change_package_info_1.changePackageName)({ directory: providerInfo.providerName, name: providerInfo.providerName, }); await printInfo(providerInfo.providerName); resolve(); } catch (err) { console.log("\n"); (0, cli_ui_1.printError)("Project already exists or Folder is not empty", ""); reject(err); } }); }; exports.createExternalProvider = createExternalProvider;