From 13782a263c7525da281cf821d5b5134d112db65b Mon Sep 17 00:00:00 2001
From: InsanusMokrassar <ovsyannikov.alexey95@gmail.com>
Date: Sun, 7 Mar 2021 21:22:27 +0600
Subject: [PATCH] add mppJsProject

---
 README.md           | 40 ++++++++++++++++++++++++++++++++++++++++
 extensions.gradle   |  1 +
 mppJsProject.gradle | 32 ++++++++++++++++++++++++++++++++
 3 files changed, 73 insertions(+)
 create mode 100644 mppJsProject.gradle

diff --git a/README.md b/README.md
index 0bb24a5..7b39e2c 100644
--- a/README.md
+++ b/README.md
@@ -127,6 +127,46 @@ kotlin {
 }
 ```
 
+### `mppJsProject`
+
+This type of preset have only `JS` target and available using `apply from: "mppJsProjectPresetPath"`. Template for
+project with this preset looks like next snippet:
+
+```groovy
+plugins {
+    id "org.jetbrains.kotlin.multiplatform"
+}
+
+apply from: "$mppJsProjectPresetPath"
+
+// The code below is optional
+
+kotlin {
+    sourceSets {
+        commonMain {
+            dependencies {
+                // common dependencies
+            }
+        }
+        commonTest {
+            dependencies {
+                // common test dependencies
+            }
+        }
+        jsMain {
+            dependencies {
+                // jvm dependencies
+            }
+        }
+        jsTest {
+            dependencies {
+                // jvm test dependencies
+            }
+        }
+    }
+}
+```
+
 ### `mppAndroidProject`
 
 This type of preset have only `Android` target and available using `apply from: "$mppAndroidProjectPresetPath"`. Template for
diff --git a/extensions.gradle b/extensions.gradle
index 0c108ed..2e89947 100644
--- a/extensions.gradle
+++ b/extensions.gradle
@@ -15,6 +15,7 @@ allprojects {
 
         mppProjectWithSerializationPresetPath = "${rootProject.projectDir.absolutePath}/mppProjectWithSerialization.gradle"
         mppJavaProjectPresetPath = "${rootProject.projectDir.absolutePath}/mppJavaProject.gradle"
+        mppJsProjectPresetPath = "${rootProject.projectDir.absolutePath}/mppJsProject.gradle"
         mppAndroidProjectPresetPath = "${rootProject.projectDir.absolutePath}/mppAndroidProject.gradle"
 
         defaultAndroidSettingsPresetPath = "${rootProject.projectDir.absolutePath}/defaultAndroidSettings.gradle"
diff --git a/mppJsProject.gradle b/mppJsProject.gradle
new file mode 100644
index 0000000..49ba8f5
--- /dev/null
+++ b/mppJsProject.gradle
@@ -0,0 +1,32 @@
+project.version = "$version"
+project.group = "$group"
+
+// apply from: "$publishGradlePath"
+
+kotlin {
+    js (BOTH) {
+        browser()
+        nodejs()
+    }
+
+    sourceSets {
+        commonMain {
+            dependencies {
+                implementation kotlin('stdlib')
+                api "org.jetbrains.kotlinx:kotlinx-serialization-json:$kotlin_serialisation_core_version"
+            }
+        }
+        commonTest {
+            dependencies {
+                implementation kotlin('test-common')
+                implementation kotlin('test-annotations-common')
+            }
+        }
+        jsTest {
+            dependencies {
+                implementation kotlin('test-js')
+                implementation kotlin('test-junit')
+            }
+        }
+    }
+}