Coder Social home page Coder Social logo

table's Issues

Newline not allowed in column data

Considering the following row array:

let rows = [
  [chalk.blue('foobar'), 'The quick brown fox'],
  [chalk.blue('barbaz'), 'Jumps over\nthe lazy dog'],
  [chalk.blue('lorem'), 'ipsum']
];

Calling table results in the following error: Error: Table data must not contain control characters.

Checked the readme and there's nothing about this error. Does this module restrict newlines (and other control characters) in column values, or am I missing something and am a big dummy?

cell span (colspan, table title) support

Just looking for this simple feature in gajus/table

screenshot 2016-04-09 18 03 19

Looking for somewhere in this library's output to put "Suman Test Results"

Does this lib support a table title?

error str.normalize() on android

Hi!
i'm run debug my app is ok but when build release then show red error:
TypeError: underfined is not a function (evaluating 'str.normalize()')
please help me.
thanks

header, where the header does not have columns

Right now, basic output might look like:

╔════╤════╤════╗
║ 0A │ 0B │ 0C ║
╟────┼────┼────╢
║ 1A │ 1B │ 1C ║
╟────┼────┼────╢
║ 2A │ 2B │ 2C ║
╚════╧════╧════╝

I am looking for something like this instead:

╔══════════════╗
║no columns here
╟────┼────┼────╢
║ 1A │ 1B │ 1C ║
╟────┼────┼────╢
║ 2A │ 2B │ 2C ║
╚════╧════╧════╝

where the header does not have columns, is this possible?

Wrap words

The auto-wrapping functionality should be able to wrap lines respecting word barriers.

In the current output, string is chunked into rows simply using length delimiter, e.g.

║ Message                                                ║
╟────────────────────────────────────────────────────────╢
║ Definition for rule 'jsdoc/check-returns-types' wa     ║
║ s not found                                            ║
╟────────────────────────────────────────────────────────╢
║ Definition for rule 'jsdoc/check-types' was not fo     ║
║ und                                                    ║
╟────────────────────────────────────────────────────────╢
║ Definition for rule 'jsdoc/require-param' was not      ║
║ found                                                  ║
╟────────────────────────────────────────────────────────╢
║ Definition for rule 'jsdoc/require-returns-descrip     ║
║ tion' was not found                                    ║
╟────────────────────────────────────────────────────────╢
║ Definition for rule 'jsdoc/require-returns-types'      ║
║ was not found                                          ║
╟────────────────────────────────────────────────────────╢
║ Variables within the same declaration block should     ║
║ be sorted alphabetically                               ║
╟────────────────────────────────────────────────────────╢
║ "lintFiles" is defined but never used                  ║
╟────────────────────────────────────────────────────────╢
║ Missing JSDoc @returns for function                    ║

It should use word (space) or special character barrier when possible, e.g.

║ Message                                                ║
╟────────────────────────────────────────────────────────╢
║ Definition for rule 'jsdoc/check-returns-types'        ║
║ was not found                                          ║
╟────────────────────────────────────────────────────────╢
║ Definition for rule 'jsdoc/check-types' was not        ║
║ found                                                  ║
╟────────────────────────────────────────────────────────╢
║ Definition for rule 'jsdoc/require-param' was not      ║
║ found                                                  ║
╟────────────────────────────────────────────────────────╢
║ Definition for rule                                    ║
║ 'jsdoc/require-returns-description' was not found      ║
╟────────────────────────────────────────────────────────╢
║ Definition for rule 'jsdoc/require-returns-types'      ║
║ was not found                                          ║
╟────────────────────────────────────────────────────────╢
║ Variables within the same declaration block should     ║
║ be sorted alphabetically                               ║
╟────────────────────────────────────────────────────────╢
║ "lintFiles" is defined but never used                  ║
╟────────────────────────────────────────────────────────╢
║ Missing JSDoc @returns for function                    ║

Cannot set property '0' of undefined

image

[ 'City' ] 0 0 'City'
[ '' ] 0 0 ''

node_modules/table/dist/mapDataUsingRowHeightIndex.js:53
        rowHeight[index2][index1] = part;
                                  ^

TypeError: Cannot set property '0' of undefined

Borderless Demo in Readme Possibly Erroneous

I copied and pasted the borderless demo from the README verbatim and it's printing empty lines between rows, which seems to run contrary to the expected output according to that section in the README. Here's my output:

