[JS, Wizard] Add react template plugin

^KT-41417 fixed
This commit is contained in:
Ilya Goncharov
2020-08-25 14:50:51 +03:00
parent 220ff6c648
commit c797f3044e
4 changed files with 35 additions and 3 deletions
@@ -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.plugins.kotlin.ModulesToIrConversionData
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.ModuleKind 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.SimpleJsClientTemplate
import org.jetbrains.kotlin.tools.projectWizard.templates.SimpleNodeJsTemplate
import java.nio.file.Path import java.nio.file.Path
interface JSConfigurator : ModuleConfiguratorWithModuleType, ModuleConfiguratorWithSettings { interface JSConfigurator : ModuleConfiguratorWithModuleType, ModuleConfiguratorWithSettings {
@@ -54,7 +56,10 @@ interface JSConfigurator : ModuleConfiguratorWithModuleType, ModuleConfiguratorW
filter = filter@{ reference, kindCandidate -> filter = filter@{ reference, kindCandidate ->
when { when {
reference !is ModuleConfiguratorSettingReference<*, *> -> false 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 else -> true
} }
} }
@@ -30,6 +30,7 @@ object Plugins {
ConsoleJvmApplicationTemplatePlugin(context), ConsoleJvmApplicationTemplatePlugin(context),
KtorTemplatesPlugin(context), KtorTemplatesPlugin(context),
JsTemplatesPlugin(context), JsTemplatesPlugin(context),
ReactJsTemplatesPlugin(context),
SimpleNodeJsTemplatesPlugin(context), SimpleNodeJsTemplatesPlugin(context),
NativeConsoleApplicationTemplatePlugin(context) NativeConsoleApplicationTemplatePlugin(context)
) )
@@ -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<PipelineTask> = super.pipelineTasks +
listOf(
addTemplate,
)
companion object : PluginSettingsOwner() {
override val pluginPath = "template.reactJsTemplates"
val addTemplate by pipelineTask(GenerationPhase.PREPARE) {
withAction {
TemplatesPlugin.addTemplate.execute(ReactJsClientTemplate())
}
}
}
}
@@ -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.PluginSettingsOwner
import org.jetbrains.kotlin.tools.projectWizard.core.entity.PipelineTask import org.jetbrains.kotlin.tools.projectWizard.core.entity.PipelineTask
import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase
import org.jetbrains.kotlin.tools.projectWizard.templates.KtorServerTemplate
import org.jetbrains.kotlin.tools.projectWizard.templates.SimpleNodeJsTemplate import org.jetbrains.kotlin.tools.projectWizard.templates.SimpleNodeJsTemplate
class SimpleNodeJsTemplatesPlugin(context: Context) : TemplatePlugin(context) { class SimpleNodeJsTemplatesPlugin(context: Context) : TemplatePlugin(context) {
@@ -17,7 +16,7 @@ class SimpleNodeJsTemplatesPlugin(context: Context) : TemplatePlugin(context) {
override val pipelineTasks: List<PipelineTask> = super.pipelineTasks + override val pipelineTasks: List<PipelineTask> = super.pipelineTasks +
listOf( listOf(
KtorTemplatesPlugin.addTemplate, addTemplate,
) )
companion object : PluginSettingsOwner() { companion object : PluginSettingsOwner() {