##// END OF EJS Templates
added optional lint parameter, -Plint=true to enable all lint tasks
cin -
r94:f8676ff23eda ts-plugin
parent child
Show More
@@ -1,246 +1,256
1 plugins {
1 plugins {
2 id "org.implab.gradle-typescript" version "1.0.1-rc3"
2 id "org.implab.gradle-typescript" version "1.0.1-rc3"
3 }
3 }
4
4
5 // Ссли вСрсия явно Π½Π΅ Π·Π°Π΄Π°Π½Ρ‹ вычисляСм Π΅Π΅ ΠΈΠ· тэга Ρ€Π΅Π²ΠΈΠ·ΠΈΠΈ v.{num}***
5 // Ссли вСрсия явно Π½Π΅ Π·Π°Π΄Π°Π½Ρ‹ вычисляСм Π΅Π΅ ΠΈΠ· тэга Ρ€Π΅Π²ΠΈΠ·ΠΈΠΈ v.{num}***
6 // Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ вСрсия '{num}.{distance}' Π³Π΄Π΅ distance - расстояниС ΠΎΡ‚
6 // Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ вСрсия '{num}.{distance}' Π³Π΄Π΅ distance - расстояниС ΠΎΡ‚
7 // Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π΅Π²ΠΈΠ·ΠΈΠΈ Π΄ΠΎ Ρ€Π΅Π²ΠΈΠ·ΠΈΠΈ с тэгом
7 // Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π΅Π²ΠΈΠ·ΠΈΠΈ Π΄ΠΎ Ρ€Π΅Π²ΠΈΠ·ΠΈΠΈ с тэгом
8 def tagDistance = 0;
8 def tagDistance = 0;
9
9
10 ext {
10 ext {
11 packageName = "@$npmScope/$name"
11 packageName = "@$npmScope/$name"
12 lint = project.hasProperty('lint') ? lint : false
12 }
13 }
13
14
14 if (!version) {
15 if (!version) {
15
16
16 def rev = ["hg", "log", "-r", ".", "--template", "{latesttag('re:^v') % '{tag}-{distance}'}"].execute().text.trim();
17 def rev = ["hg", "log", "-r", ".", "--template", "{latesttag('re:^v') % '{tag}-{distance}'}"].execute().text.trim();
17
18
18 def tagVersion;
19 def tagVersion;
19
20
20 def match = (rev =~ /^v(\d+\.\d+\.\d+).*-(\d+)$/);
21 def match = (rev =~ /^v(\d+\.\d+\.\d+).*-(\d+)$/);
21
22
22 if (match.size()) {
23 if (match.size()) {
23 tagVersion = match[0][1];
24 tagVersion = match[0][1];
24 tagDistance = match[0][2].toInteger();
25 tagDistance = match[0][2].toInteger();
25 } else {
26 } else {
26 throw new Exception("A version must be specied");
27 throw new Exception("A version must be specied");
27 }
28 }
28
29
29 version = tagVersion;
30 version = tagVersion;
30
31
31 if (tagDistance > 0)
32 if (tagDistance > 0)
32 version++;
33 version++;
33 } else {
34 } else {
34 println "explicit version: $version";
35 println "explicit version: $version";
35 }
36 }
36
37
37 if (hasProperty('versionSuffix') && versionSuffix) {
38 if (hasProperty('versionSuffix') && versionSuffix) {
38 version += "-$versionSuffix"
39 version += "-$versionSuffix"
39 }
40 }
40
41
41 sources {
42 sources {
42 amd {
43 amd {
43 typings {
44 typings {
44 srcDir main.output.typingsDir
45 srcDir main.output.typingsDir
45 }
46 }
46 }
47 }
47
48
48 cjs {
49 cjs {
49 typings {
50 typings {
50 srcDir main.output.typingsDir
51 srcDir main.output.typingsDir
51 }
52 }
52 }
53 }
53
54
54 testAmd {
55 testAmd {
55 typings {
56 typings {
56 srcDir main.output.typingsDir
57 srcDir main.output.typingsDir
57 srcDir amd.output.typingsDir
58 srcDir amd.output.typingsDir
58 srcDir test.output.typingsDir
59 srcDir test.output.typingsDir
59 }
60 }
60 }
61 }
61
62
62 testCjs {
63 testCjs {
63 typings {
64 typings {
64 srcDir main.output.typingsDir
65 srcDir main.output.typingsDir
65 srcDir cjs.output.typingsDir
66 srcDir cjs.output.typingsDir
66 srcDir test.output.typingsDir
67 srcDir test.output.typingsDir
67 }
68 }
68 }
69 }
69 }
70 }
70
71
71 typescript {
72 typescript {
72 compilerOptions {
73 compilerOptions {
73 types = []
74 types = []
74 declaration = true
75 declaration = true
75 listFiles = true
76 }
76 }
77 tscCmd = "$projectDir/node_modules/.bin/tsc"
77 tscCmd = "$projectDir/node_modules/.bin/tsc"
78 tsLintCmd = "$projectDir/node_modules/.bin/tslint"
78 tsLintCmd = "$projectDir/node_modules/.bin/tslint"
79 esLintCmd = "$projectDir/node_modules/.bin/eslint"
79 esLintCmd = "$projectDir/node_modules/.bin/eslint"
80 npmCmd = "npm"
80 npmCmd = "npm"
81 }
81 }
82
82
83 tasks.matching{ it.name =~ /^configureTs/ }.configureEach {
84 dependsOn "prepare"
85 }
86
87 tasks.matching{ it.name =~ /^lint/ }.configureEach {
88 onlyIf { lint }
89 }
90
83 task prepare {
91 task prepare {
84
92
85 }
93 }
86
94
87 task printVersion {
95 task printVersion {
88 dependsOn prepare
96 dependsOn prepare
89
97
90 doLast {
98 doLast {
91 println "version: ${-> version}";
99 println "version: ${-> version}";
92 println "tagDistance: ${-> tagDistance}";
100 println "tagDistance: ${-> tagDistance}";
93 println "packageName: ${-> packageName}";
101 println "packageName: ${-> packageName}";
94 println "target: ${-> typescript.compilerOptions.target}";
102 println "target: ${-> typescript.compilerOptions.target}";
95 println "module: ${-> typescript.compilerOptions.module}";
103 println "module: ${-> typescript.compilerOptions.module}";
96 }
104 }
97 }
105 }
98
106
99 task clean {
107 task clean {
108 prepare.mustRunAfter it
109
100 doLast {
110 doLast {
101 delete buildDir
111 delete buildDir
102 }
112 }
103 }
113 }
104
114
105 npmPackMeta {
115 npmPackMeta {
106 meta {
116 meta {
107 name = packageName
117 name = packageName
108 }
118 }
109 }
119 }
110
120
111 configureTsCjs {
121 configureTsCjs {
112 dependsOn sources.main.output
122 dependsOn sources.main.output
113 compilerOptions {
123 compilerOptions {
114 types += [ "node" ]
124 types += [ "node" ]
115 }
125 }
116 }
126 }
117
127
118 configureTsAmd {
128 configureTsAmd {
119 dependsOn sources.main.output
129 dependsOn sources.main.output
120 compilerOptions {
130 compilerOptions {
121 types += [ "requirejs", "dojo-typings" ]
131 types += [ "requirejs", "dojo-typings" ]
122 }
132 }
123 }
133 }
124
134
125 test {
135 test {
126 workingDir layout.buildDirectory.dir("test");
136 workingDir layout.buildDirectory.dir("test");
127 commandLine "node", "tests/index.js"
137 commandLine "node", "tests/index.js"
128 }
138 }
129
139
130 task assembleAmd {
140 task assembleAmd {
131 dependsOn sources.amd.output
141 dependsOn sources.amd.output
132 assemble.mustRunAfter it
142 assemble.mustRunAfter it
133
143
134 doLast {
144 doLast {
135 assemble {
145 assemble {
136 from(sources.amd.output.compiledDir)
146 from(sources.amd.output.compiledDir)
137 }
147 }
138 }
148 }
139 }
149 }
140
150
141 task assembleCjs {
151 task assembleCjs {
142 dependsOn sources.cjs.output
152 dependsOn sources.cjs.output
143 assemble.mustRunAfter it
153 assemble.mustRunAfter it
144
154
145 doLast {
155 doLast {
146 assemble {
156 assemble {
147 from(sources.cjs.output.compiledDir)
157 from(sources.cjs.output.compiledDir)
148 }
158 }
149 }
159 }
150 }
160 }
151
161
152 task assembleTestAmd {
162 task assembleTestAmd {
153 dependsOn sources.amd.output
163 dependsOn sources.amd.output
154 dependsOn sources.testAmd.output
164 dependsOn sources.testAmd.output
155 assembleTest.mustRunAfter it
165 assembleTest.mustRunAfter it
156
166
157 doLast {
167 doLast {
158 assembleTest {
168 assembleTest {
159 from(sources.amd.output.compiledDir)
169 from(sources.amd.output.compiledDir)
160 from(sources.testAmd.output.compiledDir)
170 from(sources.testAmd.output.compiledDir)
161 }
171 }
162 }
172 }
163 }
173 }
164
174
165 task assembleTestCjs {
175 task assembleTestCjs {
166 dependsOn sources.cjs.output
176 dependsOn sources.cjs.output
167 dependsOn sources.testCjs.output
177 dependsOn sources.testCjs.output
168 assembleTest.mustRunAfter it
178 assembleTest.mustRunAfter it
169
179
170 doLast {
180 doLast {
171 assembleTest {
181 assembleTest {
172 from(sources.cjs.output.compiledDir)
182 from(sources.cjs.output.compiledDir)
173 from(sources.testCjs.output.compiledDir)
183 from(sources.testCjs.output.compiledDir)
174 }
184 }
175 }
185 }
176 }
186 }
177
187
178 task prepareTargetEs5 {
188 task prepareTargetEs5 {
179 prepare.mustRunAfter it
189 prepare.mustRunAfter it
180
190
181 doLast {
191 doLast {
182 typescript {
192 typescript {
183 compilerOptions {
193 compilerOptions {
184 target = "es5"
194 target = "es5"
185 lib = ["es5", "dom", "scripthost", "es2015.promise", "es2015.symbol", "es2015.iterable"]
195 lib = ["es5", "dom", "scripthost", "es2015.promise", "es2015.symbol", "es2015.iterable"]
186 }
196 }
187 }
197 }
188 }
198 }
189 }
199 }
190
200
191 task prepareTargetEsNext {
201 task prepareTargetEsNext {
192 prepare.mustRunAfter it
202 prepare.mustRunAfter it
193
203
194 doLast {
204 doLast {
195 typescript {
205 typescript {
196 compilerOptions {
206 compilerOptions {
197 target = "es2017"
207 target = "es2017"
198 lib = ["es2017", "dom", "scripthost"]
208 lib = ["es2017", "dom", "scripthost"]
199 }
209 }
200 }
210 }
201 }
211 }
202 }
212 }
203
213
204 task prepareNode {
214 task prepareNode {
205 dependsOn prepareTargetEsNext
215 dependsOn prepareTargetEsNext
206 prepare.mustRunAfter it
216 prepare.mustRunAfter it
207
217
208 doLast {
218 doLast {
209 typescript {
219 typescript {
210 compilerOptions {
220 compilerOptions {
211 module = "commonjs"
221 module = "commonjs"
212 }
222 }
213 }
223 }
214 }
224 }
215 }
225 }
216
226
217 task prepareBrowser {
227 task prepareBrowser {
218 dependsOn prepareTargetEs5
228 dependsOn prepareTargetEs5
219 prepare.mustRunAfter it
229 prepare.mustRunAfter it
220
230
221 doLast {
231 doLast {
222 packageName = "@$npmScope/$project.name-amd"
232 packageName = "@$npmScope/$project.name-amd"
223
233
224 typescript {
234 typescript {
225 compilerOptions {
235 compilerOptions {
226 module = "amd"
236 module = "amd"
227 }
237 }
228 }
238 }
229 }
239 }
230 }
240 }
231
241
232 task assembleBrowser {
242 task assembleBrowser {
233 dependsOn prepareBrowser, assembleAmd, assemble
243 dependsOn prepareBrowser, assembleAmd, assemble
234 }
244 }
235
245
236 task assembleNode {
246 task assembleNode {
237 dependsOn prepareNode, assembleCjs, assemble
247 dependsOn prepareNode, assembleCjs, assemble
238 }
248 }
239
249
240 task testBrowser {
250 task testBrowser {
241 dependsOn prepareBrowser, assembleTestAmd, test
251 dependsOn prepareBrowser, assembleTestAmd, test
242 }
252 }
243
253
244 task testNode {
254 task testNode {
245 dependsOn prepareNode, assembleTestCjs, test
255 dependsOn prepareNode, assembleTestCjs, test
246 } No newline at end of file
256 }
General Comments 0
You need to be logged in to leave comments. Login now