Fantastico modulo comunitario

Tabella Ascii

Stato della costruzione Stato della dipendenza dev Versione NMP

Facile output della tabella per il debug del nodo, ma probabilmente potresti fare di più con esso, poiché è solo una stringa.

Sommario

Utilizzo

Node.js

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

Navigatore

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

Nota : se si utilizza nel browser, verrà posizionato inwindow.AsciiTable

Esempio

Utilizzo di base

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

Possiamo creare una semplice tabella anche senza titolo o intestazioni.

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

AsciiTable

Vedi: AsciiTable.factoryper i dettagli sull'istanziazione

AsciiTable.factory([titolo], [opzioni])

Creatore di istanze di tabella

  • title- titolo della tabella (facoltativo, predefinito null)
  • options- opzioni tavolo (opzionale)
    • prefix- prefisso della stringa da aggiungere a ciascuna riga durante il rendering

Nota: se viene passato un oggetto al posto dititle, ilfromJSON metodo verrà utilizzato per popolare la tabella.

Esempio:

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

Collegamento a uno dei tre metodi seguenti

  • direction- direzione di allineamento ( AsciiTable.LEFT, AsciiTable.CENTER, AsciiTable.RIGHT)
  • val- stringa per allineare
  • len- lunghezza totale della stringa creata
  • pad- riempimento/carattere di riempimento (opzionale, predefinito ' ')

Esempio:

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

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

  • val- stringa per allineare
  • len- lunghezza totale della stringa creata
  • pad- riempimento/carattere di riempimento (opzionale, predefinito ' ')

Esempio:

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

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

  • val- stringa per allineare
  • len- lunghezza totale della stringa creata
  • pad- riempimento/carattere di riempimento (opzionale, predefinito ' ')

Esempio:

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

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

  • val- stringa per allineare
  • len- lunghezza totale della stringa creata
  • pad- riempimento/carattere di riempimento (opzionale, predefinito ' ')

Esempio:

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

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

Tentativo di eseguire un allineamento intelligente dei dati forniti val, Stringl'input verrà allineato a sinistra, Numberi tipi saranno allineati a destra.

  • val- stringa per allineare
  • len- lunghezza totale della stringa creata
  • pad- riempimento/carattere di riempimento (opzionale, predefinito ' ')

Esempio:

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

AsciiTable.arrayFill(len, [val])

Crea un nuovo array alla len data, riempito con il valore dato, utilizzato principalmente internamente

  • len- lunghezza dell'array
  • val- valore di riempimento (facoltativo)

Esempio:

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

Instance Methods

istanza.setBorder([bordo], [riempimento], [superiore], [inferiore])

