From c20184ae082ac633c5ae0f01c6010c0e51b406d8 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Wed, 6 May 2020 17:31:31 +0300 Subject: [PATCH] [Gradle, JS] Add option for generate kotlin externals KT-38331 --- .../gradle/targets/js/dukat/DtsResolver.kt | 17 +++++++++++------ .../gradle/targets/js/npm/NpmDependency.kt | 3 ++- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dukat/DtsResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dukat/DtsResolver.kt index 1b2d72b9ed9..e556d920e4a 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dukat/DtsResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dukat/DtsResolver.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -16,11 +16,16 @@ class DtsResolver(val npmProject: NpmProject) { indexFileSuffixes = listOf(".d.ts") ) - fun getAllDts(externalNpmDependencies: Collection): List = externalNpmDependencies - .filter { it.scope != NpmDependency.Scope.DEV } - .flatMap { it.getDependenciesRecursively() } - .mapNotNullTo(mutableSetOf()) { typeModules.resolve(it.key)?.let { file -> Dts(file.canonicalFile, it) } } - .sortedBy { it.inputKey } + fun getAllDts(externalNpmDependencies: Collection): List { + return externalNpmDependencies + .asSequence() + .filter { it.generateKotlinExternals } + .filter { it.scope != NpmDependency.Scope.DEV } + .flatMap { it.getDependenciesRecursively().asSequence() } + .mapNotNullTo(mutableSetOf()) { typeModules.resolve(it.key)?.let { file -> Dts(file.canonicalFile, it) } } + .sortedBy { it.inputKey } + .toList() + } class Dts(val file: File, val npmDependency: NpmDependency) { val inputKey: String 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 82569599617..ff97c9e8a05 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 @@ -24,7 +24,8 @@ data class NpmDependency( internal val project: Project, private val name: String, private val version: String, - val scope: Scope = Scope.NORMAL + val scope: Scope = Scope.NORMAL, + val generateKotlinExternals: Boolean = true ) : SelfResolvingDependency, SelfResolvingDependencyInternal, ResolvableDependency,