Modulo community fantastico

Tavolo Ascii

Stato build Stato devDependency Versione NPM

Semplice output della tabella per il debug dei nodi, ma probabilmente potresti farne di più, dato che è solo una stringa.

Sommario

uso

Node.js

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

Browser

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

Nota : se utilizzato nel browser, verrà posizionato sotto window.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 un semplice tavolo senza titolo o titoli.

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.factory per i dettagli AsciiTable.factory

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

Creatore di istanze di tabella

  • title -table title (opzionale, null predefinito)
  • options -tabili opzioni (opzionale)
    • prefix -string prefisso da aggiungere a ciascuna riga del rendering

Nota: se un oggetto viene passato al posto del title , il metodo fromJSON 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 (direction, val, len, [pad])

Collegamento a uno dei tre seguenti metodi

  • direction - direction allineamento ( AsciiTable.LEFT , AsciiTable.CENTER , AsciiTable.RIGHT )
  • val -string per allineare
  • len -totale lunghezza della stringa creata
  • pad padding / fill char (opzionale, predefinito ' ' )

esempio:

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

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

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

esempio:

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

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

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

esempio:

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

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

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

esempio:

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

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

Tentativo di eseguire l'allineamento intelligente della val fornita, l'input della String verrà allineato a sinistra, i tipi di Number verranno allineati a destra.

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

esempio:

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

AsciiTable.arrayFill (len, [val])

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

  • len - Array di lunghezza
  • val -fill value (opzionale)

esempio:

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

Instance Methods

instance.setBorder ([edge], [fill], [top], [bottom])

Impostare i caratteri del bordo per il rendering, se non vengono passati argomenti verrà ripristinato ai valori predefiniti. Se viene passato un argomento a edge singolo, verrà utilizzato per tutti i bordi.

  • edge - bordi orizzontali (opzionale, predefinito | )
  • fill - Vertical Numero di modulo Edges (opzionale, default - )
  • top - angoli superiori (opzionale, default . )
  • angoli bottom (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 * ************************

instance.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 -column index da allineare
  • direction - direction 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 ​​a instance.setAlign(idx, AsciiTable.LEFT)

instance.setAlignCenter (idx)

Alias ​​a instance.setAlign(idx, AsciiTable.CENTER)

instance.setAlignRight (idx)

Alias ​​a instance.setAlign(idx, AsciiTable.RIGHT)

instance.setTitle (titolo)

  • title -table title

esempio:

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

instance.getTitle ()

Ottieni il titolo corrente della tabella

esempio:

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

instance.setTitleAlign (direzione)

  • direction direzione di allineamento

esempio:

1

instance.setTitleAlignLeft ()

Alias ​​a instance.setTitleAlign(AsciiTable.LEFT)

instance.setTitleAlignCenter ()

Alias ​​a instance.setTitleAlign(AsciiTable.CENTER)

instance.setTitleAlignRight ()

Alias ​​a instance.setTitleAlign(AsciiTable.RIGHT)

instance.sort (iteratore)

  • metodo di ordinamento iterator 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 | '----------------'

instance.sortColumn (indice, iteratore)

Collegamento di ordinamento per il targeting di una colonna specifica

  • index -column idx per ordinare
  • metodo di ordinamento iterator da eseguire su valori di colonna

esempio:

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

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

Impostare le intestazioni di colonna per la tabella, accetta gli argomenti nello stesso modo di addRow

  • heading - o voce argomenti Array

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 ​​a instance.setHeadingAlignLeft(AsciiTable.LEFT)

instance.setHeadingAlignCenter ()

Alias ​​a instance.setHeadingAlignLeft(AsciiTable.CENTER)

instance.setHeadingAlignRight ()

Alias ​​a instance.setHeadingAlignLeft(AsciiTable.RIGHT)

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

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

  • array di row o argomenti dei 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)

Operazione in addRow

  • rows - matrice multipla 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, undefined considerato vero

esempio:

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

instance.toString ()

Rendering dell'istanza come stringa per l'output

Alias : [ valueOf , render ]

instance.toJSON ()

Restituisce la rappresentazione JSON della tabella, questo ci consente anche di chiamare JSON.stringify .

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

instance.fromJSON (obj)

Popolare la tabella dall'oggetto json, deve corrispondere all'output toJSON 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' ] ] })

instance.clear ()

Cancella / ripristina tutti i dati della tabella

Alias : [ reset ]

instance.clearRows ()

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

installare

Con npm

1
npm install ascii-table

Hanno contribuito

Matthew Oliveira Peter Daum

licenza

(La licenza MIT)

Copyright (c) 2013 Beau Sorensen

L'autorizzazione è concessa, gratuitamente, a chiunque ottenga una copia di questo software e dei file di documentazione associati (il "Software"), per trattare il Software senza restrizioni, inclusi senza limitazione i diritti di utilizzo, copia, modifica, unione , pubblicare, distribuire, concedere in licenza e / o vendere copie del Software e consentire alle persone a cui il Software è fornito di farlo, fatte salve le seguenti condizioni:

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 È FORNITO "COSÌ COM'È", SENZA ALCUN TIPO DI GARANZIA, ESPLICITA O IMPLICITA, COMPRESO MA NON LIMITATO ALLE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UNO SCOPO PARTICOLARE E SENZA PREOCCUPAZIONE. RECLAMI, DANNI O ALTRE RESPONSABILITÀ, SE IN AZIONE DI CONTRATTO, TORT O ALTRO, DERIVANTE DA, FUORI O IN CONNESSIONE CON IL SOFTWARE O L'UTILIZZO O ALTRE OFFERTE NEL SOFTWARE.