@aws-solutions-constructs/core 2.51.0 → 2.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/.eslintignore +2 -0
  2. package/.jsii +49 -4
  3. package/node_modules/ansi-regex/index.js +8 -2
  4. package/node_modules/ansi-regex/license +4 -16
  5. package/node_modules/ansi-regex/package.json +53 -62
  6. package/node_modules/ansi-regex/readme.md +48 -9
  7. package/node_modules/aproba/index.js +33 -33
  8. package/node_modules/aproba/package.json +5 -4
  9. package/node_modules/are-we-there-yet/LICENSE.md +18 -0
  10. package/node_modules/are-we-there-yet/README.md +16 -3
  11. package/node_modules/are-we-there-yet/lib/tracker-base.js +13 -0
  12. package/node_modules/are-we-there-yet/lib/tracker-group.js +112 -0
  13. package/node_modules/are-we-there-yet/lib/tracker-stream.js +42 -0
  14. package/node_modules/are-we-there-yet/lib/tracker.js +34 -0
  15. package/node_modules/are-we-there-yet/package.json +38 -20
  16. package/node_modules/color-support/README.md +129 -0
  17. package/node_modules/color-support/bin.js +3 -0
  18. package/node_modules/color-support/browser.js +14 -0
  19. package/node_modules/color-support/index.js +134 -0
  20. package/node_modules/color-support/package.json +36 -0
  21. package/node_modules/gauge/LICENSE.md +20 -0
  22. package/node_modules/gauge/README.md +19 -16
  23. package/node_modules/gauge/{base-theme.js → lib/base-theme.js} +7 -3
  24. package/node_modules/gauge/lib/has-color.js +4 -0
  25. package/node_modules/gauge/{index.js → lib/index.js} +90 -34
  26. package/node_modules/gauge/{plumbing.js → lib/plumbing.js} +3 -1
  27. package/node_modules/gauge/{progress-bar.js → lib/progress-bar.js} +12 -6
  28. package/node_modules/gauge/{render-template.js → lib/render-template.js} +69 -28
  29. package/node_modules/gauge/{template-item.js → lib/template-item.js} +21 -7
  30. package/node_modules/gauge/{theme-set.js → lib/theme-set.js} +31 -24
  31. package/node_modules/gauge/lib/themes.js +56 -0
  32. package/node_modules/gauge/{wide-truncate.js → lib/wide-truncate.js} +9 -3
  33. package/node_modules/gauge/package.json +47 -42
  34. package/node_modules/is-fullwidth-code-point/index.js +40 -36
  35. package/node_modules/is-fullwidth-code-point/license +4 -16
  36. package/node_modules/is-fullwidth-code-point/package.json +40 -43
  37. package/node_modules/is-fullwidth-code-point/readme.md +8 -8
  38. package/node_modules/npmlog/LICENSE.md +20 -0
  39. package/node_modules/npmlog/{log.js → lib/log.js} +149 -58
  40. package/node_modules/npmlog/package.json +36 -12
  41. package/node_modules/signal-exit/LICENSE.txt +1 -1
  42. package/node_modules/signal-exit/README.md +56 -21
  43. package/node_modules/signal-exit/dist/cjs/browser.d.ts +12 -0
  44. package/node_modules/signal-exit/dist/cjs/browser.d.ts.map +1 -0
  45. package/node_modules/signal-exit/dist/cjs/browser.js +10 -0
  46. package/node_modules/signal-exit/dist/cjs/browser.js.map +1 -0
  47. package/node_modules/signal-exit/dist/cjs/index.d.ts +48 -0
  48. package/node_modules/signal-exit/dist/cjs/index.d.ts.map +1 -0
  49. package/node_modules/signal-exit/dist/cjs/index.js +279 -0
  50. package/node_modules/signal-exit/dist/cjs/index.js.map +1 -0
  51. package/node_modules/signal-exit/dist/cjs/package.json +3 -0
  52. package/node_modules/signal-exit/dist/cjs/signals.d.ts +29 -0
  53. package/node_modules/signal-exit/dist/cjs/signals.d.ts.map +1 -0
  54. package/node_modules/signal-exit/dist/cjs/signals.js +42 -0
  55. package/node_modules/signal-exit/dist/cjs/signals.js.map +1 -0
  56. package/node_modules/signal-exit/dist/mjs/browser.d.ts +12 -0
  57. package/node_modules/signal-exit/dist/mjs/browser.d.ts.map +1 -0
  58. package/node_modules/signal-exit/dist/mjs/browser.js +4 -0
  59. package/node_modules/signal-exit/dist/mjs/browser.js.map +1 -0
  60. package/node_modules/signal-exit/dist/mjs/index.d.ts +48 -0
  61. package/node_modules/signal-exit/dist/mjs/index.d.ts.map +1 -0
  62. package/node_modules/signal-exit/dist/mjs/index.js +275 -0
  63. package/node_modules/signal-exit/dist/mjs/index.js.map +1 -0
  64. package/node_modules/signal-exit/dist/mjs/package.json +3 -0
  65. package/node_modules/signal-exit/dist/mjs/signals.d.ts +29 -0
  66. package/node_modules/signal-exit/dist/mjs/signals.d.ts.map +1 -0
  67. package/node_modules/signal-exit/dist/mjs/signals.js +39 -0
  68. package/node_modules/signal-exit/dist/mjs/signals.js.map +1 -0
  69. package/node_modules/signal-exit/package.json +87 -19
  70. package/node_modules/string-width/index.js +29 -19
  71. package/node_modules/string-width/license +4 -16
  72. package/node_modules/string-width/package.json +54 -54
  73. package/node_modules/string-width/readme.md +17 -9
  74. package/node_modules/strip-ansi/index.js +2 -4
  75. package/node_modules/strip-ansi/license +4 -16
  76. package/node_modules/strip-ansi/package.json +52 -55
  77. package/node_modules/strip-ansi/readme.md +20 -7
  78. package/package.json +8 -7
  79. package/test/test-helper.d.ts +1 -1
  80. package/test/test-helper.js +5 -5
  81. package/node_modules/are-we-there-yet/CHANGES.md +0 -37
  82. package/node_modules/are-we-there-yet/LICENSE +0 -5
  83. package/node_modules/are-we-there-yet/tracker-base.js +0 -11
  84. package/node_modules/are-we-there-yet/tracker-group.js +0 -107
  85. package/node_modules/are-we-there-yet/tracker-stream.js +0 -36
  86. package/node_modules/are-we-there-yet/tracker.js +0 -30
  87. package/node_modules/code-point-at/index.js +0 -32
  88. package/node_modules/code-point-at/license +0 -21
  89. package/node_modules/code-point-at/package.json +0 -38
  90. package/node_modules/code-point-at/readme.md +0 -32
  91. package/node_modules/core-util-is/LICENSE +0 -19
  92. package/node_modules/core-util-is/README.md +0 -3
  93. package/node_modules/core-util-is/lib/util.js +0 -107
  94. package/node_modules/core-util-is/package.json +0 -38
  95. package/node_modules/delegates/.npmignore +0 -1
  96. package/node_modules/delegates/History.md +0 -22
  97. package/node_modules/delegates/License +0 -20
  98. package/node_modules/delegates/Makefile +0 -8
  99. package/node_modules/delegates/Readme.md +0 -94
  100. package/node_modules/delegates/index.js +0 -121
  101. package/node_modules/delegates/package.json +0 -13
  102. package/node_modules/delegates/test/index.js +0 -94
  103. package/node_modules/gauge/CHANGELOG.md +0 -160
  104. package/node_modules/gauge/LICENSE +0 -13
  105. package/node_modules/gauge/has-color.js +0 -12
  106. package/node_modules/gauge/themes.js +0 -54
  107. package/node_modules/inherits/LICENSE +0 -16
  108. package/node_modules/inherits/README.md +0 -42
  109. package/node_modules/inherits/inherits.js +0 -9
  110. package/node_modules/inherits/inherits_browser.js +0 -27
  111. package/node_modules/inherits/package.json +0 -29
  112. package/node_modules/isarray/.npmignore +0 -1
  113. package/node_modules/isarray/.travis.yml +0 -4
  114. package/node_modules/isarray/Makefile +0 -6
  115. package/node_modules/isarray/README.md +0 -60
  116. package/node_modules/isarray/component.json +0 -19
  117. package/node_modules/isarray/index.js +0 -5
  118. package/node_modules/isarray/package.json +0 -45
  119. package/node_modules/isarray/test.js +0 -20
  120. package/node_modules/number-is-nan/index.js +0 -4
  121. package/node_modules/number-is-nan/license +0 -21
  122. package/node_modules/number-is-nan/package.json +0 -35
  123. package/node_modules/number-is-nan/readme.md +0 -28
  124. package/node_modules/object-assign/index.js +0 -90
  125. package/node_modules/object-assign/license +0 -21
  126. package/node_modules/object-assign/package.json +0 -42
  127. package/node_modules/object-assign/readme.md +0 -61
  128. package/node_modules/process-nextick-args/index.js +0 -45
  129. package/node_modules/process-nextick-args/license.md +0 -19
  130. package/node_modules/process-nextick-args/package.json +0 -25
  131. package/node_modules/process-nextick-args/readme.md +0 -18
  132. package/node_modules/readable-stream/.travis.yml +0 -34
  133. package/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  134. package/node_modules/readable-stream/GOVERNANCE.md +0 -136
  135. package/node_modules/readable-stream/LICENSE +0 -47
  136. package/node_modules/readable-stream/README.md +0 -58
  137. package/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
  138. package/node_modules/readable-stream/duplex-browser.js +0 -1
  139. package/node_modules/readable-stream/duplex.js +0 -1
  140. package/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
  141. package/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
  142. package/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
  143. package/node_modules/readable-stream/lib/_stream_transform.js +0 -214
  144. package/node_modules/readable-stream/lib/_stream_writable.js +0 -685
  145. package/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -78
  146. package/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -84
  147. package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  148. package/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  149. package/node_modules/readable-stream/package.json +0 -52
  150. package/node_modules/readable-stream/passthrough.js +0 -1
  151. package/node_modules/readable-stream/readable-browser.js +0 -7
  152. package/node_modules/readable-stream/readable.js +0 -19
  153. package/node_modules/readable-stream/transform.js +0 -1
  154. package/node_modules/readable-stream/writable-browser.js +0 -1
  155. package/node_modules/readable-stream/writable.js +0 -8
  156. package/node_modules/safe-buffer/LICENSE +0 -21
  157. package/node_modules/safe-buffer/README.md +0 -584
  158. package/node_modules/safe-buffer/index.d.ts +0 -187
  159. package/node_modules/safe-buffer/index.js +0 -62
  160. package/node_modules/safe-buffer/package.json +0 -37
  161. package/node_modules/signal-exit/index.js +0 -202
  162. package/node_modules/signal-exit/signals.js +0 -53
  163. package/node_modules/string_decoder/.travis.yml +0 -50
  164. package/node_modules/string_decoder/LICENSE +0 -48
  165. package/node_modules/string_decoder/README.md +0 -47
  166. package/node_modules/string_decoder/lib/string_decoder.js +0 -296
  167. package/node_modules/string_decoder/package.json +0 -31
  168. package/node_modules/util-deprecate/History.md +0 -16
  169. package/node_modules/util-deprecate/LICENSE +0 -24
  170. package/node_modules/util-deprecate/README.md +0 -53
  171. package/node_modules/util-deprecate/browser.js +0 -67
  172. package/node_modules/util-deprecate/node.js +0 -6
  173. package/node_modules/util-deprecate/package.json +0 -27
  174. package/node_modules/wide-align/node_modules/ansi-regex/index.js +0 -10
  175. package/node_modules/wide-align/node_modules/ansi-regex/license +0 -9
  176. package/node_modules/wide-align/node_modules/ansi-regex/package.json +0 -55
  177. package/node_modules/wide-align/node_modules/ansi-regex/readme.md +0 -78
  178. package/node_modules/wide-align/node_modules/is-fullwidth-code-point/index.js +0 -50
  179. package/node_modules/wide-align/node_modules/is-fullwidth-code-point/license +0 -9
  180. package/node_modules/wide-align/node_modules/is-fullwidth-code-point/package.json +0 -42
  181. package/node_modules/wide-align/node_modules/is-fullwidth-code-point/readme.md +0 -39
  182. package/node_modules/wide-align/node_modules/string-width/index.js +0 -47
  183. package/node_modules/wide-align/node_modules/string-width/license +0 -9
  184. package/node_modules/wide-align/node_modules/string-width/package.json +0 -56
  185. package/node_modules/wide-align/node_modules/string-width/readme.md +0 -50
  186. package/node_modules/wide-align/node_modules/strip-ansi/index.js +0 -4
  187. package/node_modules/wide-align/node_modules/strip-ansi/license +0 -9
  188. package/node_modules/wide-align/node_modules/strip-ansi/package.json +0 -54
  189. package/node_modules/wide-align/node_modules/strip-ansi/readme.md +0 -46
  190. /package/node_modules/{wide-align/node_modules/ansi-regex → ansi-regex}/index.d.ts +0 -0
  191. /package/node_modules/are-we-there-yet/{index.js → lib/index.js} +0 -0
  192. /package/node_modules/{npmlog → color-support}/LICENSE +0 -0
  193. /package/node_modules/gauge/{error.js → lib/error.js} +0 -0
  194. /package/node_modules/gauge/{process.js → lib/process.js} +0 -0
  195. /package/node_modules/gauge/{set-immediate.js → lib/set-immediate.js} +0 -0
  196. /package/node_modules/gauge/{set-interval.js → lib/set-interval.js} +0 -0
  197. /package/node_modules/gauge/{spin.js → lib/spin.js} +0 -0
  198. /package/node_modules/{wide-align/node_modules/is-fullwidth-code-point → is-fullwidth-code-point}/index.d.ts +0 -0
  199. /package/node_modules/{wide-align/node_modules/string-width → string-width}/index.d.ts +0 -0
  200. /package/node_modules/{wide-align/node_modules/strip-ansi → strip-ansi}/index.d.ts +0 -0
