diff --git a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/singleplatformJs/settings.yaml b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/singleplatformJs/settings.yaml index 28a085c6618..aae86d62bb1 100644 --- a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/singleplatformJs/settings.yaml +++ b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/singleplatformJs/settings.yaml @@ -1,5 +1,5 @@ kotlin: projectKind: js modules: - - type: jsSinglePlatform + - type: jsBrowserSinglePlatform name: a \ No newline at end of file diff --git a/libraries/tools/new-project-wizard/resources/messages/KotlinNewProjectWizardBundle.properties b/libraries/tools/new-project-wizard/resources/messages/KotlinNewProjectWizardBundle.properties index 3d24fff8a2a..31d1d880d26 100644 --- a/libraries/tools/new-project-wizard/resources/messages/KotlinNewProjectWizardBundle.properties +++ b/libraries/tools/new-project-wizard/resources/messages/KotlinNewProjectWizardBundle.properties @@ -72,7 +72,8 @@ module.type.ios=iOS module.name=Module name module.name.with.name=Module name {0} -module.configurator.js=JS for Browser +module.configurator.simple.js.browser=JS for Browser +module.configurator.simple.js.node=JS for Node.JS module.configurator.android=Android module.configurator.android.setting.android.plugin=Android plugin 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 25ececd916c..fc2a09fada4 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 @@ -89,7 +89,7 @@ enum class JsTarget { NODE; } -open class JsSinglePlatformModuleConfigurator( +abstract class JsSinglePlatformModuleConfigurator( private val jsTarget: JsTarget ) : JSConfigurator, ModuleConfiguratorWithTests, SinglePlatformModuleConfigurator, ModuleConfiguratorWithSettings { @@ -103,8 +103,7 @@ open class JsSinglePlatformModuleConfigurator( override val suggestedModuleName = "js" @NonNls - override val id = "jsSinglePlatform" - override val text = KotlinNewProjectWizardBundle.message("module.configurator.js") + override val id = "js${jsTarget.name.toLowerCase().capitalize()}SinglePlatform" override fun defaultTestFramework(): KotlinTestFramework = KotlinTestFramework.JS @@ -123,13 +122,12 @@ open class JsSinglePlatformModuleConfigurator( ): List = irsList { "kotlin" { "js" { - when (jsTarget) { - JsTarget.BROWSER -> browserSubTarget(module, reader) - JsTarget.NODE -> nodejsSubTarget(module, reader) - } + subTarget(module, reader) } } } + + protected abstract fun GradleIRListBuilder.subTarget(module: Module, reader: Reader) } object BrowserJsSinglePlatformModuleConfigurator : JsSinglePlatformModuleConfigurator( @@ -139,11 +137,23 @@ object BrowserJsSinglePlatformModuleConfigurator : JsSinglePlatformModuleConfigu return super.getConfiguratorSettings() + JSConfigurator.cssSupport } + + override fun GradleIRListBuilder.subTarget(module: Module, reader: Reader) { + browserSubTarget(module, reader) + } + + override val text = KotlinNewProjectWizardBundle.message("module.configurator.simple.js.browser") } object NodeJsSinglePlatformModuleConfigurator : JsSinglePlatformModuleConfigurator( JsTarget.NODE -) +) { + override fun GradleIRListBuilder.subTarget(module: Module, reader: Reader) { + nodejsSubTarget(module, reader) + } + + override val text = KotlinNewProjectWizardBundle.message("module.configurator.simple.js.node") +} fun GradleIRListBuilder.applicationSupport() { +"binaries.executable()"