Module communautaire génial

Table Ascii

Statut de la construction DevDependency Status Version NPM

Sortie de table facile pour le débogage de nœuds, mais vous pourriez probablement en faire plus, car ce n'est qu'une chaîne.

Table des matières

Utilisation

Node.js

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

Navigateur

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

Remarque : Si vous utilisez dans le navigateur, il sera placé sous la window.AsciiTable

Exemple

Utilisation basique

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

Nous pouvons également créer un tableau simple sans titre ni titre.

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

Voir: AsciiTable.factory pour plus de détails sur l'instanciation

AsciiTable.factory ([titre], [options])

Créateur d'instance de table

  • title -table title (facultatif, valeur par défaut null )
  • options -table options (facultatif)
    • prefix -string prefix à ajouter à chaque ligne lors du rendu

Remarque: Si un objet est transmis à la place du title , la méthode fromJSON sera utilisée pour remplir le tableau.

Exemple:

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])

Raccourci vers l'une des trois méthodes suivantes

  • direction -alignment direction ( AsciiTable.LEFT , AsciiTable.CENTER , AsciiTable.RIGHT )
  • val -string pour aligner
  • len - longueur totale de la chaîne créée
  • pad -padding / fill char (facultatif, par défaut ' ' )

Exemple:

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

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

  • val -string pour aligner
  • len - longueur totale de la chaîne créée
  • pad -padding / fill char (facultatif, par défaut ' ' )

Exemple:

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

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

  • val -string pour aligner
  • len - longueur totale de la chaîne créée
  • pad -padding / fill char (facultatif, par défaut ' ' )

Exemple:

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

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

  • val -string pour aligner
  • len - longueur totale de la chaîne créée
  • pad -padding / fill char (facultatif, par défaut ' ' )

Exemple:

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

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

Alignement intelligent de faire tentative fourni val , String INPUT par SEREZ aligné à gauche, Number types de SEREZ aligné à droite.

  • val -string pour aligner
  • len - longueur totale de la chaîne créée
  • pad -padding / fill char (facultatif, par défaut ' ' )

Exemple:

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

AsciiTable.arrayFill (len, [val])

Créer un nouveau tableau à la longueur donnée, rempli avec la valeur donnée, principalement utilisé en interne

  • len -longueur du tableau
  • val -fill value (facultatif)

Exemple:

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

Instance Methods

instance.setBorder ([bord], [remplissage], [haut], [bas])

Définissez les caractères de bordure pour le rendu, si aucun argument n'est transmis, les paramètres par défaut seront réinitialisés. Si un seul argument d' edge est passé, il sera utilisé pour toutes les bordures.

  • edge - bords horizontaux (facultatif, par défaut | )
  • fill - vertical Nombre de forme Edges ( en option, par défaut - )
  • top - Top Corners ( en option, par défaut . )
  • coins bottom inférieurs (facultatif, par défaut ' )

Exemple:

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

Exemple:

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, direction)

  • idx -column index pour aligner
  • direction -alignment direction, ( AsciiTable.LEFT , AsciiTable.CENTER , AsciiTable.RIGHT )

Exemple:

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 ​​de instance.setAlign(idx, AsciiTable.LEFT)

instance.setAlignCenter (idx)

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

instance.setAlignRight (idx)

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

instance.setTitle (title)

  • title - titre de la table

Exemple:

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

instance.getTitle ()

Obtenez le titre actuel du tableau

Exemple:

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

instance.setTitleAlign (direction)

  • direction - direction d'alignement de la table

Exemple:

1

instance.setTitleAlignLeft ()

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

instance.setTitleAlignCenter ()

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

instance.setTitleAlignRight ()

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

instance.sort (itérateur)

  • méthode de tri par iterator pour exécuter sur les lignes

Exemple:

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 (index, itérateur)

Raccourci de tri pour cibler une colonne spécifique

  • index -column idx à trier
  • méthode de tri par iterator pour exécuter des valeurs de colonne

Exemple:

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

instance.setHeading (en-tête, [...])

Définissez les en-têtes de colonne pour la table, prend les arguments de la même manière que addRow

  • heading tableau ou d'arguments

Exemple:

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

instance.setHeadingAlign (direction)

  • direction

Exemple:

1

instance.setHeadingAlignLeft ()

Alias ​​de instance.setHeadingAlignLeft(AsciiTable.LEFT)

instance.setHeadingAlignCenter ()

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

instance.setHeadingAlignRight ()

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

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

Les lignes peuvent être ajoutées à l'aide d'un seul argument de tableau ou des arguments si plusieurs arguments sont utilisés lors de l'appel de la méthode.

  • tableau de row ou arguments des valeurs de colonne

Exemple:

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

Opération addRow vrac

  • rows tableau multidimensionnel de rangées

Exemple:

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

instance.setJustify (activé)

Justifiez que toutes les colonnes ont la même largeur

  • enabled -booléen pour activer ou désactiver la justification, undefined considéré comme vrai

Exemple:

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

instance.toString ()

Rendre l'instance sous forme de chaîne pour la sortie

Alias : [ valueOf , render ]

instance.toJSON ()

Retourne la représentation JSON de la table, cela nous permet également d'appeler JSON.stringify sur l'instance.

Exemple:

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)

Remplissez la table à partir de l'objet json, doit correspondre à la sortie toJSON ci-dessus.

Alias : [ parse ]

Exemple:

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

Effacer / réinitialiser toutes les données du tableau

Alias : [ reset ]

instance.clearRows ()

Réinitialisez toutes les données de ligne, conserve le titre et les titres.

Installer

Avec npm

1
npm install ascii-table

Contributeurs

Matthew Oliveira Peter Daum

Licence

(La licence MIT)

Copyright (c) 2013 Beau Sorensen

La permission est accordée, sans frais, à toute personne obtenant une copie de ce logiciel et des fichiers de documentation associés (le «Logiciel»), de traiter le Logiciel sans restriction, y compris, sans limitation, les droits d'utilisation, de copie, de modification, de fusion , publier, distribuer, sous-licencier et / ou vendre des copies du Logiciel, et autoriser les personnes à qui le Logiciel est fourni à le faire, sous réserve des conditions suivantes:

L'avis de droit d'auteur ci-dessus et cet avis d'autorisation doivent être inclus dans toutes les copies ou parties substantielles du logiciel.

LE LOGICIEL EST FOURNI «TEL QUEL», SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU IMPLICITE, Y COMPRIS MAIS SANS S'Y LIMITER LES GARANTIES DE QUALITÉ MARCHANDE, D'ADÉQUATION À UN USAGE PARTICULIER ET D'ABSENCE DE CONTREFAÇON. EN AUCUN CAS LES AUTEURS OU LES TITULAIRES DU DROIT D'AUTEUR NE SONT RESPONSABLES. RÉCLAMATION, DOMMAGES OU AUTRES RESPONSABILITÉS, QUE CE SOIT DANS UNE ACTION CONTRACTUELLE, DÉLICATOIRE OU AUTRE, DÉCOULANT DE, EN PROVENANCE OU EN LIEN AVEC LE LOGICIEL OU L'UTILISATION OU D'AUTRES OPÉRATIONS DU LOGICIEL.