Impresionante módulo comunitario

Tabla Ascii

Estado de construcción Estado de dependencia de desarrollo Versión NPM

Salida de tabla sencilla para la depuración de nodos, pero probablemente podría hacer más con ella, ya que es solo una cadena.

Tabla de contenido

Uso

Nodo.js

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

Navegador

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

Nota : Si se utiliza en el navegador, se colocará debajowindow.AsciiTable

Ejemplo

Uso básico

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 | '----------------'

También podemos hacer una tabla sencilla sin título ni encabezados.

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

Tabla Ascii

Consulte: AsciiTable.factorypara obtener detalles sobre la creación de instancias

AsciiTable.factory([título], [opciones])

Creador de instancias de tabla

  • title- título de la tabla (opcional, predeterminado null)
  • options- opciones de mesa (opcional)
    • prefix- prefijo de cadena para agregar a cada línea en el render

Nota: Si se pasa un objeto en lugar detitle, elfromJSON método se utilizará para completar la tabla.

Ejemplo:

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(dirección, val, len, [pad])

Acceso directo a uno de los tres métodos siguientes

  • direction- dirección de alineación ( AsciiTable.LEFT, AsciiTable.CENTER, AsciiTable.RIGHT)
  • val- cuerda para alinear
  • len- longitud total de la cadena creada
  • pad- relleno/relleno de caracteres (opcional, predeterminado ' ')

Ejemplo:

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

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

  • val- cuerda para alinear
  • len- longitud total de la cadena creada
  • pad- relleno/relleno de caracteres (opcional, predeterminado ' ')

Ejemplo:

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

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

  • val- cuerda para alinear
  • len- longitud total de la cadena creada
  • pad- relleno/relleno de caracteres (opcional, predeterminado ' ')

Ejemplo:

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

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

  • val- cuerda para alinear
  • len- longitud total de la cadena creada
  • pad- relleno/relleno de caracteres (opcional, predeterminado ' ')

Ejemplo:

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

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

Intente realizar una alineación inteligente de lo proporcionado val, Stringla entrada se alineará a la izquierda y Numberlos tipos se alinearán a la derecha.

  • val- cuerda para alinear
  • len- longitud total de la cadena creada
  • pad- relleno/relleno de caracteres (opcional, predeterminado ' ')

Ejemplo:

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

AsciiTable.arrayFill(len, [val])

Cree una nueva matriz en la longitud dada, completa con el valor dado, utilizada principalmente internamente

  • len- longitud de la matriz
  • val- valor de relleno (opcional)

Ejemplo:

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

Instance Methods

instancia.setBorder([borde], [relleno], [arriba], [abajo])

