[Gradle, JS] Return back package.json handlers

This commit is contained in:
Alexander Likhachev
2021-03-16 18:20:24 +03:00
parent 39edcb0f29
commit 072492386d
3 changed files with 20 additions and 14 deletions
@@ -128,7 +128,8 @@ internal fun packageJson(
name: String, name: String,
version: String, version: String,
main: String, main: String,
npmDependencies: Collection<NpmDependencyDeclaration> npmDependencies: Collection<NpmDependencyDeclaration>,
packageJsonHandlers: List<PackageJson.() -> Unit>
): PackageJson { ): PackageJson {
val packageJson = PackageJson( val packageJson = PackageJson(
@@ -155,9 +156,9 @@ internal fun packageJson(
} }
} }
// compilation.packageJsonHandlers.forEach { packageJsonHandlers.forEach {
// it(packageJson) it(packageJson)
// } }
return packageJson return packageJson
} }
@@ -35,15 +35,14 @@ constructor(
logger logger
)[projectPath][compilationName] )[projectPath][compilationName]
private val packageJsonHandlers = compilation.packageJsonHandlers
// TODO: is map contains only serializable values?
@get:Input @get:Input
val packageJsonCustomFields: Map<String, Any?> by lazy { val packageJsonCustomFields: Map<String, Any?>
PackageJson(fakePackageJsonValue, fakePackageJsonValue) get() = PackageJson(fakePackageJsonValue, fakePackageJsonValue)
.apply { .apply {
compilation.packageJsonHandlers.forEach { it() } packageJsonHandlers.forEach { it() }
}.customFields }.customFields
}
@get:Nested @get:Nested
internal val externalDependencies: Collection<NpmDependencyDeclaration> internal val externalDependencies: Collection<NpmDependencyDeclaration>
@@ -76,7 +75,7 @@ constructor(
@TaskAction @TaskAction
fun resolve() { 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" packageJson.main = "${npmProject.name}.js"
if (isJrIrCompilation) { if (isJrIrCompilation) {
@@ -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.tasks.registerTask
import org.jetbrains.kotlin.gradle.utils.CompositeProjectComponentArtifactMetadata import org.jetbrains.kotlin.gradle.utils.CompositeProjectComponentArtifactMetadata
import org.jetbrains.kotlin.gradle.utils.`is` import org.jetbrains.kotlin.gradle.utils.`is`
import org.jetbrains.kotlin.gradle.utils.getValue
import org.jetbrains.kotlin.gradle.utils.topRealPath import org.jetbrains.kotlin.gradle.utils.topRealPath
import java.io.File import java.io.File
import java.io.Serializable import java.io.Serializable
@@ -92,6 +93,10 @@ internal class KotlinCompilationNpmResolver(
val project get() = target.project val project get() = target.project
private val packageJsonHandlers by project.provider {
compilation.packageJsonHandlers
}
@Transient @Transient
val packageJsonTaskHolder: TaskProvider<KotlinPackageJsonTask>? = val packageJsonTaskHolder: TaskProvider<KotlinPackageJsonTask>? =
KotlinPackageJsonTask.create(compilation) KotlinPackageJsonTask.create(compilation)
@@ -447,7 +452,8 @@ internal class KotlinCompilationNpmResolver(
npmName, npmName,
npmVersion, npmVersion,
npmMain, npmMain,
allNpmDependencies allNpmDependencies,
packageJsonHandlers
) )
compositeDependencies.forEach { compositeDependencies.forEach {
@@ -462,9 +468,9 @@ internal class KotlinCompilationNpmResolver(
packageJson.dependencies[it.name] = fileVersion(it.path) packageJson.dependencies[it.name] = fileVersion(it.path)
} }
// compilation.packageJsonHandlers.forEach { packageJsonHandlers.forEach {
// it(packageJson) it(packageJson)
// } }
if (!skipWriting) { if (!skipWriting) {
packageJson.saveTo(prePackageJsonFile) packageJson.saveTo(prePackageJsonFile)