UNPKG

@nxrocks/nx-spring-boot

Version:

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

68 lines 3.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DEFAULT_SPRING_INITIALIZR_URL = void 0; exports.runBootPluginCommand = runBootPluginCommand; exports.buildBootDownloadUrl = buildBootDownloadUrl; exports.isBootProject = isBootProject; exports.fetchBootDependencies = fetchBootDependencies; const querystring_1 = require("querystring"); 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_SPRING_INITIALIZR_URL = 'https://start.spring.io'; function runBootPluginCommand(commandAlias, params, options = { cwd: process.cwd(), ignoreWrapper: false, runFromParentModule: false }) { return (0, common_jvm_1.runBuilderCommand)(commandAlias, getBuilder, params, options); } function buildBootDownloadUrl(options) { const params = [ { key: 'type', value: options.buildSystem }, { key: 'language', value: options.language }, { key: 'name', value: options.projectName }, { key: 'groupId', value: options.groupId }, { key: 'artifactId', value: options.artifactId }, { key: 'version', value: options.version }, { key: 'packageName', value: options.packageName }, { key: 'javaVersion', value: options.javaVersion }, { key: 'packaging', value: options.packaging }, { key: 'dependencies', value: options.projectDependencies.join(',') }, { key: 'description', value: options.description ? (0, querystring_1.escape)(options.description) : null, }, { key: 'bootVersion', value: options.bootVersion }, ].filter((e) => !!e.value); const queryParams = params.map((e) => `${e.key}=${e.value}`).join('&'); return `${options.springInitializerUrl}/starter.zip?${queryParams}`; } function isBootProject(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: ['<artifactId>spring-boot-starter-parent</artifactId>'], }); } if ((0, common_jvm_1.isGradleProject)(project)) { return (0, common_jvm_1.checkProjectBuildFileContains)(project, { fragments: [ "id 'io.spring.dependency-management'", 'id("io.spring.dependency-management"', ], }); } return false; } async function fetchBootDependencies(options) { const response = await (0, node_fetch_1.default)(`${options.springInitializerUrl}/dependencies`, (0, common_jvm_1.getCommonHttpHeaders)(index_1.NX_SPRING_BOOT_PKG, options.springInitializerUrl, options.proxyUrl)); return ((await response.json())?.dependencies ?? {}); } //# sourceMappingURL=boot-utils.js.map