Socket
Socket
Sign inDemoInstall

cliui

Package Overview
Dependencies
Maintainers
1
Versions
25
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cliui - npm Package Compare versions

Comparing version 3.0.2 to 3.0.3

24

index.js
var stringWidth = require('string-width')
var stripAnsi = require('strip-ansi')
var wrap = require('wrap-ansi')

@@ -72,3 +73,3 @@ var align = {

text: r.trim(),
padding: [0, r.match(/\s*$/)[0].length, 0, r.match(/^\s*/)[0].length],
padding: _this._measurePadding(r),
width: (i === 0 && columns.length > 1) ? leftColumnWidth : undefined

@@ -84,6 +85,13 @@ }

return {
text: str
text: str,
padding: this._measurePadding(str)
}
}
UI.prototype._measurePadding = function (str) {
// measure padding without ansi escape codes
var noAnsi = stripAnsi(str)
return [0, noAnsi.match(/\s*$/)[0].length, 0, noAnsi.match(/^\s*/)[0].length]
}
UI.prototype.toString = function () {

@@ -110,3 +118,3 @@ var _this = this

var _this = this
var paddingLeft
var padding
var rrows = this._rasterize(row)

@@ -138,6 +146,6 @@ var str = ''

// add left/right padding and print string.
paddingLeft = (row[c].padding || [0, 0, 0, 0])[left]
if (paddingLeft) str += new Array(row[c].padding[left] + 1).join(' ')
padding = row[c].padding || [0, 0, 0, 0]
if (padding[left]) str += new Array(padding[left] + 1).join(' ')
str += ts
if (row[c].padding && row[c].padding[right]) str += new Array(row[c].padding[right] + 1).join(' ')
if (padding[right]) str += new Array(padding[right] + 1).join(' ')

@@ -147,3 +155,3 @@ // if prior row is span, try to render the

if (r === 0 && lines.length > 0) {
str = _this._renderInline(str, lines[lines.length - 1], paddingLeft)
str = _this._renderInline(str, lines[lines.length - 1])
}

@@ -164,3 +172,3 @@ })

// the target line, do so.
UI.prototype._renderInline = function (source, previousLine, paddingLeft) {
UI.prototype._renderInline = function (source, previousLine) {
var leadingWhitespace = source.match(/^ */)[0].length

@@ -167,0 +175,0 @@ var target = previousLine.text

{
"name": "cliui",
"version": "3.0.2",
"version": "3.0.3",
"description": "easily create complex multi-column command-line-interfaces",

@@ -47,2 +47,3 @@ "main": "index.js",

"string-width": "^1.0.1",
"strip-ansi": "^3.0.0",
"wrap-ansi": "^1.0.0"

@@ -56,5 +57,4 @@ },

"nyc": "^3.2.2",
"standard": "^5.3.1",
"strip-ansi": "^3.0.0"
"standard": "^5.3.1"
}
}

@@ -214,2 +214,18 @@ /* global describe, it */

})
it('preserves leading whitespace as padding', function () {
var ui = cliui()
ui.div(' LEADING WHITESPACE')
ui.div('\u001b[34m with ansi\u001b[39m')
var expected = [
' LEADING WHITESPACE',
' with ansi'
]
ui.toString().split('\n').map(function (l) {
return stripAnsi(l)
}).should.eql(expected)
})
})

@@ -370,3 +386,2 @@

chalk
var expected = [

@@ -384,2 +399,26 @@ ' <regex> my awesome [regex]',

it('ignores ansi escape codes when measuring padding', function () {
var ui = cliui({
width: 25
})
// using figlet font 'Shadow' rendering of text 'true' here
ui.div(
chalk.blue(' | \n __| __| | | _ \\ \n | | | | __/ \n \\__| _| \\__,_| \\___| \n ')
)
// relevant part is first line - leading whitespace should be preserved as left padding
var expected = [
' |',
' __| __| | | _ \\',
' | | | | __/',
' \\__| _| \\__,_| \\___|',
' '
]
ui.toString().split('\n').map(function (l) {
return stripAnsi(l)
}).should.eql(expected)
})
it('does not apply DSL if wrap is false', function () {

@@ -386,0 +425,0 @@ var ui = cliui({

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc