|
|
plugins {
|
|
|
id "org.implab.gradle-typescript" version "1.3.4"
|
|
|
id "org.implab.gradle-mercurial" version "1.0.1"
|
|
|
}
|
|
|
|
|
|
if (!symbols in ['local', 'pack', 'none'])
|
|
|
throw new Exception("The symbols property value is invalid: $symbols");
|
|
|
|
|
|
if (!flavour in ['browser', 'node'])
|
|
|
throw new Exception("The flavour property value is invalid: $flavour");
|
|
|
|
|
|
ext {
|
|
|
packageName = flavour == 'browser' ? "@$npmScope/$name-amd" : "@$npmScope/$name"
|
|
|
lint = project.hasProperty('lint') ? project.lint ?: true : false
|
|
|
}
|
|
|
|
|
|
mercurial {
|
|
|
preReleasePolicy { it
|
|
|
.addPatch(versionDistance)
|
|
|
.withPreRelease('dev')
|
|
|
.withMeta(changeset)
|
|
|
}
|
|
|
|
|
|
applyVersioningPolicy()
|
|
|
}
|
|
|
|
|
|
typescript {
|
|
|
compilerOptions {
|
|
|
types = []
|
|
|
declaration = true
|
|
|
experimentalDecorators = true
|
|
|
strict = true
|
|
|
// dojo-typings are sick
|
|
|
skipLibCheck = true
|
|
|
|
|
|
if(symbols != 'none') {
|
|
|
sourceMap = true
|
|
|
sourceRoot = "pack:${packageName}"
|
|
|
}
|
|
|
|
|
|
if (flavour == 'node') {
|
|
|
module = "commonjs"
|
|
|
target = "es2017"
|
|
|
lib = ["es2017", "dom", "scripthost"]
|
|
|
} else if (flavour == 'browser') {
|
|
|
module = "amd"
|
|
|
target = "es5"
|
|
|
lib = ["es5", "dom", "scripthost", "es2015.promise", "es2015.symbol", "es2015.iterable" ]
|
|
|
}
|
|
|
}
|
|
|
tscCmd = "$projectDir/node_modules/.bin/tsc"
|
|
|
tsLintCmd = "$projectDir/node_modules/.bin/tslint"
|
|
|
esLintCmd = "$projectDir/node_modules/.bin/eslint"
|
|
|
}
|
|
|
|
|
|
tasks.matching{ it.name =~ /^lint/ }.configureEach {
|
|
|
onlyIf { lint }
|
|
|
}
|
|
|
|
|
|
if (symbols == 'local') {
|
|
|
tasks.matching{ it.name =~ /^configureTs/ }.configureEach {
|
|
|
compilerOptions {
|
|
|
sourceRoot = "file://" + it.rootDir
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
printVersion {
|
|
|
doLast {
|
|
|
println "packageName: $packageName";
|
|
|
println "flavour: $flavour";
|
|
|
println "target: $typescript.compilerOptions.target";
|
|
|
println "module: $typescript.compilerOptions.module";
|
|
|
println "lint: $lint";
|
|
|
println "symbols: $symbols";
|
|
|
}
|
|
|
}
|
|
|
|