[Gradle, JS] Use transient for compilation npm resolver
This commit is contained in:
committed by
Alexander Likhachev
parent
60da9281a2
commit
cd0dfd6fa9
+9
-8
@@ -125,17 +125,18 @@ fun fromSrcPackageJson(packageJson: File?): PackageJson? =
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun packageJson(
|
fun packageJson(
|
||||||
npmProject: NpmProject,
|
name: String,
|
||||||
|
version: String,
|
||||||
|
main: String,
|
||||||
npmDependencies: Collection<NpmDependency>
|
npmDependencies: Collection<NpmDependency>
|
||||||
): PackageJson {
|
): PackageJson {
|
||||||
val compilation = npmProject.compilation
|
|
||||||
|
|
||||||
val packageJson = PackageJson(
|
val packageJson = PackageJson(
|
||||||
npmProject.name,
|
name,
|
||||||
fixSemver(compilation.target.project.version.toString())
|
fixSemver(version)
|
||||||
)
|
)
|
||||||
|
|
||||||
packageJson.main = npmProject.main
|
packageJson.main = main
|
||||||
|
|
||||||
val dependencies = mutableMapOf<String, String>()
|
val dependencies = mutableMapOf<String, String>()
|
||||||
|
|
||||||
@@ -154,9 +155,9 @@ fun packageJson(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
compilation.packageJsonHandlers.forEach {
|
// compilation.packageJsonHandlers.forEach {
|
||||||
it(packageJson)
|
// it(packageJson)
|
||||||
}
|
// }
|
||||||
|
|
||||||
return packageJson
|
return packageJson
|
||||||
}
|
}
|
||||||
|
|||||||
+18
-18
@@ -70,24 +70,24 @@ constructor(
|
|||||||
fun resolve() {
|
fun resolve() {
|
||||||
val compilation = npmProject.compilation
|
val compilation = npmProject.compilation
|
||||||
|
|
||||||
packageJson(npmProject, realExternalDependencies).let { packageJson ->
|
// packageJson(npmProject, realExternalDependencies).let { packageJson ->
|
||||||
packageJson.main = "${npmProject.name}.js"
|
// packageJson.main = "${npmProject.name}.js"
|
||||||
|
//
|
||||||
if (compilation is KotlinJsIrCompilation) {
|
// if (compilation is KotlinJsIrCompilation) {
|
||||||
packageJson.types = "${npmProject.name}.d.ts"
|
// packageJson.types = "${npmProject.name}.d.ts"
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
packageJson.apply {
|
// packageJson.apply {
|
||||||
listOf(
|
// listOf(
|
||||||
dependencies,
|
// dependencies,
|
||||||
devDependencies,
|
// devDependencies,
|
||||||
peerDependencies,
|
// peerDependencies,
|
||||||
optionalDependencies
|
// optionalDependencies
|
||||||
).forEach { it.processDependencies() }
|
// ).forEach { it.processDependencies() }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
packageJson.saveTo(this@PublicPackageJsonTask.packageJsonFile)
|
// packageJson.saveTo(this@PublicPackageJsonTask.packageJsonFile)
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun MutableMap<String, String>.processDependencies() {
|
private fun MutableMap<String, String>.processDependencies() {
|
||||||
|
|||||||
+8
-3
@@ -16,12 +16,17 @@ import org.jetbrains.kotlin.gradle.targets.js.npm.PackageJson
|
|||||||
*/
|
*/
|
||||||
class KotlinCompilationNpmResolution(
|
class KotlinCompilationNpmResolution(
|
||||||
@Transient
|
@Transient
|
||||||
val project: Project,
|
private val _project: Project?,
|
||||||
@Transient
|
@Transient
|
||||||
val npmProject: NpmProject,
|
private val _npmProject: NpmProject?,
|
||||||
val internalDependencies: Collection<KotlinCompilationNpmResolution>,
|
val internalDependencies: Collection<KotlinCompilationNpmResolution>,
|
||||||
val internalCompositeDependencies: Collection<GradleNodeModule>,
|
val internalCompositeDependencies: Collection<GradleNodeModule>,
|
||||||
val externalGradleDependencies: Collection<GradleNodeModule>,
|
val externalGradleDependencies: Collection<GradleNodeModule>,
|
||||||
val externalNpmDependencies: Collection<NpmDependency>,
|
val externalNpmDependencies: Collection<NpmDependency>,
|
||||||
val packageJson: PackageJson
|
val packageJson: PackageJson
|
||||||
)
|
) {
|
||||||
|
val project
|
||||||
|
get() = _project!!
|
||||||
|
val npmProject
|
||||||
|
get() = _npmProject!!
|
||||||
|
}
|
||||||
+25
-7
@@ -62,6 +62,22 @@ internal class KotlinCompilationNpmResolver(
|
|||||||
@Transient
|
@Transient
|
||||||
val npmProject = compilation.npmProject
|
val npmProject = compilation.npmProject
|
||||||
|
|
||||||
|
val npmName by lazy {
|
||||||
|
npmProject.name
|
||||||
|
}
|
||||||
|
|
||||||
|
val npmVersion by lazy {
|
||||||
|
project.version.toString()
|
||||||
|
}
|
||||||
|
|
||||||
|
val npmMain by lazy {
|
||||||
|
npmProject.main
|
||||||
|
}
|
||||||
|
|
||||||
|
val prePackageJsonFile by lazy {
|
||||||
|
npmProject.prePackageJsonFile
|
||||||
|
}
|
||||||
|
|
||||||
val nodeJs get() = resolver.nodeJs
|
val nodeJs get() = resolver.nodeJs
|
||||||
|
|
||||||
val target get() = compilation.target
|
val target get() = compilation.target
|
||||||
@@ -405,7 +421,9 @@ internal class KotlinCompilationNpmResolver(
|
|||||||
val allNpmDependencies = externalNpmDependencies/* + toolsNpmDependencies*/
|
val allNpmDependencies = externalNpmDependencies/* + toolsNpmDependencies*/
|
||||||
|
|
||||||
val packageJson = packageJson(
|
val packageJson = packageJson(
|
||||||
npmProject,
|
npmName,
|
||||||
|
npmVersion,
|
||||||
|
npmMain,
|
||||||
allNpmDependencies
|
allNpmDependencies
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -421,17 +439,17 @@ internal class KotlinCompilationNpmResolver(
|
|||||||
packageJson.dependencies[it.name] = fileVersion(it.path)
|
packageJson.dependencies[it.name] = fileVersion(it.path)
|
||||||
}
|
}
|
||||||
|
|
||||||
compilation.packageJsonHandlers.forEach {
|
// compilation.packageJsonHandlers.forEach {
|
||||||
it(packageJson)
|
// it(packageJson)
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (!skipWriting) {
|
if (!skipWriting) {
|
||||||
packageJson.saveTo(npmProject.prePackageJsonFile)
|
packageJson.saveTo(prePackageJsonFile)
|
||||||
}
|
}
|
||||||
|
|
||||||
return KotlinCompilationNpmResolution(
|
return KotlinCompilationNpmResolution(
|
||||||
project,
|
if (compilation != null) project else null,
|
||||||
npmProject,
|
if (compilation != null) npmProject else null,
|
||||||
resolvedInternalDependencies,
|
resolvedInternalDependencies,
|
||||||
compositeDependencies,
|
compositeDependencies,
|
||||||
importedExternalGradleDependencies,
|
importedExternalGradleDependencies,
|
||||||
|
|||||||
Reference in New Issue
Block a user