https://github.com/vweevers/map-tabular-keys
Transform the keys of a tabular object stream
https://github.com/vweevers/map-tabular-keys
Last synced: about 1 year ago
JSON representation
Transform the keys of a tabular object stream
- Host: GitHub
- URL: https://github.com/vweevers/map-tabular-keys
- Owner: vweevers
- License: mit
- Created: 2015-05-30T12:36:27.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2015-05-30T15:39:15.000Z (about 11 years ago)
- Last Synced: 2025-03-28T21:39:06.557Z (about 1 year ago)
- Language: JavaScript
- Size: 113 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# map-tabular-keys
**Transform the keys of a tabular object stream with a map function. Because the data is assumed to be tabular, only the keys of the first row are mapped. The resulting keys are then used for all rows.**
[](https://www.npmjs.org/package/map-tabular-keys) [](http://travis-ci.org/vweevers/map-tabular-keys) [](https://ci.appveyor.com/project/vweevers/map-tabular-keys) [](https://david-dm.org/vweevers/map-tabular-keys)
## example
```js
var map = require('map-tabular-keys')
, snake = require('snake-case')
, from = require('from2-array')
, concat = require('concat-stream')
from.obj([
{ 'column a': 3, columnB: 0.2 },
{ 'column a': 4, columnB: 0.3, ignored: true }
])
.pipe( map(snake) )
.pipe( concat(console.log.bind(console)) )
```
The output would be:
```js
[
{ column_a: 3, column_b: 0.2 },
{ column_a: 4, column_b: 0.3 }
]
```
## api
### `map([options], mapFunction)`
`mapFunction` receives a single argument, for every key of the first row. If it returns an empty string or anything other than a string, the key is ignored (i.e., not included in the emitted objects).
```js
map(function(key) {
if (key === 'useless') return false
return key.toUpperCase()
})
```
Options:
- `defaultValue: mixed` (default is `0`): fallback to use for `null` and `undefined` values
- `bare: boolean` (default is `false`): whether to emit bare objects (created with `Object.create(null)`) or plain objects
## install
With [npm](https://npmjs.org) do:
```
npm install map-tabular-keys
```
## license
[MIT](http://opensource.org/licenses/MIT) © [Vincent Weevers](http://vincentweevers.nl)