@expressots/cli
Version:
Expressots CLI - modern, fast, lightweight nodejs web framework (@cli)
59 lines (58 loc) • 2.63 kB
JavaScript
;
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;