[Gradle, JS] First steps for npm dependencies in root
This commit is contained in:
+23
@@ -7,13 +7,26 @@ package org.jetbrains.kotlin.gradle.targets.js
|
||||
|
||||
import org.gradle.api.Plugin
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.plugins.ExtensionAware
|
||||
import org.gradle.api.plugins.JavaBasePlugin
|
||||
import org.gradle.api.reflect.TypeOf.typeOf
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJsProjectExtension
|
||||
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
|
||||
import org.jetbrains.kotlin.gradle.plugin.configureDefaultVersionsResolutionStrategy
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsSingleTargetPreset
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmDependency
|
||||
import org.jetbrains.kotlin.gradle.utils.checkGradleCompatibility
|
||||
|
||||
interface Npm : (String) -> NpmDependency
|
||||
|
||||
fun Npm(lambda: (name: String) -> NpmDependency): Npm {
|
||||
return object : Npm {
|
||||
override fun invoke(name: String): NpmDependency {
|
||||
return lambda(name)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
open class KotlinJsPlugin(
|
||||
private val kotlinPluginVersion: String
|
||||
) : Plugin<Project> {
|
||||
@@ -26,6 +39,16 @@ open class KotlinJsPlugin(
|
||||
|
||||
checkGradleCompatibility()
|
||||
|
||||
val npm = Npm { name: String -> NpmDependency(project, null, name, "*") }
|
||||
|
||||
(project.dependencies as ExtensionAware)
|
||||
.extensions
|
||||
.add(
|
||||
typeOf<Npm>(npm::class.java),
|
||||
"npm",
|
||||
npm
|
||||
)
|
||||
|
||||
val kotlinExtension = project.kotlinExtension as KotlinJsProjectExtension
|
||||
configureDefaultVersionsResolutionStrategy(project, kotlinPluginVersion)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user