summaryrefslogtreecommitdiff
path: root/src/node_modules/consola/src/utils/string.js
blob: 40a2f55df209d12f9611deeca9fddc3a91f7619d (plain)
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
export function centerAlign (str, len, space = ' ') {
  const free = len - str.length
  if (free <= 0) {
    return str
  }
  const freeLeft = Math.floor(free / 2)
  let _str = ''
  for (let i = 0; i < len; i++) {
    _str += (i < freeLeft || i >= freeLeft + str.length) ? space : str[i - freeLeft]
  }
  return _str
}

export function rightAlign (str, len, space = ' ') {
  const free = len - str.length
  if (free <= 0) {
    return str
  }
  let _str = ''
  for (let i = 0; i < len; i++) {
    _str += i < free ? space : str[i - free]
  }
  return _str
}

export function leftAlign (str, len, space = ' ') {
  let _str = ''
  for (let i = 0; i < len; i++) {
    _str += i < str.length ? str[i] : space
  }
  return _str
}

export function align (alignment, str, len, space = ' ') {
  switch (alignment) {
    case 'left': return leftAlign(str, len, space)
    case 'right': return rightAlign(str, len, space)
    case 'center': return centerAlign(str, len, space)
    default: return str
  }
}