Tabla Ascii
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
- Ejemplo
- API
- Métodos estáticos
- Métodos de instancia
- setBorder([borde], [relleno], [arriba], [abajo])
- eliminarBorde()
- setAlign(idx, dirección)
- establecerAlignLeft(idx)
- establecerAlignCenter(idx)
- establecerAlignRight(idx)
- establecerTítulo(título)
- obtener título()
- setTitleAlign(dirección)
- establecerTitleAlignLeft()
- establecerTitleAlignCenter()
- establecerTitleAlignRight()
- ordenar([iterador])
- ordenarColumna(idx, [iterador])
- establecerEncabezado(encabezado, [...])
- setHeadingAlign(dirección)
- setHeadingAlignLeft()
- setHeadingAlignCenter()
- establecerHeadingAlignRight()
- agregarFila(fila, [...])
- agregarRowMatrix(filas)
- setJustify([habilitado])
- Encadenar()
- a JSON()
- desdeJSON(obj)
- claro()
- borrar filas()
- Instalar
- Colaboradores
- Licencia
Uso
Nodo.js
1var 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
8var 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
10var 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.factory
para 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, predeterminadonull
)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
10var 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 alinearlen
- longitud total de la cadena creadapad
- relleno/relleno de caracteres (opcional, predeterminado' '
)
Ejemplo:
1table.align(AsciiTable.LEFT, 'hey', 7) // 'hey '
AsciiTable.alignLeft(val, len, [pad])
val
- cuerda para alinearlen
- longitud total de la cadena creadapad
- relleno/relleno de caracteres (opcional, predeterminado' '
)
Ejemplo:
1table.alignLeft('hey', 7, '-') // 'hey----'
AsciiTable.alignCenter(val, len, [pad])
val
- cuerda para alinearlen
- longitud total de la cadena creadapad
- relleno/relleno de caracteres (opcional, predeterminado' '
)
Ejemplo:
1table.alignCenter('hey', 7) // ' hey '
AsciiTable.alignRight(val, len, [pad])
val
- cuerda para alinearlen
- longitud total de la cadena creadapad
- relleno/relleno de caracteres (opcional, predeterminado' '
)
Ejemplo:
1table.alignRight('hey', 7) // ' hey'
AsciiTable.alignAuto(val, len, [pad])
Intente realizar una alineación inteligente de lo proporcionado val
, String
la entrada se alineará a la izquierda y Number
los tipos se alinearán a la derecha.
val
- cuerda para alinearlen
- longitud total de la cadena creadapad
- relleno/relleno de caracteres (opcional, predeterminado' '
)
Ejemplo:
1table.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 matrizval
- valor de relleno (opcional)
Ejemplo:
1AsciiTable.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 edge
valores 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
7var 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
3table.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 alineardirection
- dirección de alineación, (AsciiTable.LEFT
,AsciiTable.CENTER
,AsciiTable.RIGHT
)
Ejemplo:
1
2
3
4
5table
.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
3var table = new AsciiTable('Old Title')
table.setTitle('New Title')
instancia.getTitle()
Obtener el título actual de la tabla.
Ejemplo:
1table.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
4table.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 ordenariterator
- 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
5table.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
7var 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)
addRow
Operación masiva
rows
- matriz multidimensional de filas
Ejemplo:
1
2
3
4table.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,undefined
se considera verdadero
Ejemplo:
1
2
3
4
5table
.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.stringify
a la instancia.
Ejemplo:
1
2
3
4
5
6
7
8
9var 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 toJSON
resultado anterior.
Alias : [ parse
]
Ejemplo:
1
2
3
4
5
6
7
8var 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
1npm install ascii-table
Colaboradores
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.