|
1 | NO CONTENT: new file 100644 |
@@ -0,0 +1,148 | |||
|
1 | import { stringify } from "yaml"; | |
|
2 | ||
|
3 | export interface TapWriter { | |
|
4 | version(): void; | |
|
5 | plan(n: number): void; | |
|
6 | fail(e: any): void; | |
|
7 | ok(msg: string): void; | |
|
8 | skip(msg: string): void; | |
|
9 | bailOut(msg: string): void; | |
|
10 | comment(msg: string): void; | |
|
11 | yaml(data: any): void; | |
|
12 | end(): void; | |
|
13 | } | |
|
14 | ||
|
15 | enum TapState { | |
|
16 | Init, | |
|
17 | VersionWritten, | |
|
18 | Ready, | |
|
19 | ReadyWithoutPlan, | |
|
20 | End | |
|
21 | } | |
|
22 | ||
|
23 | export abstract class AbstractTapWriter implements TapWriter { | |
|
24 | private _state = TapState.Init; | |
|
25 | private _version = 13; | |
|
26 | private _testIndex = 1; | |
|
27 | ||
|
28 | private _moveVersion() { | |
|
29 | switch (this._state) { | |
|
30 | case TapState.Init: | |
|
31 | this._state = TapState.VersionWritten; | |
|
32 | break; | |
|
33 | default: | |
|
34 | throw new Error("Invalid operation"); | |
|
35 | } | |
|
36 | ||
|
37 | } | |
|
38 | ||
|
39 | private _movePlan() { | |
|
40 | switch (this._state) { | |
|
41 | case TapState.Init: | |
|
42 | case TapState.VersionWritten: | |
|
43 | this._state = TapState.Ready; | |
|
44 | break; | |
|
45 | case TapState.ReadyWithoutPlan: | |
|
46 | this._state = TapState.End; | |
|
47 | break; | |
|
48 | default: | |
|
49 | throw new Error("Invalid operation"); | |
|
50 | } | |
|
51 | } | |
|
52 | ||
|
53 | private _moveTestResult() { | |
|
54 | switch (this._state) { | |
|
55 | case TapState.Init: | |
|
56 | case TapState.VersionWritten: | |
|
57 | this._state = TapState.ReadyWithoutPlan; | |
|
58 | break; | |
|
59 | case TapState.Ready: | |
|
60 | case TapState.ReadyWithoutPlan: | |
|
61 | break; | |
|
62 | default: | |
|
63 | throw new Error("Invalid operation"); | |
|
64 | } | |
|
65 | } | |
|
66 | ||
|
67 | private _moveEnd() { | |
|
68 | switch (this._state) { | |
|
69 | case TapState.End: | |
|
70 | throw new Error("Invalid operation"); | |
|
71 | default: | |
|
72 | this._state = TapState.End; | |
|
73 | } | |
|
74 | } | |
|
75 | ||
|
76 | private _moveDiag() { | |
|
77 | switch (this._state) { | |
|
78 | case TapState.Init: | |
|
79 | case TapState.VersionWritten: | |
|
80 | this._state = TapState.ReadyWithoutPlan; | |
|
81 | break; | |
|
82 | case TapState.Ready: | |
|
83 | case TapState.ReadyWithoutPlan: | |
|
84 | break; | |
|
85 | default: | |
|
86 | throw new Error("Invalid operation"); | |
|
87 | } | |
|
88 | } | |
|
89 | ||
|
90 | version() { | |
|
91 | this._moveVersion(); | |
|
92 | ||
|
93 | this._writeLine(`TAP version ${this._version}`); | |
|
94 | } | |
|
95 | ||
|
96 | plan(n: number) { | |
|
97 | this._movePlan(); | |
|
98 | ||
|
99 | this._writeLine(`1..${n}`); | |
|
100 | } | |
|
101 | ||
|
102 | fail(e: any) { | |
|
103 | this._moveTestResult(); | |
|
104 | ||
|
105 | this._writeText(`not ok ${this._testIndex} ${e}`); | |
|
106 | this._testIndex++; | |
|
107 | } | |
|
108 | ||
|
109 | ok(msg: string) { | |
|
110 | this._moveTestResult(); | |
|
111 | ||
|
112 | this._writeText(`ok ${this._testIndex} ${msg}`); | |
|
113 | this._testIndex++; | |
|
114 | } | |
|
115 | skip(msg: string) { | |
|
116 | this._moveTestResult(); | |
|
117 | ||
|
118 | this._writeText(`ok ${this._testIndex} # SKIPPED: ${msg}`); | |
|
119 | this._testIndex++; | |
|
120 | } | |
|
121 | bailOut(msg: string) { | |
|
122 | this._moveEnd(); | |
|
123 | ||
|
124 | this._writeText(`Bail out! ${msg}`); | |
|
125 | } | |
|
126 | comment(msg: string) { | |
|
127 | this._moveDiag(); | |
|
128 | ||
|
129 | this._writeText(`# ${msg}`); | |
|
130 | } | |
|
131 | yaml(data: any) { | |
|
132 | this._moveDiag(); | |
|
133 | ||
|
134 | this._writeLine(" ---"); | |
|
135 | stringify(data).split("\r\n?").forEach(line => this._writeLine(" " + line)); | |
|
136 | this._writeLine(" ..."); | |
|
137 | } | |
|
138 | end() { | |
|
139 | this._moveEnd(); | |
|
140 | } | |
|
141 | ||
|
142 | private _writeText(text: string) { | |
|
143 | text.split("\r\n?").forEach((line, i) => this._writeLine(i ? "# " + line : line)); | |
|
144 | } | |
|
145 | ||
|
146 | abstract _writeLine(text: string): void; | |
|
147 | ||
|
148 | } |
@@ -0,0 +1,18 | |||
|
1 | import { AbstractTapWriter } from "./Tap"; | |
|
2 | import { TextWriter } from "@implab/core-amd/interfaces"; | |
|
3 | ||
|
4 | export class TextTapWriter extends AbstractTapWriter { | |
|
5 | ||
|
6 | private readonly _writer: TextWriter; | |
|
7 | ||
|
8 | constructor(writer: TextWriter) { | |
|
9 | super(); | |
|
10 | ||
|
11 | this._writer = writer; | |
|
12 | } | |
|
13 | ||
|
14 | _writeLine(text: string) { | |
|
15 | this._writer.writeLine(text); | |
|
16 | } | |
|
17 | ||
|
18 | } No newline at end of file |
@@ -8,6 +8,7 typescript { | |||
|
8 | 8 | lib = ["es5", "dom", "scripthost", "es2015.promise", "es2015.symbol", "es2015.iterable"] |
|
9 | 9 | listFiles = true |
|
10 | 10 | declaration = true |
|
11 | strict = true | |
|
11 | 12 | types = [] |
|
12 | 13 | module = "amd" |
|
13 | 14 | it.target = "es5" |
This diff has been collapsed as it changes many lines, (511 lines changed) Show them Hide them | |||
@@ -22,6 +22,15 | |||
|
22 | 22 | "js-tokens": "^4.0.0" |
|
23 | 23 | } |
|
24 | 24 | }, |
|
25 | "@babel/runtime": { | |
|
26 | "version": "7.8.3", | |
|
27 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.3.tgz", | |
|
28 | "integrity": "sha512-fVHx1rzEmwB130VTkLnxR+HmxcTjGzH12LYQcFFoBwakMd3aOMD4OsRN7tGG/UOYE2ektgFrS8uACAoRk1CY0w==", | |
|
29 | "dev": true, | |
|
30 | "requires": { | |
|
31 | "regenerator-runtime": "^0.13.2" | |
|
32 | } | |
|
33 | }, | |
|
25 | 34 | "@implab/core-amd": { |
|
26 | 35 | "version": "1.3.2", |
|
27 | 36 | "resolved": "https://registry.npmjs.org/@implab/core-amd/-/core-amd-1.3.2.tgz", |
@@ -29,15 +38,9 | |||
|
29 | 38 | "dev": true |
|
30 | 39 | }, |
|
31 | 40 | "@types/chai": { |
|
32 |
"version": "4. |
|
|
33 |
"resolved": "https://registry.npmjs.org/@types/chai/-/chai-4. |
|
|
34 | "integrity": "sha512-luq8meHGYwvky0O7u0eQZdA7B4Wd9owUCqvbw2m3XCrCU8mplYOujMBbvyS547AxJkC+pGnd0Cm15eNxEUNU8g==", | |
|
35 | "dev": true | |
|
36 | }, | |
|
37 | "@types/node": { | |
|
38 | "version": "8.0.0", | |
|
39 | "resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.0.tgz", | |
|
40 | "integrity": "sha512-j2tekvJCO7j22cs+LO6i0kRPhmQ9MXaPZ55TzOc1lzkN5b6BWqq4AFjl04s1oRRQ1v5rSe+KEvnLUSTonuls/A==", | |
|
41 | "version": "4.1.3", | |
|
42 | "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.3.tgz", | |
|
43 | "integrity": "sha512-f5dXGzOJycyzSMdaXVhiBhauL4dYydXwVpavfQ1mVCaGjR56a9QfklXObUxlIY9bGTmCPHEEZ04I16BZ/8w5ww==", | |
|
41 | 44 | "dev": true |
|
42 | 45 | }, |
|
43 | 46 | "@types/requirejs": { |
@@ -46,14 +49,11 | |||
|
46 | 49 | "integrity": "sha512-b2soeyuU76rMbcRJ4e0hEl0tbMhFwZeTC0VZnfuWlfGlk6BwWNsev6kFu/twKABPX29wkX84wU2o+cEJoXsiTw==", |
|
47 | 50 | "dev": true |
|
48 | 51 | }, |
|
49 |
"@types/ |
|
|
50 |
"version": " |
|
|
51 |
"resolved": "https://registry.npmjs.org/@types/ |
|
|
52 | "integrity": "sha512-ltfyuY5BIkYlGuQfwqzTDT8f0q8Z5DGppvUnWGs39oqDmMd6/UWhNpX3ZMh/VYvfxs3rFGHMrLC/eGRdLiDGuw==", | |
|
53 |
"dev": true |
|
|
54 | "requires": { | |
|
55 | "@types/node": "*" | |
|
56 | } | |
|
52 | "@types/yaml": { | |
|
53 | "version": "1.2.0", | |
|
54 | "resolved": "https://registry.npmjs.org/@types/yaml/-/yaml-1.2.0.tgz", | |
|
55 | "integrity": "sha512-GW8b9qM+ebgW3/zjzPm0I1NxMvLaz/YKT9Ph6tTb+Fkeyzd9yLTvQ6ciQ2MorTRmb/qXmfjMerRpG4LviixaqQ==", | |
|
56 | "dev": true | |
|
57 | 57 | }, |
|
58 | 58 | "acorn": { |
|
59 | 59 | "version": "7.1.0", |
@@ -80,15 +80,18 | |||
|
80 | 80 | } |
|
81 | 81 | }, |
|
82 | 82 | "ansi-escapes": { |
|
83 |
"version": " |
|
|
84 |
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes- |
|
|
85 | "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", | |
|
86 | "dev": true | |
|
83 | "version": "4.3.0", | |
|
84 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz", | |
|
85 | "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==", | |
|
86 | "dev": true, | |
|
87 | "requires": { | |
|
88 | "type-fest": "^0.8.1" | |
|
89 | } | |
|
87 | 90 | }, |
|
88 | 91 | "ansi-regex": { |
|
89 |
"version": " |
|
|
90 |
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex- |
|
|
91 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", | |
|
92 | "version": "5.0.0", | |
|
93 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", | |
|
94 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", | |
|
92 | 95 | "dev": true |
|
93 | 96 | }, |
|
94 | 97 | "ansi-styles": { |
@@ -109,6 +112,12 | |||
|
109 | 112 | "sprintf-js": "~1.0.2" |
|
110 | 113 | } |
|
111 | 114 | }, |
|
115 | "assertion-error": { | |
|
116 | "version": "1.1.0", | |
|
117 | "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", | |
|
118 | "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", | |
|
119 | "dev": true | |
|
120 | }, | |
|
112 | 121 | "astral-regex": { |
|
113 | 122 | "version": "1.0.0", |
|
114 | 123 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", |
@@ -143,6 +152,20 | |||
|
143 | 152 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", |
|
144 | 153 | "dev": true |
|
145 | 154 | }, |
|
155 | "chai": { | |
|
156 | "version": "4.2.0", | |
|
157 | "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", | |
|
158 | "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", | |
|
159 | "dev": true, | |
|
160 | "requires": { | |
|
161 | "assertion-error": "^1.1.0", | |
|
162 | "check-error": "^1.0.2", | |
|
163 | "deep-eql": "^3.0.1", | |
|
164 | "get-func-name": "^2.0.0", | |
|
165 | "pathval": "^1.1.0", | |
|
166 | "type-detect": "^4.0.5" | |
|
167 | } | |
|
168 | }, | |
|
146 | 169 | "chalk": { |
|
147 | 170 | "version": "2.4.2", |
|
148 | 171 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", |
@@ -160,13 +183,19 | |||
|
160 | 183 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", |
|
161 | 184 | "dev": true |
|
162 | 185 | }, |
|
186 | "check-error": { | |
|
187 | "version": "1.0.2", | |
|
188 | "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", | |
|
189 | "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", | |
|
190 | "dev": true | |
|
191 | }, | |
|
163 | 192 | "cli-cursor": { |
|
164 |
"version": " |
|
|
165 |
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor- |
|
|
166 | "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", | |
|
193 | "version": "3.1.0", | |
|
194 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", | |
|
195 | "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", | |
|
167 | 196 | "dev": true, |
|
168 | 197 | "requires": { |
|
169 |
"restore-cursor": "^ |
|
|
198 | "restore-cursor": "^3.1.0" | |
|
170 | 199 | } |
|
171 | 200 | }, |
|
172 | 201 | "cli-width": { |
@@ -232,11 +261,14 | |||
|
232 | 261 | "ms": "^2.1.1" |
|
233 | 262 | } |
|
234 | 263 | }, |
|
235 |
"deep-eq |
|
|
236 |
"version": " |
|
|
237 |
"resolved": "https://registry.npmjs.org/deep-eq |
|
|
238 | "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", | |
|
239 | "dev": true | |
|
264 | "deep-eql": { | |
|
265 | "version": "3.0.1", | |
|
266 | "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", | |
|
267 | "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", | |
|
268 | "dev": true, | |
|
269 | "requires": { | |
|
270 | "type-detect": "^4.0.0" | |
|
271 | } | |
|
240 | 272 | }, |
|
241 | 273 | "deep-is": { |
|
242 | 274 | "version": "0.1.3", |
@@ -244,25 +276,10 | |||
|
244 | 276 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", |
|
245 | 277 | "dev": true |
|
246 | 278 | }, |
|
247 | "define-properties": { | |
|
248 | "version": "1.1.3", | |
|
249 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", | |
|
250 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", | |
|
251 | "dev": true, | |
|
252 | "requires": { | |
|
253 | "object-keys": "^1.0.12" | |
|
254 | } | |
|
255 | }, | |
|
256 | "defined": { | |
|
257 | "version": "1.0.0", | |
|
258 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", | |
|
259 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", | |
|
260 | "dev": true | |
|
261 | }, | |
|
262 | 279 | "diff": { |
|
263 |
"version": " |
|
|
264 |
"resolved": "https://registry.npmjs.org/diff/-/diff- |
|
|
265 | "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", | |
|
280 | "version": "4.0.2", | |
|
281 | "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", | |
|
282 | "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", | |
|
266 | 283 | "dev": true |
|
267 | 284 | }, |
|
268 | 285 | "doctrine": { |
@@ -275,9 +292,9 | |||
|
275 | 292 | } |
|
276 | 293 | }, |
|
277 | 294 | "dojo": { |
|
278 |
"version": "1.1 |
|
|
279 |
"resolved": "https://registry.npmjs.org/dojo/-/dojo-1.1 |
|
|
280 | "integrity": "sha512-kg79C8Yyd317cG3MgXGMH4AeQ8TgNr8H/PpA3BRms7DTfl0CJCRAgGE/C6d9Nw55s1ID/fEsfS+P3bj1s7dWgA==", | |
|
295 | "version": "1.16.0", | |
|
296 | "resolved": "https://registry.npmjs.org/dojo/-/dojo-1.16.0.tgz", | |
|
297 | "integrity": "sha512-DUiXyoLK6vMF5BPr/qiMLTxDMfiM9qlzN1jxfDsVfuvB/CwhYpNxA/M4mbqKN8PCVGLmccXBJbfmFJPP5+zmzw==", | |
|
281 | 298 | "dev": true |
|
282 | 299 | }, |
|
283 | 300 | "dojo-typings": { |
@@ -290,49 +307,11 | |||
|
290 | 307 | } |
|
291 | 308 | }, |
|
292 | 309 | "emoji-regex": { |
|
293 |
"version": " |
|
|
294 |
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex- |
|
|
295 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", | |
|
310 | "version": "8.0.0", | |
|
311 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", | |
|
312 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", | |
|
296 | 313 | "dev": true |
|
297 | 314 | }, |
|
298 | "es-abstract": { | |
|
299 | "version": "1.17.4", | |
|
300 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", | |
|
301 | "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", | |
|
302 | "dev": true, | |
|
303 | "requires": { | |
|
304 | "es-to-primitive": "^1.2.1", | |
|
305 | "function-bind": "^1.1.1", | |
|
306 | "has": "^1.0.3", | |
|
307 | "has-symbols": "^1.0.1", | |
|
308 | "is-callable": "^1.1.5", | |
|
309 | "is-regex": "^1.0.5", | |
|
310 | "object-inspect": "^1.7.0", | |
|
311 | "object-keys": "^1.1.1", | |
|
312 | "object.assign": "^4.1.0", | |
|
313 | "string.prototype.trimleft": "^2.1.1", | |
|
314 | "string.prototype.trimright": "^2.1.1" | |
|
315 | }, | |
|
316 | "dependencies": { | |
|
317 | "object-inspect": { | |
|
318 | "version": "1.7.0", | |
|
319 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", | |
|
320 | "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", | |
|
321 | "dev": true | |
|
322 | } | |
|
323 | } | |
|
324 | }, | |
|
325 | "es-to-primitive": { | |
|
326 | "version": "1.2.1", | |
|
327 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", | |
|
328 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", | |
|
329 | "dev": true, | |
|
330 | "requires": { | |
|
331 | "is-callable": "^1.1.4", | |
|
332 | "is-date-object": "^1.0.1", | |
|
333 | "is-symbol": "^1.0.2" | |
|
334 | } | |
|
335 | }, | |
|
336 | 315 | "escape-string-regexp": { |
|
337 | 316 | "version": "1.0.5", |
|
338 | 317 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", |
@@ -340,9 +319,9 | |||
|
340 | 319 | "dev": true |
|
341 | 320 | }, |
|
342 | 321 | "eslint": { |
|
343 |
"version": "6. |
|
|
344 |
"resolved": "https://registry.npmjs.org/eslint/-/eslint-6. |
|
|
345 | "integrity": "sha512-QhrbdRD7ofuV09IuE2ySWBz0FyXCq0rriLTZXZqaWSI79CVtHVRdkFuFTViiqzZhkCgfOh9USpriuGN2gIpZDQ==", | |
|
322 | "version": "6.8.0", | |
|
323 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", | |
|
324 | "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", | |
|
346 | 325 | "dev": true, |
|
347 | 326 | "requires": { |
|
348 | 327 | "@babel/code-frame": "^7.0.0", |
@@ -352,19 +331,19 | |||
|
352 | 331 | "debug": "^4.0.1", |
|
353 | 332 | "doctrine": "^3.0.0", |
|
354 | 333 | "eslint-scope": "^5.0.0", |
|
355 |
"eslint-utils": "^1. |
|
|
356 |
"eslint-visitor-keys": "^1. |
|
|
357 |
"espree": "^6. |
|
|
334 | "eslint-utils": "^1.4.3", | |
|
335 | "eslint-visitor-keys": "^1.1.0", | |
|
336 | "espree": "^6.1.2", | |
|
358 | 337 | "esquery": "^1.0.1", |
|
359 | 338 | "esutils": "^2.0.2", |
|
360 | 339 | "file-entry-cache": "^5.0.1", |
|
361 | 340 | "functional-red-black-tree": "^1.0.1", |
|
362 | 341 | "glob-parent": "^5.0.0", |
|
363 |
"globals": "^1 |
|
|
342 | "globals": "^12.1.0", | |
|
364 | 343 | "ignore": "^4.0.6", |
|
365 | 344 | "import-fresh": "^3.0.0", |
|
366 | 345 | "imurmurhash": "^0.1.4", |
|
367 |
"inquirer": "^ |
|
|
346 | "inquirer": "^7.0.0", | |
|
368 | 347 | "is-glob": "^4.0.0", |
|
369 | 348 | "js-yaml": "^3.13.1", |
|
370 | 349 | "json-stable-stringify-without-jsonify": "^1.0.1", |
@@ -373,7 +352,7 | |||
|
373 | 352 | "minimatch": "^3.0.4", |
|
374 | 353 | "mkdirp": "^0.5.1", |
|
375 | 354 | "natural-compare": "^1.4.0", |
|
376 |
"optionator": "^0.8. |
|
|
355 | "optionator": "^0.8.3", | |
|
377 | 356 | "progress": "^2.0.0", |
|
378 | 357 | "regexpp": "^2.0.1", |
|
379 | 358 | "semver": "^6.1.2", |
@@ -486,9 +465,9 | |||
|
486 | 465 | "dev": true |
|
487 | 466 | }, |
|
488 | 467 | "figures": { |
|
489 |
"version": " |
|
|
490 |
"resolved": "https://registry.npmjs.org/figures/-/figures- |
|
|
491 | "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", | |
|
468 | "version": "3.1.0", | |
|
469 | "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz", | |
|
470 | "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==", | |
|
492 | 471 | "dev": true, |
|
493 | 472 | "requires": { |
|
494 | 473 | "escape-string-regexp": "^1.0.5" |
@@ -520,33 +499,24 | |||
|
520 | 499 | "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", |
|
521 | 500 | "dev": true |
|
522 | 501 | }, |
|
523 | "for-each": { | |
|
524 | "version": "0.3.3", | |
|
525 | "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", | |
|
526 | "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", | |
|
527 | "dev": true, | |
|
528 | "requires": { | |
|
529 | "is-callable": "^1.1.3" | |
|
530 | } | |
|
531 | }, | |
|
532 | 502 | "fs.realpath": { |
|
533 | 503 | "version": "1.0.0", |
|
534 | 504 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", |
|
535 | 505 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", |
|
536 | 506 | "dev": true |
|
537 | 507 | }, |
|
538 | "function-bind": { | |
|
539 | "version": "1.1.1", | |
|
540 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", | |
|
541 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", | |
|
542 | "dev": true | |
|
543 | }, | |
|
544 | 508 | "functional-red-black-tree": { |
|
545 | 509 | "version": "1.0.1", |
|
546 | 510 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", |
|
547 | 511 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", |
|
548 | 512 | "dev": true |
|
549 | 513 | }, |
|
514 | "get-func-name": { | |
|
515 | "version": "2.0.0", | |
|
516 | "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", | |
|
517 | "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", | |
|
518 | "dev": true | |
|
519 | }, | |
|
550 | 520 | "glob": { |
|
551 | 521 | "version": "7.1.6", |
|
552 | 522 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", |
@@ -571,18 +541,12 | |||
|
571 | 541 | } |
|
572 | 542 | }, |
|
573 | 543 | "globals": { |
|
574 |
"version": "1 |
|
|
575 |
"resolved": "https://registry.npmjs.org/globals/-/globals-1 |
|
|
576 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", | |
|
577 | "dev": true | |
|
578 | }, | |
|
579 | "has": { | |
|
580 | "version": "1.0.3", | |
|
581 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", | |
|
582 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", | |
|
544 | "version": "12.3.0", | |
|
545 | "resolved": "https://registry.npmjs.org/globals/-/globals-12.3.0.tgz", | |
|
546 | "integrity": "sha512-wAfjdLgFsPZsklLJvOBUBmzYE8/CwhEqSBEMRXA3qxIiNtyqvjYurAtIfDh6chlEPUfmTY3MnZh5Hfh4q0UlIw==", | |
|
583 | 547 | "dev": true, |
|
584 | 548 | "requires": { |
|
585 |
" |
|
|
549 | "type-fest": "^0.8.1" | |
|
586 | 550 | } |
|
587 | 551 | }, |
|
588 | 552 | "has-flag": { |
@@ -591,12 +555,6 | |||
|
591 | 555 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", |
|
592 | 556 | "dev": true |
|
593 | 557 | }, |
|
594 | "has-symbols": { | |
|
595 | "version": "1.0.1", | |
|
596 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", | |
|
597 | "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", | |
|
598 | "dev": true | |
|
599 | }, | |
|
600 | 558 | "iconv-lite": { |
|
601 | 559 | "version": "0.4.24", |
|
602 | 560 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", |
@@ -645,38 +603,26 | |||
|
645 | 603 | "dev": true |
|
646 | 604 | }, |
|
647 | 605 | "inquirer": { |
|
648 |
"version": " |
|
|
649 |
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer- |
|
|
650 | "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", | |
|
606 | "version": "7.0.3", | |
|
607 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.3.tgz", | |
|
608 | "integrity": "sha512-+OiOVeVydu4hnCGLCSX+wedovR/Yzskv9BFqUNNKq9uU2qg7LCcCo3R86S2E7WLo0y/x2pnEZfZe1CoYnORUAw==", | |
|
651 | 609 | "dev": true, |
|
652 | 610 | "requires": { |
|
653 |
"ansi-escapes": "^ |
|
|
611 | "ansi-escapes": "^4.2.1", | |
|
654 | 612 | "chalk": "^2.4.2", |
|
655 |
"cli-cursor": "^ |
|
|
613 | "cli-cursor": "^3.1.0", | |
|
656 | 614 | "cli-width": "^2.0.0", |
|
657 | 615 | "external-editor": "^3.0.3", |
|
658 |
"figures": "^ |
|
|
659 |
"lodash": "^4.17.1 |
|
|
660 |
"mute-stream": "0.0. |
|
|
616 | "figures": "^3.0.0", | |
|
617 | "lodash": "^4.17.15", | |
|
618 | "mute-stream": "0.0.8", | |
|
661 | 619 | "run-async": "^2.2.0", |
|
662 |
"rxjs": "^6. |
|
|
663 |
"string-width": "^ |
|
|
620 | "rxjs": "^6.5.3", | |
|
621 | "string-width": "^4.1.0", | |
|
664 | 622 | "strip-ansi": "^5.1.0", |
|
665 | 623 | "through": "^2.3.6" |
|
666 | 624 | } |
|
667 | 625 | }, |
|
668 | "is-callable": { | |
|
669 | "version": "1.1.5", | |
|
670 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", | |
|
671 | "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", | |
|
672 | "dev": true | |
|
673 | }, | |
|
674 | "is-date-object": { | |
|
675 | "version": "1.0.2", | |
|
676 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", | |
|
677 | "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", | |
|
678 | "dev": true | |
|
679 | }, | |
|
680 | 626 | "is-extglob": { |
|
681 | 627 | "version": "2.1.1", |
|
682 | 628 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", |
@@ -684,9 +630,9 | |||
|
684 | 630 | "dev": true |
|
685 | 631 | }, |
|
686 | 632 | "is-fullwidth-code-point": { |
|
687 |
"version": " |
|
|
688 |
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point- |
|
|
689 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", | |
|
633 | "version": "3.0.0", | |
|
634 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", | |
|
635 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", | |
|
690 | 636 | "dev": true |
|
691 | 637 | }, |
|
692 | 638 | "is-glob": { |
@@ -704,24 +650,6 | |||
|
704 | 650 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", |
|
705 | 651 | "dev": true |
|
706 | 652 | }, |
|
707 | "is-regex": { | |
|
708 | "version": "1.0.5", | |
|
709 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", | |
|
710 | "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", | |
|
711 | "dev": true, | |
|
712 | "requires": { | |
|
713 | "has": "^1.0.3" | |
|
714 | } | |
|
715 | }, | |
|
716 | "is-symbol": { | |
|
717 | "version": "1.0.3", | |
|
718 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", | |
|
719 | "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", | |
|
720 | "dev": true, | |
|
721 | "requires": { | |
|
722 | "has-symbols": "^1.0.1" | |
|
723 | } | |
|
724 | }, | |
|
725 | 653 | "isexe": { |
|
726 | 654 | "version": "2.0.0", |
|
727 | 655 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", |
@@ -773,9 +701,9 | |||
|
773 | 701 | "dev": true |
|
774 | 702 | }, |
|
775 | 703 | "mimic-fn": { |
|
776 |
"version": " |
|
|
777 |
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn- |
|
|
778 | "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", | |
|
704 | "version": "2.1.0", | |
|
705 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", | |
|
706 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", | |
|
779 | 707 | "dev": true |
|
780 | 708 | }, |
|
781 | 709 | "minimatch": { |
@@ -809,9 +737,9 | |||
|
809 | 737 | "dev": true |
|
810 | 738 | }, |
|
811 | 739 | "mute-stream": { |
|
812 |
"version": "0.0. |
|
|
813 |
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0. |
|
|
814 | "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", | |
|
740 | "version": "0.0.8", | |
|
741 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", | |
|
742 | "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", | |
|
815 | 743 | "dev": true |
|
816 | 744 | }, |
|
817 | 745 | "natural-compare": { |
@@ -826,30 +754,6 | |||
|
826 | 754 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", |
|
827 | 755 | "dev": true |
|
828 | 756 | }, |
|
829 | "object-inspect": { | |
|
830 | "version": "1.6.0", | |
|
831 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", | |
|
832 | "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==", | |
|
833 | "dev": true | |
|
834 | }, | |
|
835 | "object-keys": { | |
|
836 | "version": "1.1.1", | |
|
837 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", | |
|
838 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", | |
|
839 | "dev": true | |
|
840 | }, | |
|
841 | "object.assign": { | |
|
842 | "version": "4.1.0", | |
|
843 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", | |
|
844 | "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", | |
|
845 | "dev": true, | |
|
846 | "requires": { | |
|
847 | "define-properties": "^1.1.2", | |
|
848 | "function-bind": "^1.1.1", | |
|
849 | "has-symbols": "^1.0.0", | |
|
850 | "object-keys": "^1.0.11" | |
|
851 | } | |
|
852 | }, | |
|
853 | 757 | "once": { |
|
854 | 758 | "version": "1.4.0", |
|
855 | 759 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", |
@@ -860,12 +764,12 | |||
|
860 | 764 | } |
|
861 | 765 | }, |
|
862 | 766 | "onetime": { |
|
863 |
"version": " |
|
|
864 |
"resolved": "https://registry.npmjs.org/onetime/-/onetime- |
|
|
865 | "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", | |
|
767 | "version": "5.1.0", | |
|
768 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", | |
|
769 | "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", | |
|
866 | 770 | "dev": true, |
|
867 | 771 | "requires": { |
|
868 |
"mimic-fn": "^ |
|
|
772 | "mimic-fn": "^2.1.0" | |
|
869 | 773 | } |
|
870 | 774 | }, |
|
871 | 775 | "optionator": { |
@@ -915,6 +819,12 | |||
|
915 | 819 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", |
|
916 | 820 | "dev": true |
|
917 | 821 | }, |
|
822 | "pathval": { | |
|
823 | "version": "1.1.0", | |
|
824 | "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", | |
|
825 | "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", | |
|
826 | "dev": true | |
|
827 | }, | |
|
918 | 828 | "prelude-ls": { |
|
919 | 829 | "version": "1.1.2", |
|
920 | 830 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", |
@@ -933,22 +843,22 | |||
|
933 | 843 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", |
|
934 | 844 | "dev": true |
|
935 | 845 | }, |
|
846 | "regenerator-runtime": { | |
|
847 | "version": "0.13.3", | |
|
848 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", | |
|
849 | "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", | |
|
850 | "dev": true | |
|
851 | }, | |
|
936 | 852 | "regexpp": { |
|
937 | 853 | "version": "2.0.1", |
|
938 | 854 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", |
|
939 | 855 | "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", |
|
940 | 856 | "dev": true |
|
941 | 857 | }, |
|
942 | "requirejs": { | |
|
943 | "version": "2.3.6", | |
|
944 | "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz", | |
|
945 | "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", | |
|
946 | "dev": true | |
|
947 | }, | |
|
948 | 858 | "resolve": { |
|
949 |
"version": "1.1 |
|
|
950 |
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1 |
|
|
951 | "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", | |
|
859 | "version": "1.15.0", | |
|
860 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.0.tgz", | |
|
861 | "integrity": "sha512-+hTmAldEGE80U2wJJDC1lebb5jWqvTYAfm3YZ1ckk1gBr0MnCqUKlwK1e+anaFljIl+F5tR5IoZcm4ZDA1zMQw==", | |
|
952 | 862 | "dev": true, |
|
953 | 863 | "requires": { |
|
954 | 864 | "path-parse": "^1.0.6" |
@@ -961,24 +871,15 | |||
|
961 | 871 | "dev": true |
|
962 | 872 | }, |
|
963 | 873 | "restore-cursor": { |
|
964 |
"version": " |
|
|
965 |
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor- |
|
|
966 | "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", | |
|
874 | "version": "3.1.0", | |
|
875 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", | |
|
876 | "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", | |
|
967 | 877 | "dev": true, |
|
968 | 878 | "requires": { |
|
969 |
"onetime": "^ |
|
|
879 | "onetime": "^5.1.0", | |
|
970 | 880 | "signal-exit": "^3.0.2" |
|
971 | 881 | } |
|
972 | 882 | }, |
|
973 | "resumer": { | |
|
974 | "version": "0.0.0", | |
|
975 | "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", | |
|
976 | "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", | |
|
977 | "dev": true, | |
|
978 | "requires": { | |
|
979 | "through": "~2.3.4" | |
|
980 | } | |
|
981 | }, | |
|
982 | 883 | "rimraf": { |
|
983 | 884 | "version": "2.6.3", |
|
984 | 885 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", |
@@ -1048,6 +949,14 | |||
|
1048 | 949 | "ansi-styles": "^3.2.0", |
|
1049 | 950 | "astral-regex": "^1.0.0", |
|
1050 | 951 | "is-fullwidth-code-point": "^2.0.0" |
|
952 | }, | |
|
953 | "dependencies": { | |
|
954 | "is-fullwidth-code-point": { | |
|
955 | "version": "2.0.0", | |
|
956 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", | |
|
957 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", | |
|
958 | "dev": true | |
|
959 | } | |
|
1051 | 960 | } |
|
1052 | 961 | }, |
|
1053 | 962 | "sprintf-js": { |
@@ -1057,55 +966,25 | |||
|
1057 | 966 | "dev": true |
|
1058 | 967 | }, |
|
1059 | 968 | "string-width": { |
|
1060 |
"version": " |
|
|
1061 |
"resolved": "https://registry.npmjs.org/string-width/-/string-width- |
|
|
1062 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", | |
|
969 | "version": "4.2.0", | |
|
970 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", | |
|
971 | "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", | |
|
1063 | 972 | "dev": true, |
|
1064 | 973 | "requires": { |
|
1065 |
" |
|
|
1066 |
" |
|
|
974 | "emoji-regex": "^8.0.0", | |
|
975 | "is-fullwidth-code-point": "^3.0.0", | |
|
976 | "strip-ansi": "^6.0.0" | |
|
1067 | 977 | }, |
|
1068 | 978 | "dependencies": { |
|
1069 | 979 | "strip-ansi": { |
|
1070 |
"version": " |
|
|
1071 |
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi- |
|
|
1072 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", | |
|
1073 | "dev": true, | |
|
1074 | "requires": { | |
|
1075 | "ansi-regex": "^3.0.0" | |
|
1076 | } | |
|
1077 | } | |
|
1078 | } | |
|
1079 | }, | |
|
1080 | "string.prototype.trim": { | |
|
1081 | "version": "1.1.2", | |
|
1082 | "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", | |
|
1083 | "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", | |
|
980 | "version": "6.0.0", | |
|
981 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", | |
|
982 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", | |
|
1084 | 983 | "dev": true, |
|
1085 | 984 | "requires": { |
|
1086 | "define-properties": "^1.1.2", | |
|
1087 | "es-abstract": "^1.5.0", | |
|
1088 | "function-bind": "^1.0.2" | |
|
985 | "ansi-regex": "^5.0.0" | |
|
1089 | 986 | } |
|
1090 | }, | |
|
1091 | "string.prototype.trimleft": { | |
|
1092 | "version": "2.1.1", | |
|
1093 | "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", | |
|
1094 | "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", | |
|
1095 | "dev": true, | |
|
1096 | "requires": { | |
|
1097 | "define-properties": "^1.1.3", | |
|
1098 | "function-bind": "^1.1.1" | |
|
1099 | 987 | } |
|
1100 | }, | |
|
1101 | "string.prototype.trimright": { | |
|
1102 | "version": "2.1.1", | |
|
1103 | "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", | |
|
1104 | "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", | |
|
1105 | "dev": true, | |
|
1106 | "requires": { | |
|
1107 | "define-properties": "^1.1.3", | |
|
1108 | "function-bind": "^1.1.1" | |
|
1109 | 988 | } |
|
1110 | 989 | }, |
|
1111 | 990 | "strip-ansi": { |
@@ -1152,6 +1031,18 | |||
|
1152 | 1031 | "string-width": "^3.0.0" |
|
1153 | 1032 | }, |
|
1154 | 1033 | "dependencies": { |
|
1034 | "emoji-regex": { | |
|
1035 | "version": "7.0.3", | |
|
1036 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", | |
|
1037 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", | |
|
1038 | "dev": true | |
|
1039 | }, | |
|
1040 | "is-fullwidth-code-point": { | |
|
1041 | "version": "2.0.0", | |
|
1042 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", | |
|
1043 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", | |
|
1044 | "dev": true | |
|
1045 | }, | |
|
1155 | 1046 | "string-width": { |
|
1156 | 1047 | "version": "3.1.0", |
|
1157 | 1048 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", |
@@ -1165,35 +1056,6 | |||
|
1165 | 1056 | } |
|
1166 | 1057 | } |
|
1167 | 1058 | }, |
|
1168 | "tape": { | |
|
1169 | "version": "4.11.0", | |
|
1170 | "resolved": "https://registry.npmjs.org/tape/-/tape-4.11.0.tgz", | |
|
1171 | "integrity": "sha512-yixvDMX7q7JIs/omJSzSZrqulOV51EC9dK8dM0TzImTIkHWfe2/kFyL5v+d9C+SrCMaICk59ujsqFAVidDqDaA==", | |
|
1172 | "dev": true, | |
|
1173 | "requires": { | |
|
1174 | "deep-equal": "~1.0.1", | |
|
1175 | "defined": "~1.0.0", | |
|
1176 | "for-each": "~0.3.3", | |
|
1177 | "function-bind": "~1.1.1", | |
|
1178 | "glob": "~7.1.4", | |
|
1179 | "has": "~1.0.3", | |
|
1180 | "inherits": "~2.0.4", | |
|
1181 | "minimist": "~1.2.0", | |
|
1182 | "object-inspect": "~1.6.0", | |
|
1183 | "resolve": "~1.11.1", | |
|
1184 | "resumer": "~0.0.0", | |
|
1185 | "string.prototype.trim": "~1.1.2", | |
|
1186 | "through": "~2.3.8" | |
|
1187 | }, | |
|
1188 | "dependencies": { | |
|
1189 | "minimist": { | |
|
1190 | "version": "1.2.0", | |
|
1191 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", | |
|
1192 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", | |
|
1193 | "dev": true | |
|
1194 | } | |
|
1195 | } | |
|
1196 | }, | |
|
1197 | 1059 | "text-table": { |
|
1198 | 1060 | "version": "0.2.0", |
|
1199 | 1061 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", |
@@ -1222,23 +1084,23 | |||
|
1222 | 1084 | "dev": true |
|
1223 | 1085 | }, |
|
1224 | 1086 | "tslint": { |
|
1225 |
"version": " |
|
|
1226 |
"resolved": "https://registry.npmjs.org/tslint/-/tslint- |
|
|
1227 | "integrity": "sha512-Q3kXkuDEijQ37nXZZLKErssQVnwCV/+23gFEMROi8IlbaBG6tXqLPQJ5Wjcyt/yHPKBC+hD5SzuGaMora+ZS6w==", | |
|
1087 | "version": "6.0.0", | |
|
1088 | "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.0.0.tgz", | |
|
1089 | "integrity": "sha512-9nLya8GBtlFmmFMW7oXXwoXS1NkrccqTqAtwXzdPV9e2mqSEvCki6iHL/Fbzi5oqbugshzgGPk7KBb2qNP1DSA==", | |
|
1228 | 1090 | "dev": true, |
|
1229 | 1091 | "requires": { |
|
1230 | 1092 | "@babel/code-frame": "^7.0.0", |
|
1231 | 1093 | "builtin-modules": "^1.1.1", |
|
1232 | 1094 | "chalk": "^2.3.0", |
|
1233 | 1095 | "commander": "^2.12.1", |
|
1234 |
"diff": "^ |
|
|
1096 | "diff": "^4.0.1", | |
|
1235 | 1097 | "glob": "^7.1.1", |
|
1236 | 1098 | "js-yaml": "^3.13.1", |
|
1237 | 1099 | "minimatch": "^3.0.4", |
|
1238 | 1100 | "mkdirp": "^0.5.1", |
|
1239 | 1101 | "resolve": "^1.3.2", |
|
1240 | 1102 | "semver": "^5.3.0", |
|
1241 |
"tslib": "^1. |
|
|
1103 | "tslib": "^1.10.0", | |
|
1242 | 1104 | "tsutils": "^2.29.0" |
|
1243 | 1105 | }, |
|
1244 | 1106 | "dependencies": { |
@@ -1268,10 +1130,22 | |||
|
1268 | 1130 | "prelude-ls": "~1.1.2" |
|
1269 | 1131 | } |
|
1270 | 1132 | }, |
|
1133 | "type-detect": { | |
|
1134 | "version": "4.0.8", | |
|
1135 | "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", | |
|
1136 | "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", | |
|
1137 | "dev": true | |
|
1138 | }, | |
|
1139 | "type-fest": { | |
|
1140 | "version": "0.8.1", | |
|
1141 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", | |
|
1142 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", | |
|
1143 | "dev": true | |
|
1144 | }, | |
|
1271 | 1145 | "typescript": { |
|
1272 |
"version": "3. |
|
|
1273 |
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3. |
|
|
1274 | "integrity": "sha512-BEjlc0Z06ORZKbtcxGrIvvwYs5hAnuo6TKdNFL55frVDlB+na3z5bsLhFaIxmT+dPWgBIjMo6aNnTOgHHmHgiQ==", | |
|
1146 | "version": "3.7.5", | |
|
1147 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.5.tgz", | |
|
1148 | "integrity": "sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==", | |
|
1275 | 1149 | "dev": true |
|
1276 | 1150 | }, |
|
1277 | 1151 | "uri-js": { |
@@ -1318,6 +1192,15 | |||
|
1318 | 1192 | "requires": { |
|
1319 | 1193 | "mkdirp": "^0.5.1" |
|
1320 | 1194 | } |
|
1195 | }, | |
|
1196 | "yaml": { | |
|
1197 | "version": "1.7.2", | |
|
1198 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.7.2.tgz", | |
|
1199 | "integrity": "sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw==", | |
|
1200 | "dev": true, | |
|
1201 | "requires": { | |
|
1202 | "@babel/runtime": "^7.6.3" | |
|
1321 | 1203 | } |
|
1322 | 1204 | } |
|
1323 | 1205 | } |
|
1206 | } |
@@ -1,14 +1,15 | |||
|
1 | 1 | { |
|
2 | 2 | "devDependencies": { |
|
3 | "@types/node": "8.0.0", | |
|
4 | "@types/tape": "~4.2.33", | |
|
5 | 3 | "@types/requirejs": "2.1.31", |
|
6 | 4 | "dojo": "1.16.0", |
|
7 | 5 | "dojo-typings": "1.11.9", |
|
8 | "tape": "~4.13.0", | |
|
9 | 6 | "typescript": "~3.7.5", |
|
10 | 7 | "eslint": "6.8.0", |
|
11 | 8 | "tslint": "6.0.0", |
|
12 | "@implab/core-amd": "^1.3.2" | |
|
9 | "@implab/core-amd": "^1.3.2", | |
|
10 | "yaml": "~1.7.2", | |
|
11 | "@types/yaml": "1.2.0", | |
|
12 | "chai": "4.2.0", | |
|
13 | "@types/chai": "4.1.3" | |
|
13 | 14 | } |
|
14 | 15 | } |
@@ -36,7 +36,7 export class NlsBundle<T extends object> | |||
|
36 | 36 | |
|
37 | 37 | _cache: MapOf<PromiseOrValue<T>>; |
|
38 | 38 | |
|
39 | constructor(defNls: T, locales: MapOf<any>) { | |
|
39 | constructor(defNls: T, locales?: MapOf<any>) { | |
|
40 | 40 | this.default = defNls; |
|
41 | 41 | this._locales = locales || {}; |
|
42 | 42 | this._cache = {}; |
@@ -51,17 +51,20 export class NlsBundle<T extends object> | |||
|
51 | 51 | a.push(x); |
|
52 | 52 | locales.unshift(a.join("-")); |
|
53 | 53 | return a; |
|
54 | }, []); | |
|
54 | }, new Array<string>()); | |
|
55 | 55 | |
|
56 | 56 | return this._resolveLocale(locales); |
|
57 | 57 | } |
|
58 | 58 | |
|
59 | 59 | _resolveLocale(locales: string[]): PromiseOrValue<T> { |
|
60 | 60 | if (!locales.length) |
|
61 | return; | |
|
61 | return this.default; | |
|
62 | 62 | |
|
63 | 63 | const locale = locales.shift(); |
|
64 | 64 | |
|
65 | if (!locale) | |
|
66 | return this._resolveLocale(locales); | |
|
67 | ||
|
65 | 68 | if (this._cache[locale]) |
|
66 | 69 | return this._cache[locale]; |
|
67 | 70 | |
@@ -69,7 +72,7 export class NlsBundle<T extends object> | |||
|
69 | 72 | if (isCallback(data)) |
|
70 | 73 | data = data(); |
|
71 | 74 | |
|
72 |
const parent = |
|
|
75 | const parent = this._resolveLocale(locales); | |
|
73 | 76 | |
|
74 | 77 | return this._cache[locale] = when(data, x => { |
|
75 | 78 | return when(parent, y => this._cache[locale] = chainObjects(y, x)); |
@@ -132,7 +132,7 export function djclass<T extends Abstra | |||
|
132 | 132 | |
|
133 | 133 | // proxy - фабрика для создания прокси-методов, которые внутри |
|
134 | 134 | // себя вызовут this.inherited с правильными параметрами. |
|
135 | const proxy = (m: (...args: any[]) => any) => function () { | |
|
135 | const proxy = (m: (...args: any[]) => any) => function (this: any) { | |
|
136 | 136 | return this.inherited(m, arguments); |
|
137 | 137 | }; |
|
138 | 138 | |
@@ -199,11 +199,11 interface MemberBindSpec { | |||
|
199 | 199 | getter?: boolean; |
|
200 | 200 | } |
|
201 | 201 | |
|
202 | function isNodeBindSpec(v): v is NodeBindSpec { | |
|
202 | function isNodeBindSpec(v: any): v is NodeBindSpec { | |
|
203 | 203 | return "node" in v; |
|
204 | 204 | } |
|
205 | 205 | |
|
206 | function isMemberBindSpec(v): v is MemberBindSpec { | |
|
206 | function isMemberBindSpec(v: any): v is MemberBindSpec { | |
|
207 | 207 | return "member" in v; |
|
208 | 208 | } |
|
209 | 209 | |
@@ -220,7 +220,7 export function bind(params: NodeBindSpe | |||
|
220 | 220 | else if (isMemberBindSpec(params)) { |
|
221 | 221 | return (target: any, name: string) => { |
|
222 | 222 | target[name] = null; |
|
223 | target[makeSetterName(name)] = function (v) { | |
|
223 | target[makeSetterName(name)] = function (v: any) { | |
|
224 | 224 | this._set(name, v); |
|
225 | 225 | this[params.member].set(params.property, v); |
|
226 | 226 | }; |
@@ -1,12 +1,12 | |||
|
1 | import { isNull, mixin } from "@implab/core-amd/safe"; | |
|
1 | import { isNull, mixin, argumentNotNull } from "@implab/core-amd/safe"; | |
|
2 | 2 | import { isPlainObject, isNode, isBuildContext } from "./traits"; |
|
3 | 3 | |
|
4 | 4 | export abstract class BuildContextBase { |
|
5 | 5 | _attrs = {}; |
|
6 | 6 | |
|
7 |
_children = |
|
|
7 | _children = new Array(); | |
|
8 | 8 | |
|
9 | _created: boolean; | |
|
9 | _created: boolean = false; | |
|
10 | 10 | |
|
11 | 11 | visitNext(v: any) { |
|
12 | 12 | if (isNull(v)) |
@@ -28,9 +28,6 export abstract class BuildContextBase { | |||
|
28 | 28 | } |
|
29 | 29 | |
|
30 | 30 | getChildDom(v: any) { |
|
31 | if (isNull(v)) | |
|
32 | return; | |
|
33 | ||
|
34 | 31 | const tv = typeof v; |
|
35 | 32 | if (tv === "string" || tv === "number" || tv === "boolean" || v instanceof RegExp || v instanceof Date) { |
|
36 | 33 | return document.createTextNode(v.toString()); |
@@ -48,8 +45,8 export abstract class BuildContextBase { | |||
|
48 | 45 | ensureCreated() { |
|
49 | 46 | if (!this._created) { |
|
50 | 47 | this._create(this._attrs, this._children); |
|
51 |
this._children = |
|
|
52 |
this._attrs = |
|
|
48 | this._children = []; | |
|
49 | this._attrs = {}; | |
|
53 | 50 | this._created = true; |
|
54 | 51 | } |
|
55 | 52 | } |
@@ -17,23 +17,28 export abstract class DjxWidgetBase exte | |||
|
17 | 17 | _processTemplateNode<T extends (Element | Node | _WidgetBase)>( |
|
18 | 18 | baseNode: T, |
|
19 | 19 | getAttrFunc: (baseNode: T, attr: string) => string, |
|
20 | attachFunc: (node: T, type: string, func?: (...args: any[]) => any) => dojo.Handle | |
|
20 | // tslint:disable-next-line: ban-types | |
|
21 | attachFunc: (node: T, type: string, func?: Function) => dojo.Handle | |
|
21 | 22 | ): boolean { |
|
22 | 23 | if (isNode(baseNode)) { |
|
23 | 24 | const w = registry.byNode(baseNode); |
|
24 | 25 | if (w) { |
|
25 | 26 | // from dijit/_WidgetsInTemplateMixin |
|
26 | 27 | this._processTemplateNode(w, |
|
27 |
(n, p) => n |
|
|
28 | (n, p) => n.get(p), // callback to get a property of a widget | |
|
28 | 29 | (widget, type, callback) => { |
|
30 | if (!callback) | |
|
31 | throw new Error("The callback must be specified"); | |
|
32 | ||
|
29 | 33 | // callback to do data-dojo-attach-event to a widget |
|
30 | 34 | if (type in widget) { |
|
31 | 35 | // back-compat, remove for 2.0 |
|
32 | return widget.connect(widget, type, callback); | |
|
36 | return widget.connect(widget, type, callback as EventListener); | |
|
33 | 37 | } else { |
|
34 | 38 | // 1.x may never hit this branch, but it's the default for 2.0 |
|
35 | 39 | return widget.on(type, callback); |
|
36 | 40 | } |
|
41 | ||
|
37 | 42 | }); |
|
38 | 43 | // don't process widgets internals |
|
39 | 44 | return false; |
@@ -6,7 +6,7 import { BuildContextBase } from "./Buil | |||
|
6 | 6 | export class HtmlElementContext extends BuildContextBase { |
|
7 | 7 | elementType: string; |
|
8 | 8 | |
|
9 | _element: HTMLElement; | |
|
9 | _element: HTMLElement | undefined; | |
|
10 | 10 | |
|
11 | 11 | constructor(elementType: string) { |
|
12 | 12 | argumentNotEmptyString(elementType, "elementType"); |
@@ -16,10 +16,15 export class HtmlElementContext extends | |||
|
16 | 16 | } |
|
17 | 17 | |
|
18 | 18 | _addChild(child: any): void { |
|
19 | if (!this._element) | |
|
20 | throw new Error("The HTML element isn't created"); | |
|
19 | 21 | dom.place(this.getChildDom(child), this._element); |
|
20 | 22 | } |
|
21 | 23 | |
|
22 | 24 | _setAttrs(attrs: object): void { |
|
25 | if (!this._element) | |
|
26 | throw new Error("The HTML element isn't created"); | |
|
27 | ||
|
23 | 28 | attr.set(this._element, attrs); |
|
24 | 29 | } |
|
25 | 30 | |
@@ -31,6 +36,9 export class HtmlElementContext extends | |||
|
31 | 36 | } |
|
32 | 37 | |
|
33 | 38 | _getDomElement() { |
|
39 | if (!this._element) | |
|
40 | throw new Error("The HTML element isn't created"); | |
|
41 | ||
|
34 | 42 | return this._element; |
|
35 | 43 | } |
|
36 | 44 |
@@ -7,7 +7,7 import { BuildContextBase } from "./Buil | |||
|
7 | 7 | export class WidgetContext extends BuildContextBase { |
|
8 | 8 | widgetClass: _WidgetBaseConstructor; |
|
9 | 9 | |
|
10 | _instance: _WidgetBase; | |
|
10 | _instance: _WidgetBase | undefined; | |
|
11 | 11 | |
|
12 | 12 | constructor(widgetClass: _WidgetBaseConstructor) { |
|
13 | 13 | super(); |
@@ -17,14 +17,14 export class WidgetContext extends Build | |||
|
17 | 17 | } |
|
18 | 18 | |
|
19 | 19 | _addChild(child: any): void { |
|
20 | if (!this._instance.containerNode) | |
|
20 | if (!this._instance || !this._instance.containerNode) | |
|
21 | 21 | throw new Error("Widget doesn't support adding children"); |
|
22 | 22 | |
|
23 | 23 | dom.place(this.getChildDom(child), this._instance.containerNode); |
|
24 | 24 | } |
|
25 | 25 | |
|
26 | 26 | _setAttrs(attrs: object): void { |
|
27 | this._instance.set(attrs); | |
|
27 | this._instance?.set(attrs); | |
|
28 | 28 | } |
|
29 | 29 | |
|
30 | 30 | _create(attrs: object, children: any[]) { |
@@ -34,6 +34,8 export class WidgetContext extends Build | |||
|
34 | 34 | } |
|
35 | 35 | |
|
36 | 36 | _getDomElement() { |
|
37 | if (!this._instance) | |
|
38 | throw new Error("The instance of the widget isn't created"); | |
|
37 | 39 | return this._instance.domNode; |
|
38 | 40 | } |
|
39 | 41 |
@@ -1,18 +1,21 | |||
|
1 | 1 | import { IObservable, ICancellation, IDestroyable } from "@implab/core-amd/interfaces"; |
|
2 | 2 | import { Cancellation } from "@implab/core-amd/Cancellation"; |
|
3 | 3 | import { TraceEvent, LogLevel, WarnLevel, DebugLevel, TraceSource } from "@implab/core-amd/log/TraceSource"; |
|
4 | import * as tape from "tape"; | |
|
5 | 4 | import { argumentNotNull, destroy } from "@implab/core-amd/safe"; |
|
5 | import { TapWriter } from "./Tap"; | |
|
6 | ||
|
7 | ||
|
6 | 8 | |
|
7 | 9 | export class TapeWriter implements IDestroyable { |
|
8 | private readonly _tape: tape.Test; | |
|
10 | ||
|
11 | private readonly _t: TapWriter; | |
|
9 | 12 | |
|
10 | 13 | private readonly _subscriptions = new Array<IDestroyable>(); |
|
11 | 14 | private _destroyed; |
|
12 | 15 | |
|
13 |
constructor(t: |
|
|
14 |
argumentNotNull(t, "t |
|
|
15 | this._tape = t; | |
|
16 | constructor(t: TapWriter) { | |
|
17 | argumentNotNull(t, "test"); | |
|
18 | ||
|
16 | 19 | } |
|
17 | 20 | |
|
18 | 21 | writeEvents(source: IObservable<TraceEvent>, ct: ICancellation = Cancellation.none) { |
@@ -27,13 +30,13 export class TapeWriter implements IDest | |||
|
27 | 30 | |
|
28 | 31 | writeEvent(next: TraceEvent) { |
|
29 | 32 | if (next.level >= DebugLevel) { |
|
30 |
this._t |
|
|
33 | this._t.comment(`DEBUG ${next.source.id} ${next}`); | |
|
31 | 34 | } else if (next.level >= LogLevel) { |
|
32 |
this._t |
|
|
35 | this._t.comment(`LOG ${next.source.id} ${next}`); | |
|
33 | 36 | } else if (next.level >= WarnLevel) { |
|
34 |
this._t |
|
|
37 | this._t.comment(`WARN ${next.source.id} ${next}`); | |
|
35 | 38 | } else { |
|
36 |
this._t |
|
|
39 | this._t.comment(`ERROR ${next.source.id} ${next}`); | |
|
37 | 40 | } |
|
38 | 41 | } |
|
39 | 42 | |
@@ -42,33 +45,13 export class TapeWriter implements IDest | |||
|
42 | 45 | } |
|
43 | 46 | } |
|
44 | 47 | |
|
45 | export function test(name: string, cb: (t: tape.Test, trace: TraceSource) => any) { | |
|
46 | tape(name, async t => { | |
|
47 | const writer = new TapeWriter(t); | |
|
48 | type TestCallback = (ok: (msg:string) => void, fail: (msg:string) => void, trace: TraceSource) => void; | |
|
49 | type AsyncTestCallback = (trace: TraceSource) => PromiseLike<void> | void; | |
|
48 | 50 | |
|
49 | // this trace is not announced through the TraceSource global registry | |
|
50 | const trace = new TraceSource(name); | |
|
51 | trace.level = DebugLevel; | |
|
52 | writer.writeEvents(trace.events); | |
|
53 | ||
|
54 | const h = TraceSource.on(ts => { | |
|
55 | ts.level = DebugLevel; | |
|
56 | writer.writeEvents(ts.events); | |
|
57 | }); | |
|
51 | export function test(name: string, cb: TestCallback | AsyncTestCallback) { | |
|
58 | 52 | |
|
59 | try { | |
|
60 | await cb(t, trace); | |
|
61 | } catch (e) { | |
|
53 | } | |
|
62 | 54 | |
|
63 | // verbose error information | |
|
64 | // tslint:disable-next-line | |
|
65 | console.error(e); | |
|
66 | t.fail(e); | |
|
55 | export function run() { | |
|
67 | 56 | |
|
68 | } finally { | |
|
69 | t.end(); | |
|
70 | destroy(writer); | |
|
71 | destroy(h); | |
|
72 | 57 | } |
|
73 | }); | |
|
74 | } |
@@ -1,10 +1,16 | |||
|
1 |
import |
|
|
1 | import { test } from "./TestTraits"; | |
|
2 | import { delay } from "@implab/core-amd/safe"; | |
|
3 | import { assert } from "chai"; | |
|
2 | 4 | |
|
3 |
t |
|
|
4 | t.pass("sync assert"); | |
|
5 | test("simple", (ok, fail, log) => { | |
|
5 | 6 | setTimeout(() => { |
|
6 | t.pass("async assert"); | |
|
7 | 7 | // end should be called after the last assertion |
|
8 | t.end(); | |
|
8 | ok("async assert"); | |
|
9 | 9 | }, 100); |
|
10 | 10 | }); |
|
11 | ||
|
12 | test("simple", async log => { | |
|
13 | await delay(0); | |
|
14 | ||
|
15 | assert.ok(true); // everything is fine | |
|
16 | }); |
General Comments 0
You need to be logged in to leave comments.
Login now