UNPKG

@veecode-platform/safira-cli

Version:

Generate a microservice project from your spec.

90 lines (89 loc) 3.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CodeQuarkusService = void 0; const tslib_1 = require("tslib"); const got_1 = tslib_1.__importDefault(require("got")); const package_manager_enum_1 = require("../package-manager-enum"); const url_1 = require("url"); const string_utils_1 = require("../../../utils/string-utils"); const properties = tslib_1.__importStar(require("../../../properties.json")); const https = tslib_1.__importStar(require("https")); class CodeQuarkusService { constructor() { } getCode(name, { packageManager = package_manager_enum_1.PackageManager.maven, packageName = "br.com.safira", quarkusVersion, javaVersion }, dataBase) { const searchParams = new url_1.URLSearchParams([ ["a", name.toLowerCase().trim()], ["g", packageName.trim()], ["nc", "true"], ["e", "resteasy-reactive"], ["e", "resteasy-reactive-jackson"], ["e", "container-image-jib"], ["e", "hibernate-validator"], ["e", "smallrye-health"], ["e", "kubernetes"], ["j", javaVersion], ]); if (dataBase) { searchParams.append("e", `quarkus-jdbc-${dataBase.toLocaleLowerCase()}`); searchParams.append("e", "quarkus-hibernate-orm-panache"); } if (quarkusVersion) { searchParams.append("S", `io.quarkus.platform:${quarkusVersion}`); } if (packageManager === package_manager_enum_1.PackageManager.gradle) { searchParams.append("b", "GRADLE"); } const paramsList = []; searchParams.append("v", "1.0.0"); for (const element of searchParams.entries()) { paramsList.push(`${element[0]}=${element[1]}`); } console.log(`https://code.quarkus.io/d?${paramsList.join("&")}`); return got_1.default.stream("https://code.quarkus.io/d?", { searchParams: searchParams, headers: { "user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36", }, retry: 5, }).on("error", err => { throw new Error(`Failed to get Quarkus code base. ${err.message}`); }); } getPublicVersions() { return new Promise((resolve, reject) => { const url = new URL(properties.quarkus["supported-versions-endpoint"]); const options = { hostname: url.hostname, port: 443, path: url.pathname, method: "GET", headers: { Accept: "application/json", "User-Agent": string_utils_1.StringUtils.getUserAgent(), }, }; const req = https.request(options, res => { res.setEncoding("utf8"); let body = ""; res.on("data", d => { body += d; }); res.on("end", () => { if (res.statusCode === 200) resolve(JSON.parse(body)); reject(new Error(`Error: ${res.statusMessage}`)); }); }); req.on("error", error => { reject(error); }); req.end(); }); } static get instance() { if (!this._instance) this._instance = new this(); return this._instance; } } exports.CodeQuarkusService = CodeQuarkusService;