Потрясающий модуль сообщества

Таблица Ascii

Статус сборки Статус devDependency НПМ-версия

Удобный вывод таблицы для отладки узлов, но вы, вероятно, могли бы сделать с ней больше, поскольку это всего лишь строка.

Оглавление

Применение

Node.js

1
var AsciiTable = require('ascii-table')

Браузер

1
<script src="ascii-table.min.js"></script>

Примечание . При использовании в браузере он будет помещен в разделwindow.AsciiTable

Пример

Основное использование

1 2 3 4 5 6 7 8
var table = new AsciiTable('A Title') table .setHeading('', 'Name', 'Age') .addRow(1, 'Bob', 52) .addRow(2, 'John', 34) .addRow(3, 'Jim', 83) console.log(table.toString())
1 2 3 4 5 6 7 8 9
.----------------. | A Title | |----------------| | | Name | Age | |---|------|-----| | 1 | Bob | 52 | | 2 | John | 34 | | 3 | Jim | 83 | '----------------'

Мы также можем сделать простую таблицу без заголовка и заголовков.

1 2 3 4 5 6 7 8 9 10
var table = new AsciiTable() table .addRow('a', 'apple', 'Some longer string') .addRow('b', 'banana', 'hi') .addRow('c', 'carrot', 'meow') .addRow('e', 'elephants') console.log(table.toString())
1 2 3 4 5 6
.------------------------------------. | a | apple | Some longer string | | b | banana | hi | | c | carrot | meow | | e | elephants | | '------------------------------------'

API

Static Methods

Таблица Ascii

См.: AsciiTable.factoryподробности о создании экземпляра.

AsciiTable.factory([название], [опции])

Создатель экземпляра таблицы

  • title- заголовок таблицы (необязательно, по умолчанию null)
  • options- варианты таблицы (по желанию)
    • prefix- строковый префикс для добавления к каждой строке при рендеринге

Примечание. Если вместо объекта передается объектtitle,fromJSON метод будет использоваться для заполнения таблицы.

Пример:

1 2 3 4 5 6 7 8 9 10
var table = AsciiTable.factory('title') var table = AsciiTable.factory({ title: 'Title' , heading: [ 'id', 'name' ] , rows: [ [ 1, 'Bob' ] , [ 2, 'Steve' ] ] })

AsciiTable.align(направление, значение, длина, [pad])

Ярлык к одному из трех следующих методов

  • direction- направление выравнивания ( AsciiTable.LEFT, AsciiTable.CENTER, AsciiTable.RIGHT)
  • val- строка для выравнивания
  • len- общая длина созданной строки
  • pad- символ заполнения/заполнения (необязательно, по умолчанию ' ')

Пример:

1
table.align(AsciiTable.LEFT, 'hey', 7) // 'hey '

AsciiTable.alignLeft(val, len, [pad])

  • val- строка для выравнивания
  • len- общая длина созданной строки
  • pad- символ заполнения/заполнения (необязательно, по умолчанию ' ')

Пример:

1
table.alignLeft('hey', 7, '-') // 'hey----'

AsciiTable.alignCenter(val, len, [pad])

  • val- строка для выравнивания
  • len- общая длина созданной строки
  • pad- символ заполнения/заполнения (необязательно, по умолчанию ' ')

Пример:

1
table.alignCenter('hey', 7) // ' hey '

AsciiTable.alignRight(val, len, [pad])

  • val- строка для выравнивания
  • len- общая длина созданной строки
  • pad- символ заполнения/заполнения (необязательно, по умолчанию ' ')

Пример:

1
table.alignRight('hey', 7) // ' hey'

AsciiTable.alignAuto(val, len, [pad])

Попытайтесь выполнить интеллектуальное выравнивание предоставленных val, Stringввод будет выровнен по левому краю, Numberтипы будут выровнены по правому краю.

  • val- строка для выравнивания
  • len- общая длина созданной строки
  • pad- символ заполнения/заполнения (необязательно, по умолчанию ' ')

Пример:

1
table.align(AsciiTable.LEFT, 'hey', 7) // 'hey '

AsciiTable.arrayFill(len, [val])

Создайте новый массив с заданной длиной, заполненный заданным значением, в основном используемый внутри.

  • len- длина массива
  • val- значение заполнения (необязательно)

