From 072492386d5acdf51d12e2a15eaa52f7fffc8ea4 Mon Sep 17 00:00:00 2001 From: Alexander Likhachev Date: Tue, 16 Mar 2021 18:20:24 +0300 Subject: [PATCH] [Gradle, JS] Return back package.json handlers --- .../kotlin/gradle/targets/js/npm/PackageJson.kt | 9 +++++---- .../gradle/targets/js/npm/PublicPackageJsonTask.kt | 11 +++++------ .../npm/resolver/KotlinCompilationNpmResolver.kt | 14 ++++++++++---- 3 files changed, 20 insertions(+), 14 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/PackageJson.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/PackageJson.kt index 5807b96f2b8..f87c2bc2aad 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/PackageJson.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/PackageJson.kt @@ -128,7 +128,8 @@ internal fun packageJson( name: String, version: String, main: String, - npmDependencies: Collection + npmDependencies: Collection, + packageJsonHandlers: List Unit> ): PackageJson { val packageJson = PackageJson( @@ -155,9 +156,9 @@ internal fun packageJson( } } -// compilation.packageJsonHandlers.forEach { -// it(packageJson) -// } + packageJsonHandlers.forEach { + it(packageJson) + } return packageJson } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/PublicPackageJsonTask.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/PublicPackageJsonTask.kt index bb1a4e8663c..3a6c97b1b5f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/PublicPackageJsonTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/PublicPackageJsonTask.kt @@ -35,15 +35,14 @@ constructor( logger )[projectPath][compilationName] + private val packageJsonHandlers = compilation.packageJsonHandlers - // TODO: is map contains only serializable values? @get:Input - val packageJsonCustomFields: Map by lazy { - PackageJson(fakePackageJsonValue, fakePackageJsonValue) + val packageJsonCustomFields: Map + get() = PackageJson(fakePackageJsonValue, fakePackageJsonValue) .apply { - compilation.packageJsonHandlers.forEach { it() } + packageJsonHandlers.forEach { it() } }.customFields - } @get:Nested internal val externalDependencies: Collection @@ -76,7 +75,7 @@ constructor( @TaskAction fun resolve() { - packageJson(npmProject.name, projectVersion, npmProject.main, externalDependencies).let { packageJson -> + packageJson(npmProject.name, projectVersion, npmProject.main, externalDependencies, packageJsonHandlers).let { packageJson -> packageJson.main = "${npmProject.name}.js" if (isJrIrCompilation) { diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt index d903def2657..9e593933f1f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt @@ -38,6 +38,7 @@ import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinPackageJsonTask import org.jetbrains.kotlin.gradle.tasks.registerTask import org.jetbrains.kotlin.gradle.utils.CompositeProjectComponentArtifactMetadata import org.jetbrains.kotlin.gradle.utils.`is` +import org.jetbrains.kotlin.gradle.utils.getValue import org.jetbrains.kotlin.gradle.utils.topRealPath import java.io.File import java.io.Serializable @@ -92,6 +93,10 @@ internal class KotlinCompilationNpmResolver( val project get() = target.project + private val packageJsonHandlers by project.provider { + compilation.packageJsonHandlers + } + @Transient val packageJsonTaskHolder: TaskProvider? = KotlinPackageJsonTask.create(compilation) @@ -447,7 +452,8 @@ internal class KotlinCompilationNpmResolver( npmName, npmVersion, npmMain, - allNpmDependencies + allNpmDependencies, + packageJsonHandlers ) compositeDependencies.forEach { @@ -462,9 +468,9 @@ internal class KotlinCompilationNpmResolver( packageJson.dependencies[it.name] = fileVersion(it.path) } -// compilation.packageJsonHandlers.forEach { -// it(packageJson) -// } + packageJsonHandlers.forEach { + it(packageJson) + } if (!skipWriting) { packageJson.saveTo(prePackageJsonFile)