Fantastico modulo comunitario

Tabella Ascii

Stato di costruzione Stato devDependency Versione NPM

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 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 anche creare una tabella semplice 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

Vedere: AsciiTable.factoryper i dettagli sulla creazione di un'istanza

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

creatore di istanze di tabella

  • title- titolo della tabella (facoltativo, 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])

Scorciatoia per 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- padding/fill char (opzionale, default ' ')

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- padding/fill char (opzionale, default ' ')

Esempio:

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

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

  • val- stringa da allineare
  • len- lunghezza totale della stringa creata
  • pad- padding/fill char (opzionale, default ' ')

Esempio:

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

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

  • val- stringa da allineare
  • len- lunghezza totale della stringa creata
  • pad- padding/fill char (opzionale, default ' ')

Esempio:

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

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

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

  • val- stringa da allineare
  • len- lunghezza totale della stringa creata
  • pad- padding/fill char (opzionale, default ' ')

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

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

Imposta i caratteri del bordo per il rendering, se non viene passato alcun argomento verrà ripristinato ai valori predefiniti.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 * ************************

esempio.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 di 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 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'

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 sulle 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 il targeting di una colonna specifica

  • index-column idx 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.setIntestazione(intestazione, [...])

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

  • heading-heading array 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

istanza.setHeadingAlignLeft()

Alias ​​ainstance.setHeadingAlignLeft(AsciiTable.LEFT)

istanza.setHeadingAlignCenter()

Alias ​​ainstance.setHeadingAlignLeft(AsciiTable.CENTER)

istanza.setHeadingAlignRight()

Alias ​​ainstance.setHeadingAlignLeft(AsciiTable.RIGHT)

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

Le righe possono essere aggiunte utilizzando un singolo argomento dell'array o gli argomenti se vengono utilizzati più argomenti quando si chiama il metodo.

  • row- matrice 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 di massa

  • rows- matrice multidimensionale di righe

Esempio:

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

istanza.setJustify(abilitato)

Giustificare 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()

Renderizza l'istanza come una stringa per l'output

Alias ​​: [ valueOf, render]

istanza.toJSON()

Restituendo la rappresentazione JSON della tabella, questo ci permette 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 daJSON(obj)

Popolare 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/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 Pietro Daum

Licenza

(La licenza del MIT)

Copyright (c) 2013 Beau Sorensen

A chiunque ottenga una copia di questo software e dei relativi file di documentazione (il "Software") viene concessa l'autorizzazione, a titolo gratuito, a trattare il Software senza restrizioni, inclusi, a titolo esemplificativo, i diritti di utilizzo, copia, modifica, unione , pubblicare, distribuire, concedere in sublicenza e/o vendere copie del Software e consentire alle persone alle quali il Software è fornito di farlo, alle seguenti condizioni:

Il suddetto avviso di copyright e questo avviso di autorizzazione devono essere inclusi in tutte le copie o parti sostanziali del Software.

IL SOFTWARE VIENE FORNITO "COSÌ COM'È", SENZA GARANZIE DI ALCUN TIPO, ESPRESSE O IMPLICITE, INCLUSE, A TITOLO ESEMPLIFICATIVO, LE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UNO SCOPO PARTICOLARE E NON VIOLAZIONE DI QUALSIASI RECLAMO, DANNO O ALTRA RESPONSABILITÀ, SIA IN UN'AZIONE DI CONTRATTO, ILLECITO O ALTRO, DERIVANTE DA, DA O IN CONNESSIONE CON IL SOFTWARE O L'UTILIZZO O ALTRI RAPPORTI NEL SOFTWARE.