def typescriptRoot = 'src/main/ts'
def typescriptRootFile = new File(rootDir.absolutePath, typescriptRoot)
def typescriptOut = new File(typescriptRootFile, 'lib/ts')
def nodeModules = new File(typescriptRootFile, 'node_modules')
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
}
task typescript(group: 'typescript', type: Exec) {
inputs.dir typescriptRootFile
outputs.dirs typescriptOut
args 'run', 'build'
delete typescriptOut
typescript.dependsOn typescriptInstall
processResources.dependsOn typescript
processResources {
from(typescriptOut.absolutePath) {
into 'scriptcraft'