From c11c3dffe7f7cce198529c13d5bec585ff711a16 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Wed, 1 Apr 2020 12:38:20 +0300 Subject: [PATCH] [Gradle, JS] KT-36784 Provide args for kotlinNpmInstall #KT-32466 fixed #KT-36784 fixed #KT-36864 fixed --- .../kotlin/gradle/targets/js/npm/NpmApi.kt | 2 +- .../kotlin/gradle/targets/js/yarn/Yarn.kt | 4 ++-- .../gradle/targets/js/yarn/YarnBasics.kt | 2 +- .../gradle/targets/js/yarn/YarnSimple.kt | 9 ++++++-- .../gradle/targets/js/yarn/YarnWorkspaces.kt | 22 ++++++++++++++----- 5 files changed, 28 insertions(+), 11 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmApi.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmApi.kt index c7a90276338..21ee4b6bc8c 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmApi.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmApi.kt @@ -21,7 +21,7 @@ interface NpmApi { rootProject: Project, subProjects: Collection, skipExecution: Boolean, - vararg cliArgs: String + cliArgs: List ) fun resolveDependency( diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/Yarn.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/Yarn.kt index 78dbf6aa453..a7d15ff5623 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/Yarn.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/Yarn.kt @@ -39,12 +39,12 @@ class Yarn : NpmApi { rootProject: Project, subProjects: Collection, skipExecution: Boolean, - vararg cliArgs: String + cliArgs: List ) = getDelegate(rootProject.project) .resolveRootProject( rootProject, subProjects, skipExecution, - *cliArgs + cliArgs ) } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnBasics.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnBasics.kt index b8da179c3f4..204fee16c8a 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnBasics.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnBasics.kt @@ -26,7 +26,7 @@ abstract class YarnBasics : NpmApi { project: Project, dir: File, description: String, - vararg args: String + args: List ) { val nodeJs = NodeJsRootPlugin.apply(project) val yarnPlugin = YarnPlugin.apply(project) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnSimple.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnSimple.kt index c1af695d458..b5dc148d25c 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnSimple.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnSimple.kt @@ -17,7 +17,12 @@ class YarnSimple : YarnBasics() { val project = resolvedNpmProject.project PackageJsonUpToDateCheck(resolvedNpmProject.npmProject).updateIfNeeded { - yarnExec(project, resolvedNpmProject.npmProject.dir, NpmApi.resolveOperationDescription("yarn for ${project.path}")) + yarnExec( + project, + resolvedNpmProject.npmProject.dir, + NpmApi.resolveOperationDescription("yarn for ${project.path}"), + emptyList() + ) yarnLockReadTransitiveDependencies(resolvedNpmProject.npmProject.dir, resolvedNpmProject.externalNpmDependencies) } } @@ -26,6 +31,6 @@ class YarnSimple : YarnBasics() { rootProject: Project, subProjects: Collection, skipExecution: Boolean, - vararg cliArgs: String + cliArgs: List ) = Unit } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnWorkspaces.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnWorkspaces.kt index e3f59852df8..6edf5d2b2b0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnWorkspaces.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnWorkspaces.kt @@ -20,23 +20,34 @@ class YarnWorkspaces : YarnBasics() { rootProject: Project, subProjects: Collection, skipExecution: Boolean, - vararg cliArgs: String + cliArgs: List ) { check(rootProject == rootProject.rootProject) if (!skipExecution) setup(rootProject) - return resolveWorkspaces(rootProject, subProjects, skipExecution) + return resolveWorkspaces( + rootProject, + subProjects, + skipExecution, + cliArgs + ) } private fun resolveWorkspaces( rootProject: Project, npmProjects: Collection, - skipExecution: Boolean + skipExecution: Boolean, + cliArgs: List ) { val nodeJsWorldDir = NodeJsRootPlugin.apply(rootProject).rootPackageDir if (!skipExecution) { saveRootProjectWorkspacesPackageJson(rootProject, npmProjects, nodeJsWorldDir) - yarnExec(rootProject, nodeJsWorldDir, NpmApi.resolveOperationDescription("yarn")) + yarnExec( + rootProject, + nodeJsWorldDir, + NpmApi.resolveOperationDescription("yarn"), + cliArgs + ) } yarnLockReadTransitiveDependencies(nodeJsWorldDir, npmProjects.flatMap { it.externalNpmDependencies }) @@ -51,7 +62,8 @@ class YarnWorkspaces : YarnBasics() { rootPackageJson.private = true val npmProjectWorkspaces = npmProjects.map { it.npmProject.dir.relativeTo(nodeJsWorldDir).path } - val importedProjectWorkspaces = YarnImportedPackagesVersionResolver(rootProject, npmProjects, nodeJsWorldDir).resolveAndUpdatePackages() + val importedProjectWorkspaces = + YarnImportedPackagesVersionResolver(rootProject, npmProjects, nodeJsWorldDir).resolveAndUpdatePackages() rootPackageJson.workspaces = npmProjectWorkspaces + importedProjectWorkspaces rootPackageJson.saveTo(