This repository has been archived on 2023-11-26. You can view files and clone it, but cannot push or open issues or pull requests.
ScriptCraft/examples/typescript/typescript.build.gradle

76 lines
1.6 KiB
Groovy
Raw Normal View History

2020-04-29 18:56:51 +00:00
def typescriptRoot = 'src/main/ts'
def typescriptRootFile = new File(rootDir.absolutePath, typescriptRoot)
2020-05-24 00:54:20 +00:00
def typescriptOut = new File(typescriptRootFile, 'build/ts')
2020-04-29 18:56:51 +00:00
2020-04-30 00:32:07 +00:00
def nodeModules = new File(typescriptRootFile, 'node_modules')
2020-04-29 23:41:08 +00:00
task typescriptInstall(group: 'typescript', type: Exec) {
inputs.file new File(typescriptRootFile, 'package.json')
outputs.dir nodeModules
workingDir typescriptRootFile
executable 'npm'
args 'install'
doFirst {
project.delete {
delete nodeModules
}
}
}
2020-05-24 00:54:20 +00:00
def typescriptDependencies = new File(typescriptRootFile, 'build/dependencies')
configurations {
typescript {
transitive false
}
}
task extractTypescriptDependencies(group: 'typescript') {
doFirst {
project.delete {
delete typescriptDependencies
}
typescriptDependencies.mkdirs()
configurations.typescript.resolve().each { file ->
project.copy {
from(zipTree(file).matching {
exclude 'META-INF', 'META-INF/**'
})
into typescriptDependencies
}
}
}
}
2020-04-29 18:56:51 +00:00
task typescript(group: 'typescript', type: Exec) {
inputs.dir typescriptRootFile
outputs.dirs typescriptOut
workingDir typescriptRootFile
executable 'npm'
args 'run', 'build'
doFirst {
project.delete {
delete typescriptOut
}
}
}
2020-04-29 23:41:08 +00:00
typescript.dependsOn typescriptInstall
2020-05-24 00:54:20 +00:00
typescript.dependsOn extractTypescriptDependencies
2020-04-29 23:41:08 +00:00
2020-04-29 18:56:51 +00:00
processResources.dependsOn typescript
processResources {
from(typescriptOut.absolutePath) {
into 'scriptcraft'
}
}