backing up before finally deciding on how to sync Kotlin and Typescript data model

This commit is contained in:
Adam 2021-11-10 17:34:01 +01:00
parent 7dd7baef34
commit b3af697636
23 changed files with 679 additions and 97 deletions

View file

@ -3,7 +3,9 @@ import org.apache.tools.ant.filters.ReplaceTokens
import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs
plugins {
idea
id("dev.adamko.factoriowebmap.archetype.node")
id("dev.adamko.tstl")
}
val projectId: String by project.extra
@ -33,7 +35,7 @@ val tstlTask = tasks.register<NpmTask>("typescriptToLua") {
val intermediateOutputDir = temporaryDir
args.set(parseSpaceSeparatedArgs("-- --outDir $intermediateOutputDir"))
val outputDir = modBuildDir.dir("typescriptToLua")
val outputDir: Directory = modBuildDir.dir("typescriptToLua")
outputs.dir(outputDir)
.withPropertyName("outputDir")
@ -54,19 +56,17 @@ val tstlTask = tasks.register<NpmTask>("typescriptToLua") {
idea {
module {
sourceDirs.add(layout.projectDirectory.dir("src/main/typescript").asFile)
excludeDirs.add(layout.projectDirectory.dir("src/main/typescript/node_modules").asFile)
resourceDirs.add(layout.projectDirectory.dir("src/main/resources").asFile)
resourceDirs.add(layout.projectDirectory.dir("infra").asFile)
excludeDirs.add(layout.projectDirectory.dir("infra/factorio-server").asFile)
sourceDirs.add(mkdir(layout.projectDirectory.dir("src/main/typescript").asFile))
excludeDirs.add(mkdir(layout.projectDirectory.dir("src/main/typescript/node_modules").asFile))
resourceDirs.add(mkdir(layout.projectDirectory.dir("src/main/resources").asFile))
resourceDirs.add(mkdir(layout.projectDirectory.dir("infra").asFile))
excludeDirs.add(mkdir(layout.projectDirectory.dir("infra/factorio-server").asFile))
}
}
val typescriptSrcSet =
project.objects.sourceDirectorySet("typescript", "typescript").apply {
srcDir(mkdir("$projectDir/src/main/typescript"))
srcDir(layout.projectDirectory.dir("src/main/typescript"))
destinationDirectory.set(modBuildDir.dir("typescriptToLua").asFile)
compiledBy(tstlTask) {
@ -228,33 +228,3 @@ tasks.register("downloadFactorioApiDocs") {
logger.lifecycle("Downloaded Factorio API json: $apiFile")
}
}
//tasks.register("downloadLuaProtobuf") {
// group = projectId
//
// val luaProtobufVersion = "0.3.3"
//
// val target = uri("https://github.com/starwing/lua-protobuf/archive/refs/tags/$luaProtobufVersion.zip")
// val downloadedFile = file("$temporaryDir/luaProtobuf-$luaProtobufVersion.zip")
//
// val luaProto = modBuildDir.file(apiFilename)
// outputs.file(apiFile)
//
// doLast {
//
// ant.invokeMethod(
// "get", mapOf(
// "src" to target,
// "dest" to downloadedFile,
// "verbose" to true,
// )
// )
//
// val json = downloadedFile.readText()
// val prettyJson = groovy.json.JsonOutput.prettyPrint(json)
//
// apiFile.asFile.writeText(prettyJson)
//
// logger.lifecycle("Downloaded Factorio API json: $apiFile")
// }
//}

View file

@ -3,7 +3,7 @@ version: "3.9"
services:
factorio-server:
image: factoriotools/factorio:1.1.42
image: factoriotools/factorio:1.1.46
# logging:
# driver: "json-file"
container_name: "factorio-server"

View file

@ -8,7 +8,7 @@
import {Serdes} from "./serdes/serdes"
import {FactorioEvent, JsonTable} from "./model/model";
const mapEventIdToName = new LuaTable<defines.events, keyof typeof defines.events>()
const mapEventIdToName = new LuaTable<defines.Events, keyof typeof defines.events>()
for (const [k, v] of pairs(defines.events)) {
mapEventIdToName.set(v, k)
}

View file

@ -37,9 +37,9 @@
}
},
"is-core-module": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz",
"integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==",
"version": "2.8.0",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz",
"integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==",
"requires": {
"has": "^1.0.3"
}
@ -74,30 +74,27 @@
"integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ=="
},
"typed-factorio": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/typed-factorio/-/typed-factorio-0.8.0.tgz",
"integrity": "sha512-vuAJfkTBSQKD8mHCN7CAbwJJ73y+xfxLBPlFsYjjd015tMPv8Yrq1hBXxoUFZ1ZWGzNgcFL9RwZ6TspsIH7WJw==",
"version": "0.11.0-packagetypes-1",
"resolved": "https://registry.npmjs.org/typed-factorio/-/typed-factorio-0.11.0-packagetypes-1.tgz",
"integrity": "sha512-oiN9XjODry434DPcgx3MNyC22/cOrbeU5/q0uM+Tj8BjJ7B42DYH+SR21tEtrHaWHNUJNX5iXD8h1Bk0N3Qvmw==",
"requires": {
"lua-types": "^2.10.1",
"typescript-to-lua": "^1.0.0"
}
},
"typescript": {
"version": "4.4.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz",
"integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA=="
},
"typescript-to-lua": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/typescript-to-lua/-/typescript-to-lua-1.0.1.tgz",
"integrity": "sha512-j5mb+8HgUUY8hhAKoNy6KUMeamEN1fsTtMvSbPaxmVkWw40pHdLi3umsQG+Qo7wM6IK+RQffFxbIWEjleF+xpw==",
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/typescript-to-lua/-/typescript-to-lua-1.1.1.tgz",
"integrity": "sha512-13vk/FSQyqbBkXNvg73LpT0tsPKdepJHPYR6TNtbc9l1ClSxAEUvkB3k49MAwSQ6LoN8Ui4Bgyu9dKFoDB315Q==",
"requires": {
"enhanced-resolve": "^5.8.2",
"resolve": "^1.15.1",
"source-map": "^0.7.3",
"typescript": "~4.3.5"
},
"dependencies": {
"typescript": {
"version": "4.3.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz",
"integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA=="
}
"source-map": "^0.7.3"
}
}
}

View file

@ -13,8 +13,12 @@
"dependencies": {
"lua-types": "^2.11.0",
"@types/node": "^12.0.8",
"typescript-to-lua": "1.0.1",
"typed-factorio": "0.8.0"
"typescript-to-lua": "1.1.1",
"typed-factorio": "0.11.0-packagetypes-1",
"typescript": "4.4.4"
},
"//": {
"typed-factorio": "0.10.0"
},
"peerDependencies": {},
"optionalDependencies": {},