[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,
version: String,
main: String,
npmDependencies: Collection<NpmDependencyDeclaration>
npmDependencies: Collection<NpmDependencyDeclaration>,
packageJsonHandlers: List<PackageJson.() -> Unit>
): PackageJson {
val packageJson = PackageJson(
@@ -155,9 +156,9 @@ internal fun packageJson(
}
}
// compilation.packageJsonHandlers.forEach {
// it(packageJson)
// }
packageJsonHandlers.forEach {
it(packageJson)
}
return packageJson
}
@@ -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<String, Any?> by lazy {
PackageJson(fakePackageJsonValue, fakePackageJsonValue)
val packageJsonCustomFields: Map<String, Any?>
get() = PackageJson(fakePackageJsonValue, fakePackageJsonValue)
.apply {
compilation.packageJsonHandlers.forEach { it() }
packageJsonHandlers.forEach { it() }
}.customFields
}
@get:Nested
internal val externalDependencies: Collection<NpmDependencyDeclaration>
@@ -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) {
@@ -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>? =
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)