UNPKG

@nxrocks/nx-quarkus

Version:

Nx Plugin to generate, run, package, build (and more) Quarkus projects inside your Nx workspace

98 lines 4.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getProjectTypeAndTargetsFromFile = getProjectTypeAndTargetsFromFile; exports.getProjectTypeAndTargetsFromOptions = getProjectTypeAndTargetsFromOptions; const devkit_1 = require("@nx/devkit"); const common_jvm_1 = require("@nxrocks/common-jvm"); const __1 = require(".."); const plugin_1 = require("../graph/plugin"); function getProjectTypeAndTargetsFromFile(projectRootFile, options) { const { root, name } = (0, common_jvm_1.getNameAndRoot)(projectRootFile); const buildSystem = (0, common_jvm_1.hasMavenProject)(root) ? 'MAVEN' : name.endsWith('.kts') ? 'GRADLE_KOTLIN_DSL' : 'GRADLE'; const runFromParentModule = !(0, common_jvm_1.hasMavenWrapper)(root) && !(0, common_jvm_1.hasGradleWrapper)(root); let skipFormat = true; let projectType = 'library'; if (buildSystem === 'MAVEN') { skipFormat = (0, common_jvm_1.hasMavenPlugin)(root, common_jvm_1.SPOTLESS_MAVEN_PLUGIN_GROUP_ID, common_jvm_1.SPOTLESS_MAVEN_PLUGIN_ARTIFACT_ID); projectType = (0, common_jvm_1.hasMavenPlugin)(root, '${quarkus.platform.group-id}', 'quarkus-maven-plugin') ? 'application' : 'library'; } else { const projectContent = (0, common_jvm_1.getProjectFileContent)({ root }, `build${(0, common_jvm_1.getGradleBuildFilesExtension)({ root })}`); skipFormat = (0, common_jvm_1.hasGradlePlugin)(projectContent, common_jvm_1.SPOTLESS_GRADLE_PLUGIN_ID); projectType = (0, common_jvm_1.getGradlePlugin)(projectContent, 'io.quarkus')?.applied === false ? 'library' : 'application'; } return getProjectTypeAndTargets(root, projectType, buildSystem, runFromParentModule, skipFormat, (0, plugin_1.normalizePluginOptions)(options)); } function getProjectTypeAndTargetsFromOptions(options) { return getProjectTypeAndTargets(options.projectRoot, options.projectType, options.buildSystem, !options.keepProjectLevelWrapper, options.skipFormat, (0, plugin_1.normalizePluginOptions)()); } function getProjectTypeAndTargets(projectRoot, projectType, buildSystem, runFromParentModule, skipFormat, pluginOptions) { const commands = [ pluginOptions.buildTargetName, pluginOptions.installTargetName, pluginOptions.testTargetName, pluginOptions.cleanTargetName, ]; if (!skipFormat) { commands.push(pluginOptions.formatTargetName, pluginOptions.applyFormatTargetName, pluginOptions.checkFormatTargetName); } const appOnlyCommands = [ pluginOptions.devTargetName, pluginOptions.serveTargetName, pluginOptions.remoteDevTargetName, pluginOptions.packageTargetName, pluginOptions.addExtensionTargetName, pluginOptions.listExtensionsTargetName, ]; if (projectType === 'application') { //only 'application' projects should have 'quarkus' related commands commands.push(...appOnlyCommands); } const targets = {}; for (const command of commands) { targets[command] = { executor: `${__1.NX_QUARKUS_PKG}:${command}`, options: { root: projectRoot, runFromParentModule, }, ...([ pluginOptions.buildTargetName, pluginOptions.installTargetName, ].includes(command) ? { cache: true } : {}), ...([ pluginOptions.buildTargetName, pluginOptions.installTargetName, pluginOptions.devTargetName, pluginOptions.remoteDevTargetName, pluginOptions.serveTargetName, ].includes(command) ? { dependsOn: [`^${pluginOptions.installTargetName}`] } : {}), ...([ pluginOptions.buildTargetName, pluginOptions.installTargetName, pluginOptions.testTargetName, ].includes(command) ? { outputs: [ (0, devkit_1.joinPathFragments)('{workspaceRoot}', projectRoot, buildSystem === 'MAVEN' ? 'target' : 'build'), ], } : {}), }; } return { projectType, targets }; } //# sourceMappingURL=plugin-utils.js.map