→ node table-test.js

0A 0B 0C 

1A 1B 1C 

2A 2B 2C 

Does the README and the section on borderless tables need updating?

Tag older releases

It would be helpful for seeing the state of the code at specific versions if each of them were tagged here in the repo instead of just released on NPM.

To tag older versions with the proper timestamp you can use a script like the following on Windows:

tag-release.ps1:

param([string]$version = "")
$message=(git log -1 --pretty=%B | head -1)
$env:GIT_COMMITTER_DATE=(git show --format=%aD | head -1)
git tag -a "$version" -m "$message"

This is a slightly modified version of this answer which has a version for *NIX shells.

How can I wrap text by \n ?

How can I wrap text As shown below ###?

There is not much content in each line.

image

The following code will get a wrong result

stream.write([
  '🌹',
  ['Apple', 'Facebook', 'Homelink'].join('\n')
])

Here is my config for table
image

Cannot find module './border/'

I'm running Node v0.12.0 (my company requires this whole security process in order to upgrade anything, it's a big hassle). When I try to import this library via the require function, like so:

var table = require("table");

I get this result:

>> Error: Cannot find module './border/'

I would recommend either adding support for pre-ES6 versions of Node, or (more simply) add an engines entry to your package.json file that sets the required version of Node higher than v0.12.0.

How could I use newline characters?

I want to start a new line in a single cell, so I tried to add '\r\n' or '\n' at the end of the line. But it seems like it will be forbidden because of the regex test in validateData.js line 58: /[\x01-\x1A]/.test(cell). So is there any way to have a new line?

Streaming - columnSizeIndex.map is not a function

