# HG changeset patch # User cin # Date 2019-10-08 23:29:51 # Node ID dc13057a3f8d96cc8d7aeaab9c5af1acc4af0439 # Parent f89186e365b160bbd26f2e3274ccdab009d06e65 Move to org.implab.gradle-typescript diff --git a/build.gradle b/build.gradle --- a/build.gradle +++ b/build.gradle @@ -1,3 +1,7 @@ +plugins { + id "org.implab.gradle-typescript" version "1.0-SNAPSHOT" +} + // если версия явно не заданы вычисляем ее из тэга ревизии v.{num}*** // результатом будет версия '{num}.{distance}' где distance - расстояние от // текущей ревизии до ревизии с тэгом @@ -46,90 +50,34 @@ if(!["es3", "es5", "es6", "es2016", "es2 throw new Exception("Invalid target specified: $target") def targetLibs = [ - "es3" : "es5,es2015.promise,es2015.symbol,dom,scripthost", - "es5" : "es5,es2015.promise,es2015.symbol,dom,scripthost" + "es3" : ["es5", "es2015.promise", "es2015.symbol", "dom", "scripthost"], + "es5" : ["es5", "es2015.promise", "es2015.symbol", "dom", "scripthost"] ]; -ext.packageName="@$npmScope/$npmName"; +ext { + packageName = "@$npmScope/$npmName" +} def srcDir = "$projectDir/src" def typingsDir = "$srcDir/typings" def distDir = "$buildDir/dist" def testDir = "$buildDir/test" -def lib = targetLibs[target] ?: "${target},dom"; - -println "lib: $lib"; +def jstarget = target; -def sourceSets = ["main", "amd", "cjs"]; -def testSets = ["test", "testAmd", "testCjs"]; +sources { -task beforeBuild { } -def createSoursetTasks = { String name, String outDir -> - def setName = name.capitalize(); - - def compileDir = "$buildDir/compile/$name" - def declDir = "$typingsDir/$name" - def setDir = "$projectDir/src/$name" - def jsDir = outDir; - - def beforeBuildTask = task "beforeBuild$setName"(dependsOn: beforeBuild) { - } - - def copyJsTask = task "copyJs$setName"(dependsOn: beforeBuildTask, type: Copy) { - from "$setDir/js" - into jsDir - } - - def lintJsTask = task "lintJs$setName"(dependsOn: beforeBuildTask, type: Exec) { - inputs.dir("$setDir/js/").skipWhenEmpty(); - commandLine "eslint", '--format', 'stylish', "$setDir/js/" +typescript { + compilerOptions { + lib = targetLibs[target] ?: [target, "dom"] + target = jstarget + module = jsmodule + types = [] } - - def compileTsTask = task "compileTs$setName"(dependsOn: beforeBuildTask, type: Exec) { - inputs.dir("$setDir/ts").skipWhenEmpty() - inputs.file("$srcDir/tsconfig.json") - inputs.file("$setDir/tsconfig.json") - outputs.dir(compileDir) - outputs.dir(declDir) - - commandLine 'node_modules/.bin/tsc', - '-p', "$setDir/tsconfig.json", - '-t', target, - '-m', jsmodule, - '-d', - '--sourceMap', - '--sourceRoot', "file://$setDir/ts", - '--outDir', compileDir, - '--declarationDir', declDir - - if (lib) - args '--lib', lib - } - - def copyTsOutputTask = task "copyTsOutput$setName"(dependsOn: compileTsTask, type: Copy) { - from compileDir - into jsDir - } - - def copyTypingsTask = task "copyTypings$setName"(dependsOn: compileTsTask, type: Copy) { - from declDir - into jsDir - } - - def copyResourcesTask = task "copyResources$setName"(dependsOn: beforeBuildTask, type: Copy) { - from "$setDir/resources" - into outDir - } - - task "build$setName" { - dependsOn copyTypingsTask, - copyTsOutputTask, - copyJsTask, - copyResourcesTask, - lintJsTask - } + tsLintCmd = "tslint" + esLintCmd = "eslint" + npmCmd = "npm" } task printVersion { @@ -167,58 +115,7 @@ task _initBuild { } } -task cleanNpm { - doLast { - delete 'node_modules' - } -} - -task _npmInstall() { - inputs.file("package.json") - outputs.dir("node_modules") - doLast { - exec { - commandLine 'npm', 'install' - } - } -} - -beforeBuild { - dependsOn _initBuild - dependsOn _npmInstall -} - -sourceSets.each { createSoursetTasks(it, distDir) } - -testSets.each { createSoursetTasks(it, testDir) } - -compileTsAmd { - dependsOn compileTsMain -} - -compileTsCjs { - dependsOn compileTsMain -} - -task build(dependsOn: buildMain) { - if (jsmodule == "amd") - dependsOn buildAmd - if (jsmodule == "commonjs") - dependsOn buildCjs -} - -compileTsTest { - dependsOn build -} - -compileTsTestAmd { - dependsOn compileTsTest -} - -compileTsTestCjs { - dependsOn compileTsTest -} - +/* task _installLocalCjsDependency(dependsOn: [buildTestCjs, "_packageMeta"], type: Exec) { inputs.file("$distDir/package.json") outputs.upToDateWhen { @@ -230,7 +127,7 @@ task _installLocalCjsDependency(dependsO commandLine 'npm', 'install', '--no-save', '--force', distDir } -task test(dependsOn: [buildTest], type: Exec) { +task _test(dependsOn: [buildTest], type: Exec) { if (jsmodule == "amd") dependsOn buildTestAmd if (jsmodule == "commonjs") { @@ -240,37 +137,7 @@ task test(dependsOn: [buildTest], type: commandLine 'node', "$testDir/run-tests.js" } - -task _packageMeta(type: Copy) { - mustRunAfter build - - inputs.property("version", version) - from('.') { - include '.npmignore', 'readme.md', 'license', 'history.md' - } - from("$srcDir/package.${jsmodule}.tmpl.json") { - expand project.properties - rename { "package.json" } - } - into distDir -} - -task pack(dependsOn: [build, _packageMeta], type: Exec) { - workingDir distDir - outputs.file("$npmScope-$npmName-${version}.tgz") - - commandLine 'npm', 'pack' -} - -task publish(dependsOn: [build, _packageMeta], type: Exec) { - doFirst { - if (!isRelease) - throw new Exception("Can't publish an unreleased version"); - } - workingDir distDir - - commandLine 'npm', 'publish', '--access', 'public' -} +*/ task markRelease(type: Exec) { onlyIf { tagDistance > 1 } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.7-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/package-lock.json b/package-lock.json --- a/package-lock.json +++ b/package-lock.json @@ -90,7 +90,7 @@ }, "duplexer": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "resolved": "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", "dev": true }, @@ -144,7 +144,7 @@ "dependencies": { "tape": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/tape/-/tape-2.3.3.tgz", + "resolved": "http://registry.npmjs.org/tape/-/tape-2.3.3.tgz", "integrity": "sha1-Lnzgox3wn41oUWZKcYQuDKUFevc=", "dev": true, "requires": { @@ -277,7 +277,7 @@ }, "minimist": { "version": "0.0.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.5.tgz", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.5.tgz", "integrity": "sha1-16oye87PUY+RBqxrjwA/o7zqhWY=", "dev": true }, @@ -316,7 +316,7 @@ }, "readable-stream": { "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "requires": { @@ -369,7 +369,7 @@ }, "string_decoder": { "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true }, @@ -432,7 +432,7 @@ }, "through2": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz", + "resolved": "http://registry.npmjs.org/through2/-/through2-0.2.3.tgz", "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=", "dev": true, "requires": { diff --git a/tslint.json b/tslint.json --- a/tslint.json +++ b/tslint.json @@ -1,5 +1,6 @@ { "extends": "tslint:recommended", + "defaultSeverity": "warn", "rules": { "align": [ true,