执行过npm install命令的vue-element-admin源码
康凯
2022-05-20 aa4c235a8ca67ea8b731f90c951a465e92c0a865
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
'use strict';
var sliceAnsi = require('slice-ansi');
var stringWidth = require('string-width');
 
module.exports = function (input, columns, options) {
    options = options || {};
 
    var position = options.position || 'end';
    var ellipsis = '…';
 
    if (typeof input !== 'string') {
        throw new TypeError('Expected `input` to be a string, got ' + typeof input);
    }
 
    if (typeof columns !== 'number') {
        throw new TypeError('Expected `columns` to be a number, got ' + typeof columns);
    }
 
    if (columns < 1) {
        return '';
    }
 
    if (columns === 1) {
        return ellipsis;
    }
 
    var length = stringWidth(input);
 
    if (length <= columns) {
        return input;
    }
 
    if (position === 'start') {
        return ellipsis + sliceAnsi(input, length - columns + 1, length);
    } else if (position === 'middle') {
        var half = Math.floor(columns / 2);
        return sliceAnsi(input, 0, half) + ellipsis + sliceAnsi(input, length - (columns - half) + 1, length);
    } else if (position === 'end') {
        return sliceAnsi(input, 0, columns - 1) + ellipsis;
    }
 
    throw new Error('Expected `options.position` to be either `start`, `middle` or `end`, got ' + position);
};