Module communautaire génial

Tableau Ascii

État de la construction État de la dépendance dev Version NPM

Sortie de table facile pour le débogage de nœuds, mais vous pourriez probablement en faire plus, car il ne s'agit que d'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 : En cas d'utilisation 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ête.

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.factorypour plus de détails sur l'instanciation

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

Créateur d'instance de table

  • title-titre de la table (optionnel, par défaut null)
  • options -options de table (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, len, [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 de fourni val, l' Stringentrée sera alignée à gauche, les Numbertypes 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 longueur 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], [remplissage], [haut], [bas])

Définit 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)

Pseudonyme de instance.setAlign(idx, AsciiTable.LEFT)

instance.setAlignCenter(idx)

Pseudonyme de instance.setAlign(idx, AsciiTable.CENTER)

instance.setAlignRight(idx)

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

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

Pseudonyme de instance.setTitleAlign(AsciiTable.LEFT)

instance.setTitleAlignCenter()

Pseudonyme de instance.setTitleAlign(AsciiTable.CENTER)

instance.setTitleAlignRight()

Pseudonyme de 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 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éfinir les en-têtes de colonne pour la table, prend les arguments de la même manière que addRow

  • heading -heading tableau 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()

Pseudonyme de instance.setHeadingAlignLeft(AsciiTable.LEFT)

instance.setHeadingAlignCenter()

Pseudonyme de instance.setHeadingAlignLeft(AsciiTable.CENTER)

instance.setHeadingAlignRight()

Pseudonyme de instance.setHeadingAlignLeft(AsciiTable.RIGHT)

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

Des 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 5
table.addRowMatrix([ [2, 'John', 34] , [3, 'Jim', 83] ])

instance.setJustify(activé)

Justifier 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

Pseudo : [ valueOf, render]

instance.àJSON()

Renvoie la représentation JSON de la table, cela nous permet également d'appeler JSON.stringifyl'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)

Remplir la table à partir de l'objet json, doit correspondre à la toJSONsortie ci-dessus.

Pseudo : [ 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

Pseudo : [ 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 par les présentes 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, concéder en sous-licence et/ou vendre des copies du Logiciel, et permettre aux personnes auxquelles 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 NON LIMITÉ AUX GARANTIES DE QUALITÉ MARCHANDE, D'ADAPTATION À UN USAGE PARTICULIER ET D'ABSENCE DE CONTREFAÇON. DOMMAGES OU AUTRE RESPONSABILITÉ, QUE CE SOIT DANS UNE ACTION CONTRACTUELLE, DÉLICTUELLE OU AUTRE, DÉCOULANT DE, OU EN RELATION AVEC LE LOGICIEL OU L'UTILISATION OU D'AUTRES OPÉRATIONS DANS LE LOGICIEL.