Imposta i caratteri del bordo per il rendering, se non viene passato alcun argomento verrà ripristinato il valore predefinito. Se edgeviene passato un singolo argomento, verrà utilizzato per tutti i bordi.

  • edge- bordi orizzontali (opzionale, predefinito |)
  • fill-bordi verticali (opzionale, predefinito -)
  • top- angoli superiori (opzionale, predefinito .)
  • bottom- angoli inferiori (opzionale, predefinito ')

Esempio:

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

istanza.removeBorder()

Esempio:

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

istanza.setAlign(idx, direzione)

  • idx-indice della colonna da allineare
  • direction- direzione di allineamento, ( AsciiTable.LEFT, AsciiTable.CENTER, AsciiTable.RIGHT)

Esempio:

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

istanza.setAlignLeft(idx)

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

istanza.setAlignCenter(idx)

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

istanza.setAlignRight(idx)

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

istanza.setTitolo(titolo)

  • title- titolo della tabella

Esempio:

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

istanza.getTitolo()

Ottieni il titolo corrente della tabella

Esempio:

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

istanza.setTitleAlign(direzione)

  • direction- direzione di allineamento della tavola

Esempio:

1

istanza.setTitleAlignLeft()

Alias ​​ainstance.setTitleAlign(AsciiTable.LEFT)

istanza.setTitleAlignCenter()

Alias ​​ainstance.setTitleAlign(AsciiTable.CENTER)

istanza.setTitleAlignRight()

Alias ​​ainstance.setTitleAlign(AsciiTable.RIGHT)

istanza.sort(iteratore)

  • iterator- metodo di ordinamento da eseguire rispetto alle righe

Esempio:

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

istanza.sortColumn(indice, iteratore)

Scorciatoia per l'ordinamento per scegliere come target una colonna specifica

  • index- idx della colonna da ordinare
  • iterator- metodo di ordinamento da eseguire rispetto ai valori delle colonne

Esempio:

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

istanza.setHeading(intestazione, [...])

Imposta le intestazioni delle colonne per la tabella, accetta gli argomenti allo stesso modo diaddRow

  • heading- array di intestazioni o argomenti

Esempio:

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

istanza.setHeadingAlign(direzione)

  • direction-

Esempio:

1

istanza.setHeadingAlignLeft()

Alias ​​ainstance.setHeadingAlignLeft(AsciiTable.LEFT)

istanza.setHeadingAlignCenter()

Alias ​​ainstance.setHeadingAlignLeft(AsciiTable.CENTER)

istanza.setHeadingAlignRight()

Alias ​​ainstance.setHeadingAlignLeft(AsciiTable.RIGHT)

istanza.addRiga(riga, [...])

È possibile aggiungere righe utilizzando un singolo argomento di matrice o gli argomenti se vengono utilizzati più argomenti quando si chiama il metodo.

  • row- array o argomenti di valori di colonna

Esempio:

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

istanza.addRowMatrix(righe)

addRowOperazione in blocco

  • rows- Matrice multidimensionale di righe

Esempio:

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

istanza.setJustify(abilitato)

Giustifica tutte le colonne in modo che abbiano la stessa larghezza

  • enabled- booleano per attivare o disattivare la giustificazione, undefinedconsiderato vero

Esempio:

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

istanza.toString()

Rendere l'istanza come una stringa per l'output

Alias : [ valueOf, render]

istanza.toJSON()

Restituisce la rappresentazione JSON della tabella, questo ci permette anche di richiamare JSON.stringifyl'istanza.

Esempio:

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

istanza.fromJSON(oggetto)

Compila la tabella dall'oggetto json, dovrebbe corrispondere all'output toJSONsopra.

Alias : [ parse]

Esempio:

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

istanza.clear()

Cancella/reimposta tutti i dati della tabella

Alias : [ reset]

istanza.clearRows()

Reimposta tutti i dati delle righe, mantiene il titolo e le intestazioni.

Installare

Con npm

1
npm install ascii-table

Contributori

Matthew OliveiraPeter Daum

Licenza

(La licenza MIT)

Copyright (c) 2013 Beau Sorensen

Con la presente viene concesso il permesso, a titolo gratuito, a chiunque ottenga una copia di questo software e dei file di documentazione associati (il "Software"), di trattare il Software senza restrizioni, inclusi, senza limitazione, i diritti di utilizzare, copiare, modificare, unire , pubblicare, distribuire, concedere in sublicenza e/o vendere copie del Software e consentire alle persone a cui viene fornito il Software di farlo, alle seguenti condizioni:

L'avviso sul copyright di cui sopra e il presente avviso di autorizzazione saranno inclusi in tutte le copie o parti sostanziali del Software.

IL SOFTWARE VIENE FORNITO "COSÌ COME È", SENZA GARANZIA DI ALCUN TIPO, ESPLICITA O IMPLICITA, INCLUSE MA NON LIMITATE ALLE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UNO SCOPO PARTICOLARE E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I DETENTORI DEL COPYRIGHT SARANNO RESPONSABILI DI EVENTUALE RECLAMI, DANNI O ALTRA RESPONSABILITÀ, SIA IN UN'AZIONE CONTRATTUALE, ILLECITO O ALTRIMENTI, DERIVANTI DA, DA O IN CONNESSIONE CON IL SOFTWARE O L'USO O ALTRI RAPPORTI DEL SOFTWARE.