From c797f3044ebbf3a557ad54737122601c480e6af3 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Tue, 25 Aug 2020 14:50:51 +0300 Subject: [PATCH] [JS, Wizard] Add react template plugin ^KT-41417 fixed --- .../JsModuleConfigurator.kt | 7 ++++- .../tools/projectWizard/plugins/Plugins.kt | 1 + .../templates/ReactJsTemplatesPlugin.kt | 27 +++++++++++++++++++ .../templates/SimpleNodeJsTemplatesPlugin.kt | 3 +-- 4 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/ReactJsTemplatesPlugin.kt diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/JsModuleConfigurator.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/JsModuleConfigurator.kt index 85bf480d7f7..7d100ec9f1b 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/JsModuleConfigurator.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/JsModuleConfigurator.kt @@ -28,7 +28,9 @@ import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleType import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModulesToIrConversionData import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.ModuleKind +import org.jetbrains.kotlin.tools.projectWizard.templates.ReactJsClientTemplate import org.jetbrains.kotlin.tools.projectWizard.templates.SimpleJsClientTemplate +import org.jetbrains.kotlin.tools.projectWizard.templates.SimpleNodeJsTemplate import java.nio.file.Path interface JSConfigurator : ModuleConfiguratorWithModuleType, ModuleConfiguratorWithSettings { @@ -54,7 +56,10 @@ interface JSConfigurator : ModuleConfiguratorWithModuleType, ModuleConfiguratorW filter = filter@{ reference, kindCandidate -> when { reference !is ModuleConfiguratorSettingReference<*, *> -> false - kindCandidate == JsTargetKind.LIBRARY && reference.module?.template is SimpleJsClientTemplate -> false + kindCandidate == JsTargetKind.LIBRARY + && (reference.module?.template is SimpleJsClientTemplate || + reference.module?.template is ReactJsClientTemplate || + reference.module?.template is SimpleNodeJsTemplate) -> false else -> true } } diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/Plugins.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/Plugins.kt index c8bad810b19..70f819ac620 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/Plugins.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/Plugins.kt @@ -30,6 +30,7 @@ object Plugins { ConsoleJvmApplicationTemplatePlugin(context), KtorTemplatesPlugin(context), JsTemplatesPlugin(context), + ReactJsTemplatesPlugin(context), SimpleNodeJsTemplatesPlugin(context), NativeConsoleApplicationTemplatePlugin(context) ) diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/ReactJsTemplatesPlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/ReactJsTemplatesPlugin.kt new file mode 100644 index 00000000000..6ca89ddb17b --- /dev/null +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/ReactJsTemplatesPlugin.kt @@ -0,0 +1,27 @@ +package org.jetbrains.kotlin.tools.projectWizard.plugins.templates + +import org.jetbrains.kotlin.tools.projectWizard.core.Context +import org.jetbrains.kotlin.tools.projectWizard.core.PluginSettingsOwner +import org.jetbrains.kotlin.tools.projectWizard.core.entity.PipelineTask +import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase +import org.jetbrains.kotlin.tools.projectWizard.templates.ReactJsClientTemplate +import org.jetbrains.kotlin.tools.projectWizard.templates.SimpleJsClientTemplate + +class ReactJsTemplatesPlugin(context: Context) : TemplatePlugin(context) { + override val path = pluginPath + + override val pipelineTasks: List = super.pipelineTasks + + listOf( + addTemplate, + ) + + companion object : PluginSettingsOwner() { + override val pluginPath = "template.reactJsTemplates" + + val addTemplate by pipelineTask(GenerationPhase.PREPARE) { + withAction { + TemplatesPlugin.addTemplate.execute(ReactJsClientTemplate()) + } + } + } +} \ No newline at end of file diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/SimpleNodeJsTemplatesPlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/SimpleNodeJsTemplatesPlugin.kt index d772d23208a..ad7cee0a9b0 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/SimpleNodeJsTemplatesPlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/SimpleNodeJsTemplatesPlugin.kt @@ -9,7 +9,6 @@ import org.jetbrains.kotlin.tools.projectWizard.core.Context import org.jetbrains.kotlin.tools.projectWizard.core.PluginSettingsOwner import org.jetbrains.kotlin.tools.projectWizard.core.entity.PipelineTask import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase -import org.jetbrains.kotlin.tools.projectWizard.templates.KtorServerTemplate import org.jetbrains.kotlin.tools.projectWizard.templates.SimpleNodeJsTemplate class SimpleNodeJsTemplatesPlugin(context: Context) : TemplatePlugin(context) { @@ -17,7 +16,7 @@ class SimpleNodeJsTemplatesPlugin(context: Context) : TemplatePlugin(context) { override val pipelineTasks: List = super.pipelineTasks + listOf( - KtorTemplatesPlugin.addTemplate, + addTemplate, ) companion object : PluginSettingsOwner() {