Module communautaire génial

Table Ascii

État de la construction Statut devDependency Version NPM

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

Table des matières

Usage

Node.js

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

Navigateur

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

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

Exemple

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

Nous pouvons également créer un tableau simple sans titre ni en-têtes.

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, null par défaut)
  • options -table options (facultatif)
    • prefix -string prefix à ajouter à chaque ligne lors du rendu

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

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 -alignement direction ( AsciiTable.LEFT , AsciiTable.CENTER , AsciiTable.RIGHT )
  • val -string à aligner
  • len -longueur totale de la chaîne créée
  • pad -padding / fill char (optionnel, par défaut ' ' )

Exemple:

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

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

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

Exemple:

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

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

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

Exemple:

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

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

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

Exemple:

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

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

Essayez de faire un alignement intelligent fourni val , String entrée sera aligné à gauche, Number types seront alignés à droite.

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

Exemple:

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

AsciiTable.arrayFill (len, [val])

Créer un nouveau tableau au len donné, rempli de 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 passé, les valeurs par défaut seront réinitialisées. Si un argument d' edge unique est passé, il sera utilisé pour toutes les bordures.

  • edge -bords horizontaux (facultatif, par défaut | )
  • fill formulaire fill - Nombre vertical de bords (facultatif, par défaut - )
  • top coins -Top (facultatif, par défaut . )
  • bottom coins -bottom (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 à aligner
  • direction -alignement 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 (titre)

  • title - titre de la table

Exemple:

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

instance.getTitle ()

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

  • iterator -sorting méthode à 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 pour trier
  • iterator -sorting méthode à exécuter sur les 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 (titre, [...])

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

  • heading tableau -heading ou 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 ​​de instance.setHeadingAlignLeft(AsciiTable.CENTER)

instance.setHeadingAlignRight ()

Alias ​​de 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.

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

  • rows tableau multi-dimensionnel de lignes

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

Renvoyer 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 en-têtes.

Installer

Avec npm

1
npm install ascii-table

Contributeurs

Matthew Oliveira Peter Daum

Licence

(La licence MIT)

Copyright (c) 2013 Beau Sorensen

L'autorisation est par la présente accordée, gratuitement, à 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 permettre aux personnes à qui le Logiciel est fourni de 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. RÉCLAMATION, DOMMAGES OU AUTRE RESPONSABILITÉ, QUE CE SOIT DANS UNE ACTION DE CONTRAT, DE TORT OU D'AUTREMENT, RÉSULTANT DE, HORS OU EN LIEN AVEC LE LOGICIEL OU L'UTILISATION OU D'AUTRES ACTIONS DANS LE LOGICIEL.