@@ -2,7 +2,7 @@
2
2
  var Plumbing = require('./plumbing.js')
3
3
  var hasUnicode = require('has-unicode')
4
4
  var hasColor = require('./has-color.js')
5
- var onExit = require('signal-exit')
5
+ var onExit = require('signal-exit').onExit
6
6
  var defaultThemes = require('./themes')
7
7
  var setInterval = require('./set-interval.js')
8
8
  var process = require('./process.js')
@@ -32,7 +32,7 @@ function Gauge (arg1, arg2) {
32
32
  this._status = {
33
33
  spun: 0,
34
34
  section: '',
35
- subsection: ''
35
+ subsection: '',
36
36
  }
37
37
  this._paused = false // are we paused for back pressure?
38
38
  this._disabled = true // are all progress bar updates disabled?
@@ -50,10 +50,10 @@ function Gauge (arg1, arg2) {
50
50
  this._theme = options.theme
51
51
  var theme = this._computeTheme(options.theme)
52
52
  var template = options.template || [
53
- {type: 'progressbar', length: 20},
54
- {type: 'activityIndicator', kerning: 1, length: 1},
55
- {type: 'section', kerning: 1, default: ''},
56
- {type: 'subsection', kerning: 1, default: ''}
53
+ { type: 'progressbar', length: 20 },
54
+ { type: 'activityIndicator', kerning: 1, length: 1 },
55
+ { type: 'section', kerning: 1, default: '' },
56
+ { type: 'subsection', kerning: 1, default: '' },
57
57
  ]
58
58
  this.setWriteTo(writeTo, options.tty)
59
59
  var PlumbingClass = options.Plumbing || Plumbing
@@ -79,17 +79,27 @@ Gauge.prototype.isEnabled = function () {
79
79
 
80
80
  Gauge.prototype.setTemplate = function (template) {
81
81
  this._gauge.setTemplate(template)
82
- if (this._showing) this._requestRedraw()
82
+ if (this._showing) {
83
+ this._requestRedraw()
84
+ }
83
85
  }
84
86
 
85
87
  Gauge.prototype._computeTheme = function (theme) {
86
- if (!theme) theme = {}
88
+ if (!theme) {
89
+ theme = {}
90
+ }
87
91
  if (typeof theme === 'string') {
88
92
  theme = this._themes.getTheme(theme)
89
- } else if (theme && (Object.keys(theme).length === 0 || theme.hasUnicode != null || theme.hasColor != null)) {
93
+ } else if (
94
+ Object.keys(theme).length === 0 || theme.hasUnicode != null || theme.hasColor != null
95
+ ) {
90
96
  var useUnicode = theme.hasUnicode == null ? hasUnicode() : theme.hasUnicode
91
97
  var useColor = theme.hasColor == null ? hasColor : theme.hasColor
92
- theme = this._themes.getDefault({hasUnicode: useUnicode, hasColor: useColor, platform: theme.platform})
98
+ theme = this._themes.getDefault({
99
+ hasUnicode: useUnicode,
100
+ hasColor: useColor,
101
+ platform: theme.platform,
102
+ })
93
103
  }
94
104
  return theme
95
105
  }
@@ -101,13 +111,17 @@ Gauge.prototype.setThemeset = function (themes) {
101
111
 
102
112
  Gauge.prototype.setTheme = function (theme) {
103
113
  this._gauge.setTheme(this._computeTheme(theme))
104
- if (this._showing) this._requestRedraw()
114
+ if (this._showing) {
115
+ this._requestRedraw()
116
+ }
105
117
  this._theme = theme
106
118
  }
107
119
 
108
120
  Gauge.prototype._requestRedraw = function () {
109
121
  this._needsRedraw = true
110
- if (!this._fixedFramerate) this._doRedraw()
122
+ if (!this._fixedFramerate) {
123
+ this._doRedraw()
124
+ }
111
125
  }
112
126
 
113
127
  Gauge.prototype.getWidth = function () {
@@ -116,25 +130,39 @@ Gauge.prototype.getWidth = function () {
116
130
 
117
131
  Gauge.prototype.setWriteTo = function (writeTo, tty) {
118
132
  var enabled = !this._disabled
119
- if (enabled) this.disable()
133
+ if (enabled) {
134
+ this.disable()
135
+ }
120
136
  this._writeTo = writeTo
121
137
  this._tty = tty ||
122
138
  (writeTo === process.stderr && process.stdout.isTTY && process.stdout) ||
123
139
  (writeTo.isTTY && writeTo) ||
124
140
  this._tty
125
- if (this._gauge) this._gauge.setWidth(this.getWidth())
126
- if (enabled) this.enable()
141
+ if (this._gauge) {
142
+ this._gauge.setWidth(this.getWidth())
143
+ }
144
+ if (enabled) {
145
+ this.enable()
146
+ }
127
147
  }
128
148
 
129
149
  Gauge.prototype.enable = function () {
130
- if (!this._disabled) return
150
+ if (!this._disabled) {
151
+ return
152
+ }
131
153
  this._disabled = false
132
- if (this._tty) this._enableEvents()
133
- if (this._showing) this.show()
154
+ if (this._tty) {
155
+ this._enableEvents()
156
+ }
157
+ if (this._showing) {
158
+ this.show()
159
+ }
134
160
  }
135
161
 
136
162
  Gauge.prototype.disable = function () {
137
- if (this._disabled) return
163
+ if (this._disabled) {
164
+ return
165
+ }
138
166
  if (this._showing) {
139
167
  this._lastUpdateAt = null
140
168
  this._showing = false
@@ -142,7 +170,9 @@ Gauge.prototype.disable = function () {
142
170
  this._showing = true
143
171
  }
144
172
  this._disabled = true
145
- if (this._tty) this._disableEvents()
173
+ if (this._tty) {
174
+ this._disableEvents()
175
+ }
146
176
  }
147
177
 
148
178
  Gauge.prototype._enableEvents = function () {
@@ -152,19 +182,29 @@ Gauge.prototype._enableEvents = function () {
152
182
  this._tty.on('resize', this._$$handleSizeChange)
153
183
  if (this._fixedFramerate) {
154
184
  this.redrawTracker = setInterval(this._$$doRedraw, this._updateInterval)
155
- if (this.redrawTracker.unref) this.redrawTracker.unref()
185
+ if (this.redrawTracker.unref) {
186
+ this.redrawTracker.unref()
187
+ }
156
188
  }
157
189
  }
158
190
 
159
191
  Gauge.prototype._disableEvents = function () {
160
192
  this._tty.removeListener('resize', this._$$handleSizeChange)
161
- if (this._fixedFramerate) clearInterval(this.redrawTracker)
162
- if (this._removeOnExit) this._removeOnExit()
193
+ if (this._fixedFramerate) {
194
+ clearInterval(this.redrawTracker)
195
+ }
196
+ if (this._removeOnExit) {
197
+ this._removeOnExit()
198
+ }
163
199
  }
164
200
 
165
201
  Gauge.prototype.hide = function (cb) {
166
- if (this._disabled) return cb && process.nextTick(cb)
167
- if (!this._showing) return cb && process.nextTick(cb)
202
+ if (this._disabled) {
203
+ return cb && process.nextTick(cb)
204
+ }
205
+ if (!this._showing) {
206
+ return cb && process.nextTick(cb)
207
+ }
168
208
  this._showing = false
169
209
  this._doRedraw()
170
210
  cb && setImmediate(cb)
@@ -181,16 +221,24 @@ Gauge.prototype.show = function (section, completed) {
181
221
  this._status[key] = section[key]
182
222
  }
183
223
  }
184
- if (completed != null) this._status.completed = completed
185
- if (this._disabled) return
224
+ if (completed != null) {
225
+ this._status.completed = completed
226
+ }
227
+ if (this._disabled) {
228
+ return
229
+ }
186
230
  this._requestRedraw()
187
231
  }
188
232
 
189
233
  Gauge.prototype.pulse = function (subsection) {
190
234
  this._status.subsection = subsection || ''
191
- this._status.spun ++
192
- if (this._disabled) return
193
- if (!this._showing) return
235
+ this._status.spun++
236
+ if (this._disabled) {
237
+ return
238
+ }
239
+ if (!this._showing) {
240
+ return
241
+ }
194
242
  this._requestRedraw()
195
243
  }
196
244
 
@@ -200,10 +248,14 @@ Gauge.prototype._handleSizeChange = function () {
200
248
  }
201
249
 
202
250
  Gauge.prototype._doRedraw = function () {
203
- if (this._disabled || this._paused) return
251
+ if (this._disabled || this._paused) {
252
+ return
253
+ }
204
254
  if (!this._fixedFramerate) {
205
255
  var now = Date.now()
206
- if (this._lastUpdateAt && now - this._lastUpdateAt < this._updateInterval) return
256
+ if (this._lastUpdateAt && now - this._lastUpdateAt < this._updateInterval) {
257
+ return
258
+ }
207
259
  this._lastUpdateAt = now
208
260
  }
209
261
  if (!this._showing && this._onScreen) {
@@ -214,7 +266,9 @@ Gauge.prototype._doRedraw = function () {
214
266
  }
215
267
  return this._writeTo.write(result)
216
268
  }
217
- if (!this._showing && !this._onScreen) return
269
+ if (!this._showing && !this._onScreen) {
270
+ return
271
+ }
218
272
  if (this._showing && !this._onScreen) {
219
273
  this._onScreen = true
220
274
  this._needsRedraw = true
@@ -222,7 +276,9 @@ Gauge.prototype._doRedraw = function () {
222
276
  this._writeTo.write(this._gauge.hideCursor())
223
277
  }
224
278
  }
225
- if (!this._needsRedraw) return
279
+ if (!this._needsRedraw) {
280
+ return
281
+ }
226
282
  if (!this._writeTo.write(this._gauge.show(this._status))) {
227
283
  this._paused = true
228
284
  this._writeTo.on('drain', callWith(this, function () {
@@ -4,7 +4,9 @@ var renderTemplate = require('./render-template.js')
4
4
  var validate = require('aproba')
5
5
 
6
6
  var Plumbing = module.exports = function (theme, template, width) {
7
- if (!width) width = 80
7
+ if (!width) {
8
+ width = 80
9
+ }
8
10
  validate('OAN', [theme, template, width])
9
11
  this.showing = false
10
12
  this.theme = theme
@@ -6,14 +6,20 @@ var stringWidth = require('string-width')
6
6
 
7
7
  module.exports = function (theme, width, completed) {
8
8
  validate('ONN', [theme, width, completed])
9
- if (completed < 0) completed = 0
10
- if (completed > 1) completed = 1
11
- if (width <= 0) return ''
9
+ if (completed < 0) {
10
+ completed = 0
11
+ }
12
+ if (completed > 1) {
13
+ completed = 1
14
+ }
15
+ if (width <= 0) {
16
+ return ''
17
+ }
12
18
  var sofar = Math.round(width * completed)
13
19
  var rest = width - sofar
14
20
  var template = [
15
- {type: 'complete', value: repeat(theme.complete, sofar), length: sofar},
16
- {type: 'remaining', value: repeat(theme.remaining, rest), length: rest}
21
+ { type: 'complete', value: repeat(theme.complete, sofar), length: sofar },
22
+ { type: 'remaining', value: repeat(theme.remaining, rest), length: rest },
17
23
  ]
18
24
  return renderTemplate(width, template, theme)
19
25
  }
@@ -27,7 +33,7 @@ function repeat (string, width) {
27
33
  result += string
28
34
  }
29
35
  n = Math.floor(n / 2)
30
- /*eslint no-self-assign: 0*/
36
+ /* eslint no-self-assign: 0 */
31
37
  string += string
32
38
  } while (n && stringWidth(result) < width)
33
39
 
@@ -1,7 +1,6 @@
1
1
  'use strict'
2
2
  var align = require('wide-align')
3
3
  var validate = require('aproba')
4
- var objectAssign = require('object-assign')
5
4
  var wideTruncate = require('./wide-truncate')
6
5
  var error = require('./error')
7
6
  var TemplateItem = require('./template-item')
@@ -29,18 +28,20 @@ function postType (item) {
29
28
  }
30
29
 
31
30
  function hasPreOrPost (item, values) {
32
- if (!item.type) return
31
+ if (!item.type) {
32
+ return
33
+ }
33
34
  return values[preType(item)] || values[postType(item)]
34
35
  }
35
36
 
36
37
  function generatePreAndPost (baseItem, parentValues) {
37
- var item = objectAssign({}, baseItem)
38
+ var item = Object.assign({}, baseItem)
38
39
  var values = Object.create(parentValues)
39
40
  var template = []
40
41
  var pre = preType(item)
41
42
  var post = postType(item)
42
43
  if (values[pre]) {
43
- template.push({value: values[pre]})
44
+ template.push({ value: values[pre] })
44
45
  values[pre] = null
45
46
  }
46
47
  item.minLength = null
@@ -49,7 +50,7 @@ function generatePreAndPost (baseItem, parentValues) {
49
50
  template.push(item)
50
51
  values[item.type] = values[item.type]
51
52
  if (values[post]) {
52
- template.push({value: values[post]})
53
+ template.push({ value: values[post] })
53
54
  values[post] = null
54
55
  }
55
56
  return function ($1, $2, length) {
@@ -72,49 +73,73 @@ function prepareItems (width, template, values) {
72
73
  cloned.value = values[type]
73
74
  }
74
75
  }
75
- if (cloned.value == null || cloned.value === '') return null
76
+ if (cloned.value == null || cloned.value === '') {
77
+ return null
78
+ }
76
79
  cloned.index = index
77
80
  cloned.first = index === 0
78
81
  cloned.last = index === arr.length - 1
79
- if (hasPreOrPost(cloned, values)) cloned.value = generatePreAndPost(cloned, values)
82
+ if (hasPreOrPost(cloned, values)) {
83
+ cloned.value = generatePreAndPost(cloned, values)
84
+ }
80
85
  return cloned
81
86
  }
82
87
 
83
- var output = template.map(cloneAndObjectify).filter(function (item) { return item != null })
88
+ var output = template.map(cloneAndObjectify).filter(function (item) {
89
+ return item != null
90
+ })
84
91
 
85
- var outputLength = 0
86
92
  var remainingSpace = width
87
93
  var variableCount = output.length
88
94
 
89
95
  function consumeSpace (length) {
90
- if (length > remainingSpace) length = remainingSpace
91
- outputLength += length
96
+ if (length > remainingSpace) {
97
+ length = remainingSpace
98
+ }
92
99
  remainingSpace -= length
93
100
  }
94
101
 
95
102
  function finishSizing (item, length) {
96
- if (item.finished) throw new error.Internal('Tried to finish template item that was already finished')
97
- if (length === Infinity) throw new error.Internal('Length of template item cannot be infinity')
98
- if (length != null) item.length = length
103
+ if (item.finished) {
104
+ throw new error.Internal('Tried to finish template item that was already finished')
105
+ }
106
+ if (length === Infinity) {
107
+ throw new error.Internal('Length of template item cannot be infinity')
108
+ }
109
+ if (length != null) {
110
+ item.length = length
111
+ }
99
112
  item.minLength = null
100
113
  item.maxLength = null
101
114
  --variableCount
102
115
  item.finished = true
103
- if (item.length == null) item.length = item.getBaseLength()
104
- if (item.length == null) throw new error.Internal('Finished template items must have a length')
116
+ if (item.length == null) {
117
+ item.length = item.getBaseLength()
118
+ }
119
+ if (item.length == null) {
120
+ throw new error.Internal('Finished template items must have a length')
121
+ }
105
122
  consumeSpace(item.getLength())
106
123
  }
107
124
 
108
125
  output.forEach(function (item) {
109
- if (!item.kerning) return
126
+ if (!item.kerning) {
127
+ return
128
+ }
110
129
  var prevPadRight = item.first ? 0 : output[item.index - 1].padRight
111
- if (!item.first && prevPadRight < item.kerning) item.padLeft = item.kerning - prevPadRight
112
- if (!item.last) item.padRight = item.kerning
130
+ if (!item.first && prevPadRight < item.kerning) {
131
+ item.padLeft = item.kerning - prevPadRight
132
+ }
133
+ if (!item.last) {
134
+ item.padRight = item.kerning
135
+ }
113
136
  })
114
137
 
115
138
  // Finish any that have a fixed (literal or intuited) length
116
139
  output.forEach(function (item) {
117
- if (item.getBaseLength() == null) return
140
+ if (item.getBaseLength() == null) {
141
+ return
142
+ }
118
143
  finishSizing(item)
119
144
  })
120
145
 
@@ -125,34 +150,48 @@ function prepareItems (width, template, values) {
125
150
  resizing = false
126
151
  hunkSize = Math.round(remainingSpace / variableCount)
127
152
  output.forEach(function (item) {
128
- if (item.finished) return
129
- if (!item.maxLength) return
153
+ if (item.finished) {
154
+ return
155
+ }
156
+ if (!item.maxLength) {
157
+ return
158
+ }
130
159
  if (item.getMaxLength() < hunkSize) {
131
160
  finishSizing(item, item.maxLength)
132
161
  resizing = true
133
162
  }
134
163
  })
135
164
  } while (resizing && resized++ < output.length)
136
- if (resizing) throw new error.Internal('Resize loop iterated too many times while determining maxLength')
165
+ if (resizing) {
166
+ throw new error.Internal('Resize loop iterated too many times while determining maxLength')
167
+ }
137
168
 
138
169
  resized = 0
139
170
  do {
140
171
  resizing = false
141
172
  hunkSize = Math.round(remainingSpace / variableCount)
142
173
  output.forEach(function (item) {
143
- if (item.finished) return
144
- if (!item.minLength) return
174
+ if (item.finished) {
175
+ return
176
+ }
177
+ if (!item.minLength) {
178
+ return
179
+ }
145
180
  if (item.getMinLength() >= hunkSize) {
146
181
  finishSizing(item, item.minLength)
147
182
  resizing = true
148
183
  }
149
184
  })
150
185
  } while (resizing && resized++ < output.length)
151
- if (resizing) throw new error.Internal('Resize loop iterated too many times while determining minLength')
186
+ if (resizing) {
187
+ throw new error.Internal('Resize loop iterated too many times while determining minLength')
188
+ }
152
189
 
153
190
  hunkSize = Math.round(remainingSpace / variableCount)
154
191
  output.forEach(function (item) {
155
- if (item.finished) return
192
+ if (item.finished) {
193
+ return
194
+ }
156
195
  finishSizing(item, hunkSize)
157
196
  })
158
197
 
@@ -171,7 +210,9 @@ function renderFunction (item, values, length) {
171
210
  function renderValue (item, values) {
172
211
  var length = item.getBaseLength()
173
212
  var value = typeof item.value === 'function' ? renderFunction(item, values, length) : item.value
174
- if (value == null || value === '') return ''
213
+ if (value == null || value === '') {
214
+ return ''
215
+ }
175
216
  var alignWith = align[item.align] || align.left
176
217
  var leftPadding = item.padLeft ? align.left('', item.padLeft) : ''
177
218
  var rightPadding = item.padRight ? align.right('', item.padRight) : ''
@@ -4,7 +4,9 @@ var stringWidth = require('string-width')
4
4
  module.exports = TemplateItem
5
5
 
6
6
  function isPercent (num) {
7
- if (typeof num !== 'string') return false
7
+ if (typeof num !== 'string') {
8
+ return false
9
+ }
8
10
  return num.slice(-1) === '%'
9
11
  }
10
12
 
@@ -30,7 +32,9 @@ function TemplateItem (values, outputLength) {
30
32
  if (typeof values === 'string') {
31
33
  this.value = values
32
34
  } else {
33
- for (var prop in values) this[prop] = values[prop]
35
+ for (var prop in values) {
36
+ this[prop] = values[prop]
37
+ }
34
38
  }
35
39
  // Realize percents
36
40
  if (isPercent(this.length)) {
@@ -49,7 +53,12 @@ TemplateItem.prototype = {}
49
53
 
50
54
  TemplateItem.prototype.getBaseLength = function () {
51
55
  var length = this.length
52
- if (length == null && typeof this.value === 'string' && this.maxLength == null && this.minLength == null) {
56
+ if (
57
+ length == null &&
58
+ typeof this.value === 'string' &&
59
+ this.maxLength == null &&
60
+ this.minLength == null
61
+ ) {
53
62
  length = stringWidth(this.value)
54
63
  }
55
64
  return length
@@ -57,17 +66,22 @@ TemplateItem.prototype.getBaseLength = function () {
57
66
 
58
67
  TemplateItem.prototype.getLength = function () {
59
68
  var length = this.getBaseLength()
60
- if (length == null) return null
69
+ if (length == null) {
70
+ return null
71
+ }
61
72
  return length + this.padLeft + this.padRight
62
73
  }
63
74
 
64
75
  TemplateItem.prototype.getMaxLength = function () {
65
- if (this.maxLength == null) return null
76
+ if (this.maxLength == null) {
77
+ return null
78
+ }
66
79
  return this.maxLength + this.padLeft + this.padRight
67
80
  }
68
81
 
69
82
  TemplateItem.prototype.getMinLength = function () {
70
- if (this.minLength == null) return null
83
+ if (this.minLength == null) {
84
+ return null
85
+ }
71
86
  return this.minLength + this.padLeft + this.padRight
72
87
  }
73
-
@@ -1,5 +1,4 @@
1
1
  'use strict'
2
- var objectAssign = require('object-assign')
3
2
 
4
3
  module.exports = function () {
5
4
  return ThemeSetProto.newThemeSet()
@@ -14,7 +13,7 @@ ThemeSetProto.newTheme = function (parent, theme) {
14
13
  theme = parent
15
14
  parent = this.baseTheme
16
15
  }
17
- return objectAssign({}, parent, theme)
16
+ return Object.assign({}, parent, theme)
18
17
  }
19
18
 
20
19
  ThemeSetProto.getThemeNames = function () {
@@ -28,13 +27,15 @@ ThemeSetProto.addTheme = function (name, parent, theme) {
28
27
  ThemeSetProto.addToAllThemes = function (theme) {
29
28
  var themes = this.themes
30
29
  Object.keys(themes).forEach(function (name) {
31
- objectAssign(themes[name], theme)
30
+ Object.assign(themes[name], theme)
32
31
  })
33
- objectAssign(this.baseTheme, theme)
32
+ Object.assign(this.baseTheme, theme)
34
33
  }
35
34
 
36
35
  ThemeSetProto.getTheme = function (name) {
37
- if (!this.themes[name]) throw this.newMissingThemeError(name)
36
+ if (!this.themes[name]) {
37
+ throw this.newMissingThemeError(name)
38
+ }
38
39
  return this.themes[name]
39
40
  }
40
41
 
@@ -46,17 +47,23 @@ ThemeSetProto.setDefault = function (opts, name) {
46
47
  var platform = opts.platform == null ? 'fallback' : opts.platform
47
48
  var hasUnicode = !!opts.hasUnicode
48
49
  var hasColor = !!opts.hasColor
49
- if (!this.defaults[platform]) this.defaults[platform] = {true: {}, false: {}}
50
+ if (!this.defaults[platform]) {
51
+ this.defaults[platform] = { true: {}, false: {} }
52
+ }
50
53
  this.defaults[platform][hasUnicode][hasColor] = name
51
54
  }
52
55
 
53
56
  ThemeSetProto.getDefault = function (opts) {
54
- if (!opts) opts = {}
57
+ if (!opts) {
58
+ opts = {}
59
+ }
55
60
  var platformName = opts.platform || process.platform
56
61
  var platform = this.defaults[platformName] || this.defaults.fallback
57
62
  var hasUnicode = !!opts.hasUnicode
58
63
  var hasColor = !!opts.hasColor
59
- if (!platform) throw this.newMissingDefaultThemeError(platformName, hasUnicode, hasColor)
64
+ if (!platform) {
65
+ throw this.newMissingDefaultThemeError(platformName, hasUnicode, hasColor)
66
+ }
60
67
  if (!platform[hasUnicode][hasColor]) {
61
68
  if (hasUnicode && hasColor && platform[!hasUnicode][hasColor]) {
62
69
  hasUnicode = false
@@ -76,7 +83,7 @@ ThemeSetProto.getDefault = function (opts) {
76
83
  if (platform[hasUnicode][hasColor]) {
77
84
  return this.getTheme(platform[hasUnicode][hasColor])
78
85
  } else {
79
- return this.getDefault(objectAssign({}, opts, {platform: 'fallback'}))
86
+ return this.getDefault(Object.assign({}, opts, { platform: 'fallback' }))
80
87
  }
81
88
  }
82
89
 
@@ -88,28 +95,28 @@ ThemeSetProto.newMissingThemeError = function newMissingThemeError (name) {
88
95
  return err
89
96
  }
90
97
 
91
- ThemeSetProto.newMissingDefaultThemeError = function newMissingDefaultThemeError (platformName, hasUnicode, hasColor) {
92
- var err = new Error(
93
- 'Could not find a gauge theme for your platform/unicode/color use combo:\n' +
98
+ ThemeSetProto.newMissingDefaultThemeError =
99
+ function newMissingDefaultThemeError (platformName, hasUnicode, hasColor) {
100
+ var err = new Error(
101
+ 'Could not find a gauge theme for your platform/unicode/color use combo:\n' +
94
102
  ' platform = ' + platformName + '\n' +
95
103
  ' hasUnicode = ' + hasUnicode + '\n' +
96
104
  ' hasColor = ' + hasColor)
97
- Error.captureStackTrace.call(err, newMissingDefaultThemeError)
98
- err.platform = platformName
99
- err.hasUnicode = hasUnicode
100
- err.hasColor = hasColor
101
- err.code = 'EMISSINGTHEME'
102
- return err
103
- }
105
+ Error.captureStackTrace.call(err, newMissingDefaultThemeError)
106
+ err.platform = platformName
107
+ err.hasUnicode = hasUnicode
108
+ err.hasColor = hasColor
109
+ err.code = 'EMISSINGTHEME'
110
+ return err
111
+ }
104
112
 
105
113
  ThemeSetProto.newThemeSet = function () {
106
114
  var themeset = function (opts) {
107
115
  return themeset.getDefault(opts)
108
116
  }
109
- return objectAssign(themeset, ThemeSetProto, {
110
- themes: objectAssign({}, this.themes),
111
- baseTheme: objectAssign({}, this.baseTheme),
112
- defaults: JSON.parse(JSON.stringify(this.defaults || {}))
117
+ return Object.assign(themeset, ThemeSetProto, {
118
+ themes: Object.assign({}, this.themes),
119
+ baseTheme: Object.assign({}, this.baseTheme),
120
+ defaults: JSON.parse(JSON.stringify(this.defaults || {})),
113
121
  })
114
122
  }
115
-