[Gradle, JS] Not rewrite package.json if json was not changed

This commit is contained in:
Ilya Goncharov
2021-06-10 15:31:33 +03:00
committed by TeamCityServer
parent 6219eb24c0
commit e3c291db27
3 changed files with 12 additions and 8 deletions
@@ -5,12 +5,8 @@
package org.jetbrains.kotlin.gradle.targets.js.npm
import com.google.gson.ExclusionStrategy
import com.google.gson.FieldAttributes
import com.google.gson.Gson
import com.google.gson.GsonBuilder
import com.google.gson.*
import org.gradle.api.GradleException
import org.gradle.api.tasks.Input
import org.jetbrains.kotlin.gradle.internal.ensureParentDirsCreated
import java.io.File
import java.io.Serializable
@@ -109,13 +105,21 @@ class PackageJson(
packageJsonFile.ensureParentDirsCreated()
val jsonTree = gson.toJsonTree(this)
val previous = if (packageJsonFile.exists()) {
packageJsonFile.reader().use {
JsonParser.parseReader(it)
}
} else null
customFields
.forEach { (key, value) ->
val valueElement = gson.toJsonTree(value)
jsonTree.asJsonObject.add(key, valueElement)
}
packageJsonFile.writer().use {
gson.toJson(jsonTree, it)
if (jsonTree != previous) {
packageJsonFile.writer().use {
gson.toJson(jsonTree, it)
}
}
}
}
@@ -6,7 +6,6 @@
package org.jetbrains.kotlin.gradle.targets.js.yarn
import com.google.gson.Gson
import org.gradle.api.Project
import org.gradle.api.logging.Logger
import org.jetbrains.kotlin.gradle.targets.js.npm.GradleNodeModule
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.gradle.targets.js.yarn
import com.google.gson.Gson
import org.gradle.api.Project
import org.gradle.api.logging.Logger
import org.gradle.internal.service.ServiceRegistry