mod: move npm root dir so node_modules isn't in the src dir, and fix the hack for the bug https://github.com/GlassBricks/typed-factorio/issues/13
This commit is contained in:
parent
b6b874d8f7
commit
6d9f303226
4 changed files with 65 additions and 64 deletions
|
|
@ -37,7 +37,8 @@ val licenseFile: RegularFile by rootProject.extra
|
||||||
|
|
||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST")
|
||||||
val projectTokens: MapProperty<String, String> =
|
val projectTokens: MapProperty<String, String> =
|
||||||
rootProject.extra.get("projectTokens") as? MapProperty<String, String> ?: error("error getting projectTokens")
|
rootProject.extra.get("projectTokens") as? MapProperty<String, String>
|
||||||
|
?: error("error getting projectTokens")
|
||||||
//val projectTokens: MapProperty<String, String> by rootProject.extra
|
//val projectTokens: MapProperty<String, String> by rootProject.extra
|
||||||
|
|
||||||
val projectTokensX = projectTokens.apply {
|
val projectTokensX = projectTokens.apply {
|
||||||
|
|
@ -50,6 +51,7 @@ val projectTokensX = projectTokens.apply {
|
||||||
val tsSrcDir: Directory = layout.projectDirectory.dir("src/main/typescript")
|
val tsSrcDir: Directory = layout.projectDirectory.dir("src/main/typescript")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
node {
|
node {
|
||||||
nodeProjectDir.set(layout.projectDirectory)
|
nodeProjectDir.set(layout.projectDirectory)
|
||||||
}
|
}
|
||||||
|
|
@ -80,7 +82,7 @@ val installEventsTsSchema by tasks.registering(Sync::class) {
|
||||||
group = project.name
|
group = project.name
|
||||||
|
|
||||||
dependsOn(typescriptEventsSchema)
|
dependsOn(typescriptEventsSchema)
|
||||||
dependsOn(fixLink)
|
// dependsOn(fixLink)
|
||||||
|
|
||||||
val outputDir = layout.projectDirectory.dir("src/main/typescript/generated/kafkatorio-schema")
|
val outputDir = layout.projectDirectory.dir("src/main/typescript/generated/kafkatorio-schema")
|
||||||
outputs.dir(outputDir)
|
outputs.dir(outputDir)
|
||||||
|
|
@ -159,59 +161,59 @@ tasks.withType<Zip>().configureEach {
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.npmInstall {
|
//tasks.npmInstall {
|
||||||
nodeModulesOutputFilter {
|
// nodeModulesOutputFilter {
|
||||||
exclude("**/typed-factorio/generated/classes.d.ts")
|
// exclude("**/typed-factorio/generated/classes.d.ts")
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
|
|
||||||
interface ServiceProvider {
|
//interface ServiceProvider {
|
||||||
@get:Inject
|
// @get:Inject
|
||||||
val fs: FileSystemOperations
|
// val fs: FileSystemOperations
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
val fixLink by tasks.registering {
|
//val fixLink by tasks.registering {
|
||||||
dependsOn(tasks.npmInstall)
|
// dependsOn(tasks.npmInstall)
|
||||||
|
//
|
||||||
|
//
|
||||||
val badLink = """{@link https://lua-api.factorio.com/latest/Data-Lifecycle.html Data Lifecycle}"""
|
// val badLink = """{@link https://lua-api.factorio.com/latest/Data-Lifecycle.html Data Lifecycle}"""
|
||||||
val goodLink = """https://lua-api.factorio.com/latest/Data-Lifecycle.html"""
|
// val goodLink = """https://lua-api.factorio.com/latest/Data-Lifecycle.html"""
|
||||||
|
//
|
||||||
val typedFactorioDir =
|
// val typedFactorioDir =
|
||||||
layout.projectDirectory.dir("src/main/typescript/node_modules/typed-factorio")
|
// layout.projectDirectory.dir("src/main/typescript/node_modules/typed-factorio")
|
||||||
val classesDTS = typedFactorioDir.file("generated/classes.d.ts")
|
// val classesDTS = typedFactorioDir.file("generated/classes.d.ts")
|
||||||
|
//
|
||||||
val services = project.objects.newInstance<ServiceProvider>()
|
// val services = project.objects.newInstance<ServiceProvider>()
|
||||||
|
//
|
||||||
inputs.file(classesDTS)
|
// inputs.file(classesDTS)
|
||||||
outputs.file(classesDTS)
|
// outputs.file(classesDTS)
|
||||||
|
//
|
||||||
inputs.property("badLink", badLink)
|
// inputs.property("badLink", badLink)
|
||||||
inputs.property("goodLink", goodLink)
|
// inputs.property("goodLink", goodLink)
|
||||||
|
//
|
||||||
doLast {
|
// doLast {
|
||||||
logger.lifecycle("fixing link ${classesDTS.asFile.canonicalPath}")
|
// logger.lifecycle("fixing link ${classesDTS.asFile.canonicalPath}")
|
||||||
|
//
|
||||||
services.fs.sync {
|
// services.fs.sync {
|
||||||
from(classesDTS)
|
// from(classesDTS)
|
||||||
into(temporaryDir)
|
// into(temporaryDir)
|
||||||
filter { line ->
|
// filter { line ->
|
||||||
when {
|
// when {
|
||||||
line.contains(badLink) -> line.replace(badLink, goodLink)
|
// line.contains(badLink) -> line.replace(badLink, goodLink)
|
||||||
else -> line
|
// else -> line
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
services.fs.copy {
|
// services.fs.copy {
|
||||||
from(temporaryDir.resolve("classes.d.ts").canonicalPath)
|
// from(temporaryDir.resolve("classes.d.ts").canonicalPath)
|
||||||
into(classesDTS.asFile.parent)
|
// into(classesDTS.asFile.parent)
|
||||||
duplicatesStrategy = DuplicatesStrategy.WARN
|
// duplicatesStrategy = DuplicatesStrategy.WARN
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
tasks.assemble { dependsOn(fixLink) }
|
//tasks.assemble { dependsOn(fixLink) }
|
||||||
|
|
||||||
|
|
||||||
//val downloadFactorioApiDocs by tasks.registering {
|
//val downloadFactorioApiDocs by tasks.registering {
|
||||||
|
|
@ -253,9 +255,11 @@ val factorioModProvider by configurations.registering {
|
||||||
val packageJsonName = providers.provider { "${rootProject.name}-${project.name}" }
|
val packageJsonName = providers.provider { "${rootProject.name}-${project.name}" }
|
||||||
|
|
||||||
tasks.updatePackageJson {
|
tasks.updatePackageJson {
|
||||||
|
// mustRunAfter(tasks.npmInstall)
|
||||||
inputs.property("packageJsonName", packageJsonName)
|
inputs.property("packageJsonName", packageJsonName)
|
||||||
propertiesToCheck.put("name", packageJsonName)
|
propertiesToCheck.put("name", packageJsonName)
|
||||||
packageJsonFile.set(layout.projectDirectory.file("src/main/typescript/package.json"))
|
val pjProvider = layout.projectDirectory.file(provider { "package.json" })
|
||||||
|
packageJsonFile2.set(pjProvider)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,7 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "~14.19.1"
|
"node": "~14.19.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {},
|
||||||
},
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"lua-types": "^2.11.0",
|
"lua-types": "^2.11.0",
|
||||||
"typescript-to-lua": "1.4.4",
|
"typescript-to-lua": "1.4.4",
|
||||||
|
|
@ -18,10 +17,7 @@
|
||||||
"typescript": "4.6.2"
|
"typescript": "4.6.2"
|
||||||
},
|
},
|
||||||
"license": "UNLICENSED",
|
"license": "UNLICENSED",
|
||||||
"peerDependencies": {
|
"peerDependencies": {},
|
||||||
},
|
"optionalDependencies": {},
|
||||||
"optionalDependencies": {
|
"bundledDependencies": []
|
||||||
},
|
|
||||||
"bundledDependencies": [
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|
@ -32,7 +32,8 @@
|
||||||
"traceResolution": true,
|
"traceResolution": true,
|
||||||
"noImplicitReturns": true,
|
"noImplicitReturns": true,
|
||||||
"noImplicitOverride": true,
|
"noImplicitOverride": true,
|
||||||
"noFallthroughCasesInSwitch": true
|
"noFallthroughCasesInSwitch": true,
|
||||||
|
"skipLibCheck": true
|
||||||
},
|
},
|
||||||
"tstl": {
|
"tstl": {
|
||||||
"luaTarget": "5.2",
|
"luaTarget": "5.2",
|
||||||
Loading…
Add table
Add a link
Reference in a new issue