Module communautaire génial

Tableau ASCII

Statut de construction Statut de dépendance dev 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

Noeud.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é souswindow.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

Tableau Ascii

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

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

Créateur d'instances de table

  • title- titre du tableau (facultatif, par défaut null)
  • options- options de tableau (facultatif)
    • prefix- préfixe de chaîne à ajouter à chaque ligne lors du rendu

Remarque : Si un objet est passé à la place dutitle, lafromJSON méthode 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, longueur, [pad])

Raccourci vers l'une des trois méthodes suivantes

  • direction- sens d'alignement ( AsciiTable.LEFT, AsciiTable.CENTER, AsciiTable.RIGHT)
  • val- chaîne à 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- chaîne à 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- chaîne à 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- chaîne à 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])

Essayez de faire un alignement intelligent des éléments fournis val, Stringl'entrée sera alignée à gauche, Numberles types seront alignés à droite.

  • val- chaîne à 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 lentille donnée, rempli avec la valeur donnée, principalement utilisé en interne

  • len- longueur du tableau
  • val- valeur de remplissage (facultatif)

Exemple:

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

Instance Methods

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

Définissez les caractères de bordure pour le rendu, si aucun argument n'est passé, il sera réinitialisé aux valeurs par défaut. Si un seul edgeargument est passé, il sera utilisé pour toutes les bordures.

  • edge- bords horizontaux (facultatif, par défaut |)
  • fill-bords verticaux (facultatif, par défaut -)
  • top- coins supérieurs (facultatif, par défaut .)
  • bottom- coins 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-index de colonne à aligner
  • direction- sens d'alignement, ( 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 ​​​​àinstance.setAlign(idx, AsciiTable.LEFT)

instance.setAlignCenter(idx)

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

instance.setAlignRight(idx)

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

instance.setTitle(titre)

  • title- titre du tableau

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- sens d'alignement de la table

Exemple:

1

instance.setTitleAlignLeft()

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

instance.setTitleAlignCenter()

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

instance.setTitleAlignRight()

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

instance.sort (itérateur)

  • iterator- méthode de tri à 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- colonne idx à trier
  • iterator- méthode de tri à exécuter sur les valeurs des colonnes

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 colonnes du tableau, prend les arguments de la même manière queaddRow

  • heading- tableau de titres 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 ​​​​à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.

  • row- tableau ou arguments de 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)

addRowOpération en vrac

  • rows- tableau multidimensionnel de lignes

Exemple:

1 2 3 4
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, undefinedconsidé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()

Renvoie la représentation JSON de la table, cela permet aussi de faire appel JSON.stringifyà 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, cela doit correspondre à la toJSONsortie 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éinitialise toutes les données de ligne, conserve le titre et les en-têtes.

Installer

Avec npm

1
npm install ascii-table

Contributeurs

Matthieu Oliveira Peter Daum

Licence

(La licence MIT)

Copyright (c) 2013 Beau Sorensen

L'autorisation est accordée par la présente, gratuitement, à toute personne obtenant une copie de ce logiciel et des fichiers de documentation associés (le « Logiciel »), d'utiliser le Logiciel sans restriction, y compris, sans limitation, les droits d'utilisation, de copie, de modification, de fusion. , publier, distribuer, accorder des sous-licences 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 LIMITATION LES GARANTIES DE QUALITÉ MARCHANDE, D'ADAPTATION À UN USAGE PARTICULIER ET DE NON-VIOLATION. EN AUCUN CAS LES AUTEURS OU LES TITULAIRES DES DROITS D'AUTEUR NE SERONT RESPONSABLES DE QUELQUE QUELQUE CAS RÉCLAMATION, DOMMAGES OU AUTRE RESPONSABILITÉ, QUE CE SOIT DANS UNE ACTION CONTRACTUELLE, DÉLIT OU AUTRE, DÉCOULANT DE, OU EN RELATION AVEC LE LOGICIEL OU L'UTILISATION OU D'AUTRES AFFAIRES DANS LE LOGICIEL.