Hello, I have a problem with streaming. I used example code only difference is I changed import with require as const {createStream} = require("table");

  const columns = columnSizeIndex.map(size => {
                                  ^

TypeError: columnSizeIndex.map is not a function
    at drawBorder (C:\nodejs\node_modules\table\dist\drawBorder.js:20:35)
    at drawBorderTop (C:\nodejs\node_modules\table\dist\drawBorder.js:41:10)
    at create (C:\nodejs\node_modules\table\dist\createStream.js:85:43)
    at Object.write (C:\nodejs\node_modules\table\dist\createStream.js:151:16)
    at Timeout.setInterval [as _onTimeout] (C:\nodejs\index.js:70:12)
    at ontimeout (timers.js:466:11)
    at tryOnTimeout (timers.js:304:5)

Ability to progressively update a table

Hi :-)

I have a case in which it takes time to retrieve all the data I need to display in a tabular way.
I was thinking of rendering the table progressively, as the data fetching progresses.

Do you think this is possible?

emoji cause table column width corruption

Emojis in cell text cause column width corruption:

corrupted table

stringWidth for ie. 24.2⚠️ returns 6. I am not Unicode expert, but this is most likely related to ZWJ code points and issue in string-width dependency: sindresorhus/string-width#2. Since that issue is almost 2 years old, maybe a different module should be used or own approach implemented?

New release

When is it planned to release a new version?

In 4.0.1, there is still the dependency to ajv ^4.7.0, which leads to a critical dependency warning. The warning would be solved with ajv updated to version 5, which is already on master.

TypeScript Definition

Would you be willing to write a TypeScript definition file for this package and submit it to the Typings registry? I'm writing a package in TypeScript and it'd be great to use your stuff.

Add ability to make cells span columns and/or rows.

This feature already exists in https://github.com/jamestalmage/cli-table2 package.

Visually, it looks pretty cool:

┌───────┬─────┬────┐
│ hello │ sup │ hi │
├───────┤     │    │
│ howdy │     │    │
├───┬───┼──┬──┤    │
│ o │ k │  │  │    │
└───┴───┴──┴──┴────┘

In cli-table2 the syntax for that is:

var table;

table = new Table({
    style: {
        head: [],
        border: []
    }
});

table.push(
    [
        {
            content: 'hello',
            colSpan: 2
        },
        {
            rowSpan: 2,
            colSpan: 2,
            content: 'sup'
        },
        {
            rowSpan: 3,
            content: 'hi'
        }
    ],
    [
        {
            content: 'howdy',
            colSpan:2
        }
    ],
    [
        'o',
        'k',
        '',
        ''
    ]
);

wrapWord does not exists in ColumnConfig interface

Using this :

const data = [
    ['0A', '0B', '0C'],
    ['1A', '1B', '1C'],
    ['2A', '2B', '2C']
];
const config = {
    columns: {
      0: {
       wrapWord: true,
      }
    }
  };
console.log(table(data, config));

Will results with this error :

TSError: ⨯ Unable to compile TypeScript:
src/index.ts(594,27): error TS2345: Argument of type '{ columns: { 0: { wrapWord: boolean; }; }; }' is not assignable to parameter of type 'TableUserConfig'

Error in mapDataUsingRowHeightIndex.js when cell contains too many newline symbols

This code

const table = require('table');

const config = {
    columnDefault: {
        width: 5
    },
    columnCount: 3
};
const stream = table.createStream(config);

const lastCell = '\na\n2\n3';

stream.write([1, 2, 3]);
stream.write([1, 2, lastCell]);

fails with following error:

╔═══════╤═══════╤═══════╗
║ 1     │ 2     │ 3     ║
╚═══════╧═══════╧═══════╝/path_to_prj/node_modules/table/dist/mapDataUsingRowHeightIndex.js:49
        rowHeight[index2][index1] = part;
                                  ^

TypeError: Cannot set property '2' of undefined
at _lodash2.default.forEach (/path_to_prj/node_modules/table/dist/mapDataUsingRowHeightIndex.js:49:35)
...

Node v6.5.0.

Error raised when on cell is empty

Hi

The following error is raised by the method calculateCellHeight.js when one cell is empty:
Unhandled rejection Error: Column width must be greater than 0.

I think it should raise such error only when a whole column is empty
The minWidth configuration option should also be used to compute this width

Thanks

Pierre-André

New Table Template - Markdown

Great existing table templates, but one key item that's missing is the Markdown table.

| 0A | 0B | 0C |
|----|----|----|
| 1A | 1B | 1C |
| 2A | 2B | 2C |
| 2A | 2B | 2C |
| 2A | 2B | 2C |
| 2A | 2B | 2C |
| 2A | 2B | 2C |

Results in cool stuff on github, like so:

0A 0B 0C
1A 1B 1C
2A 2B 2C
2A 2B 2C
2A 2B 2C
2A 2B 2C
2A 2B 2C

Would be nice if we could give users a copy/paste friendly table for github!

https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#tables

TypeError: table is not a function

Hi,

I tried to use table with Gulp in our starter kit. I had to use require() to import it because I can't install babel

But when I try to use table with your exemple, it return me this error.

data = [
    ['0A', '0B', '0C'],
    ['1A', '1B', '1C'],
    ['2A', '2B', '2C']
];

options = {
    column: {
        0: {
            alignment: 'left',
            minWidth: 10
        },
        1: {
            alignment: 'center',
            minWidth: 10
        },
        2: {
            alignment: 'right',
            minWidth: 10
        }
    }
};

output = table(data, options);

Is there a way to use table without ES6?

Thanks for your help!

`@types/table` is on older version - write in TS maybe?

Right now I have these installed:

"table": "^5.0.2"
"@types/table": "^4.0.5"

and I see this:

screenshot from 2018-09-05 15-09-58

It really helps if libraries are written in TS...have external typings means the typings are never in sync, ultimately. Maybe I installed the wrong @types package?

Terminal Links dont work

I am trying to use https://github.com/sindresorhus/terminal-link

First I got the error

(node:6881) UnhandledPromiseRejectionWarning: Error: Table data must not contain control characters.
    at validateTableData (/Users/alisowski/Documents/perf-table/node_modules/table/dist/validateTableData.js:62:19)
    at table (/Users/alisowski/Documents/perf-table/node_modules/table/dist/table.js:95:34)
    at Object.<anonymous> (/Users/alisowski/Documents/perf-table/dist/index.js:221:36)
    at step (/Users/alisowski/Documents/perf-table/dist/index.js:43:23)
    at Object.next (/Users/alisowski/Documents/perf-table/dist/index.js:24:53)
    at fulfilled (/Users/alisowski/Documents/perf-table/dist/index.js:15:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)

After commenting out the code that threw the error It output

screen shot 2018-10-02 at 11 37 33 am

Do you think it will be possible to terminal links inside of the table?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.