Establezca los caracteres del borde para la representación; si no se pasan argumentos, se restablecerán los edgevalores predeterminados. Si se pasa un solo argumento, se usará para todos los bordes.

  • edge- bordes horizontales (opcional, predeterminado |)
  • fill-bordes verticales (opcional, predeterminado -)
  • top- esquinas superiores (opcional, por defecto .)
  • bottom- esquinas inferiores (opcional, por defecto ')

Ejemplo:

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 * ************************

instancia.removeBorder()

Ejemplo:

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

instancia.setAlign(idx, dirección)

  • idx-índice de columna para alinear
  • direction- dirección de alineación, ( AsciiTable.LEFT, AsciiTable.CENTER, AsciiTable.RIGHT)

Ejemplo:

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 | | '-------------------------------------'

instancia.setAlignLeft(idx)

Alias ​​deinstance.setAlign(idx, AsciiTable.LEFT)

instancia.setAlignCenter(idx)

Alias ​​deinstance.setAlign(idx, AsciiTable.CENTER)

instancia.setAlignRight(idx)

Alias ​​deinstance.setAlign(idx, AsciiTable.RIGHT)

instancia.setTitle(título)

  • title- título de la tabla

Ejemplo:

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

instancia.getTitle()

Obtener el título actual de la tabla.

Ejemplo:

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

instancia.setTitleAlign(dirección)

  • direction- dirección de alineación de la mesa

Ejemplo:

1

instancia.setTitleAlignLeft()

Alias ​​deinstance.setTitleAlign(AsciiTable.LEFT)

instancia.setTitleAlignCenter()

Alias ​​deinstance.setTitleAlign(AsciiTable.CENTER)

instancia.setTitleAlignRight()

Alias ​​deinstance.setTitleAlign(AsciiTable.RIGHT)

instancia.sort(iterador)

  • iterator- método de clasificación para ejecutar contra las filas

Ejemplo:

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 | '----------------'

instancia.sortColumn(índice, iterador)

Atajo de clasificación para apuntar a una columna específica

  • index- idx de columna para ordenar
  • iterator- método de clasificación para ejecutar contra valores de columna

Ejemplo:

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

instancia.setHeading(encabezado, [...])

Establece los encabezados de las columnas de la tabla, toma los argumentos de la misma manera queaddRow

  • heading- matriz de encabezados o argumentos

Ejemplo:

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

instancia.setHeadingAlign(dirección)

  • direction-

Ejemplo:

1

instancia.setHeadingAlignLeft()

Alias ​​deinstance.setHeadingAlignLeft(AsciiTable.LEFT)

instancia.setHeadingAlignCenter()

Alias ​​deinstance.setHeadingAlignLeft(AsciiTable.CENTER)

instancia.setHeadingAlignRight()

Alias ​​deinstance.setHeadingAlignLeft(AsciiTable.RIGHT)

instancia.addRow(fila, [...])

Se pueden agregar filas usando un único argumento de matriz o los argumentos si se usan varios argumentos al llamar al método.

  • row- matriz o argumentos de valores de columna

Ejemplo:

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 | '---------------'

instancia.addRowMatrix (filas)

addRowOperación masiva

  • rows- matriz multidimensional de filas

Ejemplo:

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

instancia.setJustify (habilitado)

Justifique que todas las columnas tengan el mismo ancho

  • enabled- booleano para activar o desactivar la justificación, undefinedse considera verdadero

Ejemplo:

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

instancia.toString()

Representar la instancia como una cadena para salida

Alias ​​: [ valueOf, render]

instancia.toJSON()

Devuelve la representación JSON de la tabla, esto también nos permite llamar JSON.stringifya la instancia.

Ejemplo:

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"]]}

instancia.fromJSON(obj)

Complete la tabla desde el objeto json, debe coincidir con el toJSONresultado anterior.

Alias ​​: [ parse]

Ejemplo:

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

instancia.clear()

Borrar/restablecer todos los datos de la tabla

Alias ​​: [ reset]

instancia.clearRows()

Restablece todos los datos de las filas, mantiene el título y los encabezados.

Instalar

con npm

1
npm install ascii-table

Colaboradores

Peter Daum

Licencia

(La licencia MIT)

Copyright (c) 2013 Beau Sorensen

Por el presente se otorga permiso, sin cargo, a cualquier persona que obtenga una copia de este software y los archivos de documentación asociados (el 'Software'), para operar con el Software sin restricciones, incluidos, entre otros, los derechos de uso, copia, modificación, fusión. , publicar, distribuir, sublicenciar y/o vender copias del Software, y permitir que las personas a quienes se les proporciona el Software lo hagan, sujeto a las siguientes condiciones:

El aviso de derechos de autor anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.

EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DE LOS DERECHOS DE AUTOR SERÁN RESPONSABLES DE NINGÚN TIPO RECLAMACIÓN, DAÑOS U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN CONTRACTUAL, AGRAVIO O DE OTRA MANERA, QUE SURJAN DE, FUERA DE O EN RELACIÓN CON EL SOFTWARE O EL USO U OTRAS NEGOCIOS EN EL SOFTWARE.