diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinNpmDependencyHandler.kt b/libraries/tools/kotlin-gradle-plugin-api/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinNpmDependencyHandler.kt index f9a87eecd81..f8b95978372 100644 --- a/libraries/tools/kotlin-gradle-plugin-api/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinNpmDependencyHandler.kt +++ b/libraries/tools/kotlin-gradle-plugin-api/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinNpmDependencyHandler.kt @@ -12,23 +12,108 @@ interface KotlinNpmDependencyHandler { @Deprecated("Declaring NPM dependency without version is forbidden") fun npm(name: String): Dependency - fun npm(name: String, version: String): Dependency + fun npm( + name: String, + version: String, + generateKotlinExternals: Boolean + ): Dependency - fun npm(name: String, directory: File): Dependency + fun npm( + name: String, + version: String + ): Dependency = npm( + name = name, + version = version, + generateKotlinExternals = DEFAULT_GENERATE_KOTLIN_EXTERNALS + ) - fun npm(directory: File): Dependency + fun npm( + name: String, + directory: File, + generateKotlinExternals: Boolean + ): Dependency - fun devNpm(name: String, version: String): Dependency + fun npm( + name: String, + directory: File + ): Dependency = npm( + name = name, + directory = directory, + generateKotlinExternals = DEFAULT_GENERATE_KOTLIN_EXTERNALS + ) - fun devNpm(name: String, directory: File): Dependency + fun npm( + directory: File, + generateKotlinExternals: Boolean + ): Dependency - fun devNpm(directory: File): Dependency + fun npm( + directory: File + ): Dependency = npm( + directory = directory, + generateKotlinExternals = DEFAULT_GENERATE_KOTLIN_EXTERNALS + ) - fun optionalNpm(name: String, version: String): Dependency + fun devNpm( + name: String, + version: String + ): Dependency - fun optionalNpm(name: String, directory: File): Dependency + fun devNpm( + name: String, + directory: File + ): Dependency - fun optionalNpm(directory: File): Dependency + fun devNpm( + directory: File + ): Dependency - fun peerNpm(name: String, version: String): Dependency -} \ No newline at end of file + fun optionalNpm( + name: String, + version: String, + generateKotlinExternals: Boolean + ): Dependency + + fun optionalNpm( + name: String, + version: String + ): Dependency = optionalNpm( + name = name, + version = version, + generateKotlinExternals = DEFAULT_GENERATE_KOTLIN_EXTERNALS + ) + + fun optionalNpm( + name: String, + directory: File, + generateKotlinExternals: Boolean + ): Dependency + + fun optionalNpm( + name: String, + directory: File + ): Dependency = optionalNpm( + name = name, + directory = directory, + generateKotlinExternals = DEFAULT_GENERATE_KOTLIN_EXTERNALS + ) + + fun optionalNpm( + directory: File, + generateKotlinExternals: Boolean + ): Dependency + + fun optionalNpm( + directory: File + ): Dependency = optionalNpm( + directory = directory, + generateKotlinExternals = DEFAULT_GENERATE_KOTLIN_EXTERNALS + ) + + fun peerNpm( + name: String, + version: String + ): Dependency +} + +const val DEFAULT_GENERATE_KOTLIN_EXTERNALS = true \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/DefaultKotlinDependencyHandler.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/DefaultKotlinDependencyHandler.kt index 33d29a5163f..50fea85cd3c 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/DefaultKotlinDependencyHandler.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/DefaultKotlinDependencyHandler.kt @@ -91,27 +91,44 @@ class DefaultKotlinDependencyHandler( override fun npm(name: String): Dependency = onlyNameNpmDependency(name) - override fun npm(name: String, version: String): NpmDependency = + override fun npm( + name: String, + version: String, + generateKotlinExternals: Boolean + ): NpmDependency = NpmDependency( project = project, name = name, - version = version + version = version, + generateKotlinExternals = generateKotlinExternals ) - override fun npm(name: String, directory: File): NpmDependency = + override fun npm( + name: String, + directory: File, + generateKotlinExternals: Boolean + ): NpmDependency = directoryNpmDependency( - name, - directory, - NpmDependency.Scope.NORMAL + name = name, + directory = directory, + scope = NpmDependency.Scope.NORMAL, + generateKotlinExternals = generateKotlinExternals ) - override fun npm(directory: File): NpmDependency = + override fun npm( + directory: File, + generateKotlinExternals: Boolean + ): NpmDependency = npm( name = moduleName(directory), - directory = directory + directory = directory, + generateKotlinExternals = generateKotlinExternals ) - override fun devNpm(name: String, version: String): NpmDependency = + override fun devNpm( + name: String, + version: String + ): NpmDependency = NpmDependency( project = project, name = name, @@ -121,9 +138,10 @@ class DefaultKotlinDependencyHandler( override fun devNpm(name: String, directory: File): NpmDependency = directoryNpmDependency( - name, - directory, - NpmDependency.Scope.DEV + name = name, + directory = directory, + scope = NpmDependency.Scope.DEV, + generateKotlinExternals = false ) override fun devNpm(directory: File): NpmDependency = @@ -132,28 +150,45 @@ class DefaultKotlinDependencyHandler( directory = directory ) - override fun optionalNpm(name: String, version: String): NpmDependency = + override fun optionalNpm( + name: String, + version: String, + generateKotlinExternals: Boolean + ): NpmDependency = NpmDependency( project = project, name = name, version = version, - scope = NpmDependency.Scope.OPTIONAL + scope = NpmDependency.Scope.OPTIONAL, + generateKotlinExternals = generateKotlinExternals ) - override fun optionalNpm(name: String, directory: File): NpmDependency = + override fun optionalNpm( + name: String, + directory: File, + generateKotlinExternals: Boolean + ): NpmDependency = directoryNpmDependency( name, directory, - NpmDependency.Scope.OPTIONAL + NpmDependency.Scope.OPTIONAL, + generateKotlinExternals = generateKotlinExternals ) - override fun optionalNpm(directory: File): NpmDependency = + override fun optionalNpm( + directory: File, + generateKotlinExternals: Boolean + ): NpmDependency = optionalNpm( name = moduleName(directory), - directory = directory + directory = directory, + generateKotlinExternals = generateKotlinExternals ) - override fun peerNpm(name: String, version: String): NpmDependency = + override fun peerNpm( + name: String, + version: String + ): NpmDependency = NpmDependency( project = project, name = name, @@ -164,12 +199,14 @@ class DefaultKotlinDependencyHandler( private fun directoryNpmDependency( name: String, directory: File, - scope: NpmDependency.Scope + scope: NpmDependency.Scope, + generateKotlinExternals: Boolean ): NpmDependency = directoryNpmDependency( - project, - name, - directory, - scope + project = project, + name = name, + directory = directory, + scope = scope, + generateKotlinExternals = generateKotlinExternals ) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependency.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependency.kt index ff97c9e8a05..e9778042c30 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependency.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependency.kt @@ -25,7 +25,7 @@ data class NpmDependency( private val name: String, private val version: String, val scope: Scope = Scope.NORMAL, - val generateKotlinExternals: Boolean = true + val generateKotlinExternals: Boolean = false ) : SelfResolvingDependency, SelfResolvingDependencyInternal, ResolvableDependency, @@ -132,7 +132,8 @@ internal fun directoryNpmDependency( project: Project, name: String, directory: File, - scope: NpmDependency.Scope + scope: NpmDependency.Scope, + generateKotlinExternals: Boolean ): NpmDependency { check(directory.isDirectory) { "Dependency on local path should point on directory but $directory found" @@ -142,7 +143,8 @@ internal fun directoryNpmDependency( project = project, name = name, version = fileVersion(directory), - scope = scope + scope = scope, + generateKotlinExternals = generateKotlinExternals ) }