[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.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
}
}
@@ -30,6 +30,7 @@ object Plugins {
ConsoleJvmApplicationTemplatePlugin(context),
KtorTemplatesPlugin(context),
JsTemplatesPlugin(context),
ReactJsTemplatesPlugin(context),
SimpleNodeJsTemplatesPlugin(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.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<PipelineTask> = super.pipelineTasks +
listOf(
KtorTemplatesPlugin.addTemplate,
addTemplate,
)
companion object : PluginSettingsOwner() {