/node-table

Work with table like data.

Primary LanguageCoffeeScript

Alinex Table: Readme

GitHub watchers

GitHub stars GitHub forks

npm package latest version

Travis status Coveralls status Gemnasium status GitHub issues

This package contains methods for working with table like data. It collects all methods for working with such a data type:

  • read and write at various positions
  • convert from and to this data type
  • rearranging everything with flip, filter, sort and more
  • optimizing for display
  • and export/dump as table

As a new data type you may also use it's methods on an instance or statically.

It is one of the modules of the Alinex Namespace following the code standards defined in the General Docs.

Read the complete documentation under https://alinex.github.io/node-table.

Install

NPM Downloads

The easiest way is to let npm add the module directly to your modules (from within you node modules directory):

npm install alinex-table --save

And update it to the latest version later:

npm update alinex-table --save

Always have a look at the latest changes.

Usage

To use these methods include the package first:

Table = require 'alinex-table'

example = [
  ['ID', 'Name']
  [1, 'one']
  [2, 'two']
  [3, 'three']
]

Then this module gives you a lot of methods with which you may work and manipulate this table.

Class vs Static

You may use both. As an instance each method will return the instance itself if no need to return something else. So you may concatenate most calls.

You can call each method on an instance like:

table = new Table example
record = table.shift()

Or you may use them statically on your own data objects:

record = Table.shift example

The class oriented approach often is more readable if multiple manipulations on the data object are done, specially if you use command concatenation.

To initialize a new Table instance from an existing RecordList use:

table = (new Table()).fromRecordList records

See the supported data types to see how such structures may look like.

Additionally as an one way conversion you may dump into a visible table using the report package:

Report = require 'alinex-report'
report = new Report()
report.table example
console.log report.toString()

This will result in a markdown text displaying a table which can easily be converted to ascii art using toConsole() or an html table using toHtml().

Debugging

If you have any problems you may debug the code with the predefined flags. It uses the debug module to let you define what to debug.

Call it with the DEBUG environment variable set:

DEBUG=table <command>   # general information and checking schema

Additional value checking will be done if the debugging for table is enabled.

License

(C) Copyright 2016 Alexander Schilling

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.