auto package.json version update
This commit is contained in:
parent
51918a2fb2
commit
babe0161ae
4 changed files with 73 additions and 18 deletions
|
|
@ -4,7 +4,6 @@ plugins {
|
||||||
idea
|
idea
|
||||||
`kotlin-dsl`
|
`kotlin-dsl`
|
||||||
kotlin("jvm") version "1.6.0"
|
kotlin("jvm") version "1.6.0"
|
||||||
`java-gradle-plugin`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
|
@ -13,9 +12,14 @@ dependencies {
|
||||||
|
|
||||||
implementation(platform("org.jetbrains.kotlin:kotlin-bom:$kotlinVersion"))
|
implementation(platform("org.jetbrains.kotlin:kotlin-bom:$kotlinVersion"))
|
||||||
implementation("org.jetbrains.kotlin:kotlin-serialization")
|
implementation("org.jetbrains.kotlin:kotlin-serialization")
|
||||||
|
implementation("org.jetbrains.kotlin:kotlin-reflect")
|
||||||
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin")
|
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin")
|
||||||
|
|
||||||
|
val kotlinXSerializationVersion = "1.3.1"
|
||||||
|
implementation(platform("org.jetbrains.kotlinx:kotlinx-serialization-bom:$kotlinXSerializationVersion"))
|
||||||
|
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json")
|
||||||
|
|
||||||
|
|
||||||
implementation("com.github.node-gradle:gradle-node-plugin:3.1.1")
|
implementation("com.github.node-gradle:gradle-node-plugin:3.1.1")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -39,7 +43,6 @@ tasks.withType<KotlinCompile>().configureEach {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
jvmToolchain {
|
jvmToolchain {
|
||||||
(this as JavaToolchainSpec).languageVersion.set(JavaLanguageVersion.of(projectJvmTarget))
|
(this as JavaToolchainSpec).languageVersion.set(JavaLanguageVersion.of(projectJvmTarget))
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,7 @@
|
||||||
package dev.adamko.factoriowebmap.archetype
|
package dev.adamko.factoriowebmap.archetype
|
||||||
|
|
||||||
import org.gradle.kotlin.dsl.kotlin
|
|
||||||
import com.github.gradle.node.npm.task.NpmTask
|
|
||||||
import com.github.gradle.node.npm.task.NpxTask
|
|
||||||
import com.github.gradle.node.task.NodeTask
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMultiplatformPlugin
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMultiplatformPlugin
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsPlugin
|
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsPlugin
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dukat.DtsResolver
|
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.RootPackageJsonTask
|
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinPackageJsonTask
|
|
||||||
import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs
|
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject
|
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("com.github.node-gradle.node")
|
id("com.github.node-gradle.node")
|
||||||
|
|
@ -26,4 +17,3 @@ node {
|
||||||
|
|
||||||
project.plugins.withType<KotlinJsPlugin>()
|
project.plugins.withType<KotlinJsPlugin>()
|
||||||
project.plugins.withType<KotlinMultiplatformPlugin>()
|
project.plugins.withType<KotlinMultiplatformPlugin>()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,17 @@
|
||||||
import com.github.gradle.node.npm.task.NpmTask
|
import com.github.gradle.node.npm.task.NpmTask
|
||||||
import dev.adamko.factoriowebmap.configurations.asConsumer
|
import dev.adamko.factoriowebmap.configurations.asConsumer
|
||||||
import dev.adamko.factoriowebmap.configurations.typescriptAttributes
|
import dev.adamko.factoriowebmap.configurations.typescriptAttributes
|
||||||
|
import groovy.json.JsonOutput
|
||||||
|
import kotlinx.serialization.encodeToString
|
||||||
|
import kotlinx.serialization.json.Json
|
||||||
|
import kotlinx.serialization.json.JsonObject
|
||||||
|
import kotlinx.serialization.json.JsonPrimitive
|
||||||
|
import kotlinx.serialization.json.jsonObject
|
||||||
|
import kotlinx.serialization.json.jsonPrimitive
|
||||||
import org.apache.tools.ant.filters.ReplaceTokens
|
import org.apache.tools.ant.filters.ReplaceTokens
|
||||||
|
import org.gradle.kotlin.dsl.support.useToRun
|
||||||
import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs
|
import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs
|
||||||
|
import org.jetbrains.kotlin.util.suffixIfNot
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
idea
|
idea
|
||||||
|
|
@ -55,6 +64,55 @@ val tstlTask = tasks.register<NpmTask>("typescriptToLua") {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val updatePackageJsonVersion by tasks.registering {
|
||||||
|
group = project.name
|
||||||
|
description = """
|
||||||
|
Read the package.json file and set the version to be the project's version.
|
||||||
|
""".trimIndent()
|
||||||
|
|
||||||
|
val projectVersion = "${project.version}"
|
||||||
|
inputs.properties(
|
||||||
|
"projectVersion" to projectVersion,
|
||||||
|
)
|
||||||
|
|
||||||
|
val packageJsonFile = layout.projectDirectory.file("src/main/typescript/package.json")
|
||||||
|
outputs.file(packageJsonFile)
|
||||||
|
|
||||||
|
val jsonFormatter = Json {
|
||||||
|
prettyPrint = true
|
||||||
|
prettyPrintIndent = " "
|
||||||
|
}
|
||||||
|
|
||||||
|
onlyIf {
|
||||||
|
val packageJsonContent = packageJsonFile.asFile.readText()
|
||||||
|
val packageJson = jsonFormatter.parseToJsonElement(packageJsonContent).jsonObject
|
||||||
|
packageJson["version"]?.jsonPrimitive?.content != projectVersion
|
||||||
|
}
|
||||||
|
|
||||||
|
doFirst {
|
||||||
|
delete(temporaryDir)
|
||||||
|
mkdir(temporaryDir)
|
||||||
|
}
|
||||||
|
|
||||||
|
doLast {
|
||||||
|
val packageJsonContent = packageJsonFile.asFile.readText()
|
||||||
|
val packageJson = jsonFormatter.parseToJsonElement(packageJsonContent).jsonObject
|
||||||
|
val packageJsonUpdate = JsonObject(
|
||||||
|
packageJson + ("version" to JsonPrimitive(projectVersion))
|
||||||
|
)
|
||||||
|
val packageJsonContentUpdated =
|
||||||
|
jsonFormatter
|
||||||
|
.encodeToString(packageJsonUpdate)
|
||||||
|
.suffixIfNot("\n")
|
||||||
|
packageJsonFile.asFile.writer().useToRun {
|
||||||
|
write(packageJsonContentUpdated)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.assemble { dependsOn(updatePackageJsonVersion) }
|
||||||
|
|
||||||
|
|
||||||
val dataModelTs: Configuration by configurations.creating {
|
val dataModelTs: Configuration by configurations.creating {
|
||||||
asConsumer()
|
asConsumer()
|
||||||
typescriptAttributes(objects)
|
typescriptAttributes(objects)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "factorio-web-map-mod",
|
"name": "factorio-web-map-mod",
|
||||||
"version": "0.0.4",
|
"version": "0.0.5",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "tstl",
|
"build": "tstl",
|
||||||
|
|
@ -9,7 +9,8 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=10.13.0"
|
"node": ">=10.13.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {},
|
"devDependencies": {
|
||||||
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"lua-types": "^2.11.0",
|
"lua-types": "^2.11.0",
|
||||||
"@types/node": "^12.0.8",
|
"@types/node": "^12.0.8",
|
||||||
|
|
@ -20,7 +21,10 @@
|
||||||
"//": {
|
"//": {
|
||||||
"typed-factorio": "0.10.0"
|
"typed-factorio": "0.10.0"
|
||||||
},
|
},
|
||||||
"peerDependencies": {},
|
"peerDependencies": {
|
||||||
"optionalDependencies": {},
|
},
|
||||||
"bundledDependencies": []
|
"optionalDependencies": {
|
||||||
|
},
|
||||||
|
"bundledDependencies": [
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue