@nxrocks/nx-quarkus
Version:
Nx Plugin to generate, run, package, build (and more) Quarkus projects inside your Nx workspace
65 lines • 3.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DEFAULT_QUARKUS_INITIALIZR_URL = void 0;
exports.runQuarkusPluginCommand = runQuarkusPluginCommand;
exports.buildQuarkusDownloadUrl = buildQuarkusDownloadUrl;
exports.isQuarkusProject = isQuarkusProject;
exports.fetchQuarkusExtensions = fetchQuarkusExtensions;
const index_1 = require("../index");
const common_jvm_1 = require("@nxrocks/common-jvm");
const constants_1 = require("../core/constants");
const node_fetch_1 = require("node-fetch");
const getBuilder = (cwd) => {
if ((0, common_jvm_1.hasMavenProject)(cwd))
return constants_1.MAVEN_BUILDER;
if ((0, common_jvm_1.hasGradleProject)(cwd))
return constants_1.GRADLE_BUILDER;
throw new Error(`Cannot determine the build system. No 'pom.xml' nor 'build.gradle' file found under '${cwd}'`);
};
exports.DEFAULT_QUARKUS_INITIALIZR_URL = 'https://code.quarkus.io';
function runQuarkusPluginCommand(commandAlias, params, options = { cwd: process.cwd(), ignoreWrapper: false, runFromParentModule: false }) {
return (0, common_jvm_1.runBuilderCommand)(commandAlias, getBuilder, params, options);
}
function buildQuarkusDownloadUrl(options) {
const params = [
{ key: 'b', value: options.buildSystem },
{ key: 'j', value: options.javaVersion },
{ key: 'g', value: options.groupId },
{ key: 'a', value: options.artifactId },
{ key: 'v', value: options.version },
{ key: 'ne', value: options.skipCodeSamples },
].filter((e) => typeof e.value !== 'undefined');
const extensions = options.projectExtensions
.map((ext) => `e=${ext.replace('io.quarkus:quarkus-', '')}`)
.join('&');
const queryParams = params
.map((e) => `${e.key}=${e.value}`)
.join('&')
.concat(...(extensions?.length ? ['&', extensions] : []));
return `${options.quarkusInitializerUrl}/d?${queryParams}`;
}
function isQuarkusProject(project) {
if ((0, common_jvm_1.hasMultiModuleMavenProject)(project.root) || (0, common_jvm_1.hasMultiModuleGradleProject)(project.root))
return true;
if ((0, common_jvm_1.isMavenProject)(project)) {
return (0, common_jvm_1.checkProjectBuildFileContains)(project, {
fragments: [
'<quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>',
],
});
}
if ((0, common_jvm_1.isGradleProject)(project)) {
return (0, common_jvm_1.checkProjectBuildFileContains)(project, {
fragments: [
'implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}")',
'implementation(enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}"))',
],
});
}
return false;
}
async function fetchQuarkusExtensions(options) {
const response = await (0, node_fetch_1.default)(`${options.quarkusInitializerUrl}/api/extensions`, (0, common_jvm_1.getCommonHttpHeaders)(index_1.NX_QUARKUS_PKG, options.quarkusInitializerUrl, options.proxyUrl));
return await response.json() ?? [];
}
//# sourceMappingURL=quarkus-utils.js.map