Skip to content

Commit 27ed208

Browse files
committedApr 2, 2019
Require Node.js 8
Closes #12
1 parent 94f2697 commit 27ed208

File tree

5 files changed

+38
-35
lines changed

5 files changed

+38
-35
lines changed
 

‎.gitattributes

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
* text=auto
2-
*.js text eol=lf
1+
* text=auto eol=lf

‎.travis.yml

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
language: node_js
22
node_js:
3+
- '10'
34
- '8'
4-
- '6'
5-
- '4'

‎index.js

+12-7
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@
22
const sliceAnsi = require('slice-ansi');
33
const stringWidth = require('string-width');
44

5-
module.exports = (input, columns, opts) => {
6-
opts = Object.assign({
7-
position: 'end'
8-
}, opts);
5+
module.exports = (input, columns, options) => {
6+
options = {
7+
position: 'end',
8+
...options
9+
};
910

10-
const position = opts.position;
11+
const {position} = options;
1112
const ellipsis = '…';
1213

1314
if (typeof input !== 'string') {
@@ -34,10 +35,14 @@ module.exports = (input, columns, opts) => {
3435

3536
if (position === 'start') {
3637
return ellipsis + sliceAnsi(input, length - columns + 1, length);
37-
} else if (position === 'middle') {
38+
}
39+
40+
if (position === 'middle') {
3841
const half = Math.floor(columns / 2);
3942
return sliceAnsi(input, 0, half) + ellipsis + sliceAnsi(input, length - (columns - half) + 1, length);
40-
} else if (position === 'end') {
43+
}
44+
45+
if (position === 'end') {
4146
return sliceAnsi(input, 0, columns - 1) + ellipsis;
4247
}
4348

‎package.json

+5-5
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"url": "sindresorhus.com"
1111
},
1212
"engines": {
13-
"node": ">=4"
13+
"node": ">=8"
1414
},
1515
"scripts": {
1616
"test": "xo && ava"
@@ -32,11 +32,11 @@
3232
"ansi"
3333
],
3434
"dependencies": {
35-
"slice-ansi": "^1.0.0",
36-
"string-width": "^2.0.0"
35+
"slice-ansi": "^2.1.0",
36+
"string-width": "^4.1.0"
3737
},
3838
"devDependencies": {
39-
"ava": "*",
40-
"xo": "*"
39+
"ava": "^1.4.1",
40+
"xo": "^0.24.0"
4141
}
4242
}

‎test.js

+19-19
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
import test from 'ava';
2-
import m from '.';
2+
import cliTruncate from '.';
33

4-
test(t => {
5-
t.is(m('unicorn', 4), 'uni…');
6-
t.is(m('unicorn', 4, {position: 'end'}), 'uni…');
7-
t.is(m('unicorn', 1), '…');
8-
t.is(m('unicorn', 0), '');
9-
t.is(m('unicorn', -4), '');
10-
t.is(m('unicorn', 20), 'unicorn');
11-
t.is(m('unicorn', 7), 'unicorn');
12-
t.is(m('unicorn', 6), 'unico…');
13-
t.is(m('\u001B[31municorn\u001B[39m', 7), '\u001B[31municorn\u001B[39m');
14-
t.is(m('\u001B[31municorn\u001B[39m', 1), '…');
15-
t.is(m('\u001B[31municorn\u001B[39m', 4), '\u001B[31muni\u001B[39m…');
16-
t.is(m('a\uD83C\uDE00b\uD83C\uDE00c', 5), 'a\uD83C\uDE00b\uD83C\uDE00…', 'surrogate pairs');
17-
t.is(m('안녕하세요', 3), '안…', 'wide char');
18-
t.is(m('unicorn', 5, {position: 'start'}), '…corn');
19-
t.is(m('unicorn', 6, {position: 'start'}), '…icorn');
20-
t.is(m('unicorn', 5, {position: 'middle'}), 'un…rn');
21-
t.is(m('unicorns', 6, {position: 'middle'}), 'uni…ns');
4+
test('main', t => {
5+
t.is(cliTruncate('unicorn', 4), 'uni…');
6+
t.is(cliTruncate('unicorn', 4, {position: 'end'}), 'uni…');
7+
t.is(cliTruncate('unicorn', 1), '…');
8+
t.is(cliTruncate('unicorn', 0), '');
9+
t.is(cliTruncate('unicorn', -4), '');
10+
t.is(cliTruncate('unicorn', 20), 'unicorn');
11+
t.is(cliTruncate('unicorn', 7), 'unicorn');
12+
t.is(cliTruncate('unicorn', 6), 'unico…');
13+
t.is(cliTruncate('\u001B[31municorn\u001B[39m', 7), '\u001B[31municorn\u001B[39m');
14+
t.is(cliTruncate('\u001B[31municorn\u001B[39m', 1), '…');
15+
t.is(cliTruncate('\u001B[31municorn\u001B[39m', 4), '\u001B[31muni\u001B[39m…');
16+
t.is(cliTruncate('a\uD83C\uDE00b\uD83C\uDE00c', 5), 'a\uD83C\uDE00b\uD83C\uDE00…', 'surrogate pairs');
17+
t.is(cliTruncate('안녕하세요', 3), '안…', 'wide char');
18+
t.is(cliTruncate('unicorn', 5, {position: 'start'}), '…corn');
19+
t.is(cliTruncate('unicorn', 6, {position: 'start'}), '…icorn');
20+
t.is(cliTruncate('unicorn', 5, {position: 'middle'}), 'un…rn');
21+
t.is(cliTruncate('unicorns', 6, {position: 'middle'}), 'uni…ns');
2222
});

0 commit comments

Comments
 (0)
Please sign in to comment.