Пример:

1
AsciiTable.arrayFill(4, 0) // [0, 0, 0, 0]

Instance Methods

экземпляр.setBorder([край], [заливка], [сверху], [снизу])

Установите символы границ для рендеринга, если аргументы не переданы, они будут сброшены до значений по умолчанию. Если edgeпередан один аргумент, он будет использоваться для всех границ.

  • edge- горизонтальные края (необязательно, по умолчанию |)
  • fill-вертикальные края (необязательно, по умолчанию -)
  • top- верхние углы (необязательно, по умолчанию .)
  • bottom- нижние углы (необязательно, по умолчанию ')

Пример:

1 2 3 4 5 6 7
var table = new AsciiTable('Stars') table .setBorder('*') .setHeading('oh', 'look') .addRow('so much', 'star power') console.log(table.toString())
1 2 3 4 5 6 7
************************ * Stars * ************************ * oh * look * ************************ * so much * star power * ************************

экземпляр.removeBorder()

Пример:

1 2 3
table.removeBorder() console.log('' + table)
1 2 3 4 5 6
# Fruit Thing --- ----------- -------------------- a apple Some longer string b banana hi c carrot meow e elephants

экземпляр.setAlign(idx, направление)

  • idx-индекс столбца для выравнивания
  • direction- направление выравнивания, ( AsciiTable.LEFT, AsciiTable.CENTER, AsciiTable.RIGHT)

Пример:

1 2 3 4 5
table .setAlign(2, AsciiTable.RIGHT) .setAlign(1, AsciiTable.CENTER) console.log(table.toString())
1 2 3 4 5 6
.-------------------------------------. | a | apple | Some longer string | | b | banana | hi | | c | carrot | meow | | e | elephants | | '-------------------------------------'

экземпляр.setAlignLeft(idx)

Псевдоним дляinstance.setAlign(idx, AsciiTable.LEFT)

экземпляр.setAlignCenter(idx)

Псевдоним дляinstance.setAlign(idx, AsciiTable.CENTER)

экземпляр.setAlignRight(idx)

Псевдоним дляinstance.setAlign(idx, AsciiTable.RIGHT)

экземпляр.setTitle(заголовок)

  • title- название таблицы

Пример:

1 2 3
var table = new AsciiTable('Old Title') table.setTitle('New Title')

экземпляр.getTitle()

Получить текущий заголовок таблицы

Пример:

1
table.getTitle() // 'New Title'

экземпляр.setTitleAlign(направление)

  • direction- направление выравнивания таблицы

Пример:

1

экземпляр.setTitleAlignLeft()

Псевдоним дляinstance.setTitleAlign(AsciiTable.LEFT)

экземпляр.setTitleAlignCenter()

Псевдоним дляinstance.setTitleAlign(AsciiTable.CENTER)

экземпляр.setTitleAlignRight()

Псевдоним дляinstance.setTitleAlign(AsciiTable.RIGHT)

экземпляр.сортировка(итератор)

  • iterator- метод сортировки по строкам

Пример:

1 2 3 4
table.sort(function(a, b) { return a[2] - b[2] }) console.log(table.toString())
1 2 3 4 5
.----------------. | 2 | John | 34 | | 1 | Bob | 52 | | 3 | Jim | 83 | '----------------'

экземпляр.sortColumn(индекс, итератор)

Ярлык сортировки для таргетинга на определенный столбец

  • index- идентификатор столбца для сортировки
  • iterator- метод сортировки для работы со значениями столбцов

Пример:

1 2 3 4
// This is quivalent to the `sort` example above table.sortColumn(2, function(a, b) { return a - b })

экземпляр.setHeading(заголовок, [...])

Задает заголовки столбцов таблицы, принимает аргументы так же, как иaddRow

  • heading- массив заголовков или аргументы

Пример:

1 2 3 4 5
table.setHeading('ID', 'Key', 'Value') // or: table.setHeading(['ID', 'Key', 'Value'])

экземпляр.setHeadingAlign(направление)

  • direction-

Пример:

1

экземпляр.setHeadingAlignLeft()

Псевдоним дляinstance.setHeadingAlignLeft(AsciiTable.LEFT)

экземпляр.setHeadingAlignCenter()

Псевдоним дляinstance.setHeadingAlignLeft(AsciiTable.CENTER)

экземпляр.setHeadingAlignRight()

Псевдоним дляinstance.setHeadingAlignLeft(AsciiTable.RIGHT)

экземпляр.addRow(строка, [...])

Строки можно добавлять с помощью одного аргумента массива или аргументов, если при вызове метода используется несколько аргументов.

  • row- массив или аргументы значений столбца

Пример:

1 2 3 4 5 6 7
var table = new AsciiTable() table .addRow(1, 'Bob', 52) .addRow([2, 'John', 34]) console.log(table.render())
1 2 3 4
.---------------. | 1 | Bob | 52 | | 2 | John | 34 | '---------------'

экземпляр.addRowMatrix(строки)

Массовая addRowоперация

  • rows- многомерный массив строк

Пример:

1 2 3 4
table.addRowMatrix([ [2, 'John', 34] , [3, 'Jim', 83] ])

экземпляр.setJustify(включено)

Выровняйте все столбцы, чтобы они были одинаковой ширины

  • enabled- логическое значение для включения или выключения выравнивания, undefinedсчитается истинным

Пример:

1 2 3 4 5
table .addRow('1', 'two', 'three') .setJustify() console.log(table.toString())
1 2 3
.-----------------------. | 1 | two | three | '-----------------------'

экземпляр.toString()

Отображение экземпляра как строки для вывода

Псевдоним : [ valueOf, render]

экземпляр.toJSON()

Верните представление таблицы в формате JSON, это также позволяет нам вызывать JSON.stringifyэкземпляр.

Пример:

1 2 3 4 5 6 7 8 9
var table = new AsciiTable('Title') table .setHeading('id', 'name') .addRow(1, 'Bob') .addRow(2, 'Steve') console.log(table.toJSON()) console.log(JSON.stringify(table))
1 2 3 4 5 6 7 8
{ title: 'Title' , heading: [ 'id', 'name' ] , rows: [ [ 1, 'Bob' ] , [ 2, 'Steve' ] ] }
1
{"title":"Title","heading":["id","name"],"rows":[[1,"Bob"],[2,"Steve"]]}

экземпляр.fromJSON(объект)

Заполните таблицу из объекта json, она должна соответствовать приведенному toJSONвыше выводу.

Псевдоним : [ parse]

Пример:

1 2 3 4 5 6 7 8
var table = new AsciiTable().fromJSON({ title: 'Title' , heading: [ 'id', 'name' ] , rows: [ [ 1, 'Bob' ] , [ 2, 'Steve' ] ] })

экземпляр.очистить()

Очистить/сбросить все данные таблицы

Псевдоним : [ reset]

экземпляр.clearRows()

Сбросить все данные строк, сохранить заголовок и заголовки.

Установить

С НПМ

1
npm install ascii-table

Авторы

Мэттью Оливейра Питер Даум

Лицензия

(Лицензия MIT)

Авторские права (c) 2013 г. Бо Соренсен

Настоящим бесплатно любому лицу, получившему копию данного программного обеспечения и связанных с ним файлов документации («Программное обеспечение»), предоставляется разрешение на работу с Программным обеспечением без ограничений, включая, помимо прочего, права на использование, копирование, изменение, объединение. публиковать, распространять, сублицензировать и/или продавать копии Программного обеспечения, а также разрешать лицам, которым предоставлено Программное обеспечение, делать это при соблюдении следующих условий:

Вышеупомянутое уведомление об авторских правах и настоящее уведомление о разрешении должны быть включены во все копии или существенные части Программного обеспечения.

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЯМИ КОММЕРЧЕСКОЙ ЦЕННОСТИ, ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ И НЕНАРУШЕНИЯ ПРАВ. АВТОРЫ ИЛИ ОБЛАДАТЕЛИ АВТОРСКИХ ПРАВ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ СОБЫТИЯ. ПРЕТЕНЗИИ, УБЫТКИ ИЛИ ДРУГАЯ ОТВЕТСТВЕННОСТЬ ПО ДЕЙСТВИЮ КОНТРАКТА, ПРАВОНАРУШЕНИЮ ИЛИ ДРУГИМ ОБРАЗОМ, ВОЗНИКАЮЩИЕ ИЗ, ИЗ ИЛИ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ ДЕЛАМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.