[Gradle, JS] Simplify creation of public package json task

This commit is contained in:
Ilya Goncharov
2020-07-02 19:20:49 +03:00
parent a2d5cda716
commit 5c968acb13
2 changed files with 7 additions and 4 deletions
@@ -10,7 +10,7 @@ import org.gradle.api.tasks.Input
import org.gradle.api.tasks.Nested import org.gradle.api.tasks.Nested
import org.gradle.api.tasks.OutputFile import org.gradle.api.tasks.OutputFile
import org.gradle.api.tasks.TaskAction import org.gradle.api.tasks.TaskAction
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject.Companion.PACKAGE_JSON import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject.Companion.PACKAGE_JSON
import org.jetbrains.kotlin.gradle.utils.property import org.jetbrains.kotlin.gradle.utils.property
import java.io.File import java.io.File
@@ -19,10 +19,13 @@ import javax.inject.Inject
open class PublicPackageJsonTask open class PublicPackageJsonTask
@Inject @Inject
constructor( constructor(
private val nodeJs: NodeJsRootExtension, compilation: KotlinJsCompilation
private val npmProject: NpmProject
) : DefaultTask() { ) : DefaultTask() {
private val npmProject = compilation.npmProject
private val nodeJs = npmProject.nodeJs
private val compilationResolution private val compilationResolution
get() = nodeJs.npmResolutionManager.requireInstalled()[project][npmProject.compilation] get() = nodeJs.npmResolutionManager.requireInstalled()[project][npmProject.compilation]
@@ -54,7 +54,7 @@ internal class KotlinCompilationNpmResolver(
val publicPackageJsonTaskHolder: TaskProvider<PublicPackageJsonTask> = val publicPackageJsonTaskHolder: TaskProvider<PublicPackageJsonTask> =
project.registerTask<PublicPackageJsonTask>( project.registerTask<PublicPackageJsonTask>(
npmProject.publicPackageJsonTaskName, npmProject.publicPackageJsonTaskName,
listOf(nodeJs, npmProject) listOf(compilation)
) { ) {
it.skipOnEmptyNpmDependencies = true it.skipOnEmptyNpmDependencies = true
it.dependsOn(nodeJs.npmInstallTaskProvider) it.dependsOn(nodeJs.npmInstallTaskProvider)