Fantastico modulo della community

Tavola Asci

Stato di costruzione Stato di dipendenza versione npm

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

Sommario

Utilizzo

Node.js

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

Browser

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

Nota : se si utilizza nel browser, verrà posizionato sottowindow.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

Tavola Asci

Vedere: AsciiTable.factoryper i dettagli sull'istanza

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

Creatore di istanze di tabelle

  • title- titolo della tabella (opzionale, predefinito null)
  • options- opzioni tabella (opzionale)
    • prefix- prefisso di 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 da allineare
  • len- lunghezza totale della stringa creata
  • pad- riempimento / riempimento char (opzionale, predefinito ' ')

Esempio:

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

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

  • val- stringa da allineare
  • len- lunghezza totale della stringa creata
  • pad- riempimento / riempimento char (opzionale, predefinito ' ')

Esempio:

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

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

  • val- stringa da allineare
  • len- lunghezza totale della stringa creata
  • pad- riempimento / riempimento char (opzionale, predefinito ' ')

Esempio:

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

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

  • val- stringa da allineare
  • len- lunghezza totale della stringa creata
  • pad- riempimento / riempimento char (opzionale, predefinito ' ')

Esempio:

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

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

Tentativo di eseguire l'allineamento intelligente di fornito val, Stringl'input sarà allineato a sinistra, Numberi tipi saranno allineati a destra.

  • val- stringa da allineare
  • len- lunghezza totale della stringa creata
  • pad- riempimento / riempimento char (opzionale, predefinito ' ')

Esempio:

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

AsciiTable.arrayFill(len, [val])

Crea un nuovo array in corrispondenza del dato len, riempito con il valore dato, utilizzato principalmente internamente

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

Esempio:

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

Instance Methods

instance.setBorder([bordo], [riempimento], [alto], [basso])

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

  • edge- bordi orizzontali (opzionale, di default |)
  • fill- bordi verticali (opzionale, di default -)
  • 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

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

instance.setAlignLeft(idx)

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

instance.setAlignCenter(idx)

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

instance.setAlignRight(idx)

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

instance.setTitle(titolo)

  • title- titolo della tabella

Esempio:

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

istanza.getTitle()

Ottieni il titolo corrente della tabella

Esempio:

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

instance.setTitleAlign(direzione)

  • direction- direzione di allineamento della tavola

Esempio:

1

instance.setTitleAlignLeft()

Alias ​​ainstance.setTitleAlign(AsciiTable.LEFT)

instance.setTitleAlignCenter()

Alias ​​ainstance.setTitleAlign(AsciiTable.CENTER)

instance.setTitleAlignRight()

Alias ​​ainstance.setTitleAlign(AsciiTable.RIGHT)

instance.sort(iteratore)

  • iterator- metodo di ordinamento per eseguire contro le 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 | '----------------'

instance.sortColumn(indice, iteratore)

Scorciatoia di ordinamento per il targeting di una colonna specifica

  • index-colonna idx da ordinare
  • iterator- metodo di ordinamento per l'esecuzione 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 })

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

Imposta le intestazioni di colonna per la tabella, accetta gli argomenti allo stesso modo diaddRow

  • heading- array di intestazione o argomenti

Esempio:

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

instance.setHeadingAlign(direzione)

  • direction-

Esempio:

1

instance.setHeadingAlignLeft()

Alias ​​ainstance.setHeadingAlignLeft(AsciiTable.LEFT)

instance.setHeadingAlignCenter()

Alias ​​ainstance.setHeadingAlignLeft(AsciiTable.CENTER)

instance.setHeadingAlignRight()

Alias ​​ainstance.setHeadingAlignLeft(AsciiTable.RIGHT)

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

Le righe possono essere aggiunte 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 | '---------------'

instance.addRowMatrix(righe)

addRowoperazione in blocco

  • rows- array multidimensionale di righe

Esempio:

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

instance.setJustify(abilitato)

Giustifica che tutte le colonne 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()

Visualizza l'istanza come una stringa per l'output

Alias : [ valueOf, render]

istanza.toJSON()

Restituisce la rappresentazione JSON della tabella, questo ci consente anche di chiamare 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(obj)

Popola la tabella dall'oggetto json, dovrebbe corrispondere toJSONall'output sopra.

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 / ripristina tutti i dati della tabella

Alias : [ reset]

istanza.clearRows()

Reimposta tutti i dati di riga, mantiene il titolo e le intestazioni.

Installare

Con npm

1
npm install ascii-table

Contributori

Matteo Oliveira Peter Daum

Licenza

(La licenza del MIT)

Copyright (c) 2013 Beau Sorensen

Con la presente si concede, gratuitamente, il permesso 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 condizioni seguenti:

L'avviso di copyright di cui sopra e questo avviso di autorizzazione devono essere inclusi in tutte le copie o parti sostanziali del Software.

IL SOFTWARE VIENE FORNITO "COSÌ COM'È", SENZA ALCUN TIPO DI GARANZIA, ESPRESSA O IMPLICITA, INCLUSE A TITOLO ESEMPLIFICATIVO LE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UNO SCOPO PARTICOLARE E NON VIOLAZIONE IN NESSUN CASO GLI AUTORI O I TITOLARI DEL COPYRIGHT SARANNO RESPONSABILI PER ALCUN TITOLO RECLAMI, DANNI O ALTRA RESPONSABILITÀ, SIA IN UN'AZIONE CONTRATTUALE, ILLECITO O ALTRO, DERIVANTI DA, DERIVANTI DA O IN COLLEGAMENTO CON IL SOFTWARE O L'UTILIZZO O ALTRE CONTRATTI NEL SOFTWARE.