hosejs

    1.3.0 • Public • Published

    HoseJS CircleCI

    npm

    🎉 Data handling with ramda.js (version 1.3 or higher)

    hosejs

    100% code coverage.

    You can transform JSON(or NOT) data with just JavaScript in terminal.

    jq? javascript is clearly better option for people already use javascript.

    Feature

    Data handling with ramda.js (version 1.3 or higher)

    You can use ramda.js

    eg. http https://swapi.co/api/people/1/ | j -r "props(['name', 'height'])"
    eg. http https://swapi.co/api/people/1/ | j -ramda "props(['name', 'height'])"
    eg. http https://swapi.co/api/people/1/ | j "props(['name', 'height'])(_)"

    Options

    • --file option provide you to apply pre-defined script first
    • --tab if result is Object, print JSON format with specified tab size (default: 2)

    Install

    npm -g install hosejs
    

    Command

    j or js

    Usage

    _ is everything you need to know

    $ cat some.json | j '_.map(x => x.timestamp)'
    $ cat some.json | j '_.map(x => x.timestamp)' --tab 4
    $ cat some.json | j '_.map(x => x.timestamp)' --file pre.js --tab 2
    $ cat some.json | j '_.map(x => x.timestamp)' > some.json
    $ cat some.json | j '[_].map(x => x.some_property + '👍')[0]'
    $ cat some.json | j '_.map(x => new Date(x.timestamp).toISOString())'
    $ cat some.json | j --file preload.js '_.map(x => x.timestamp)'
    $ http https://swapi.co/api/people/ | j 'Object.keys(_)'
    $ http https://swapi.co/api/people/ | j '_.count'
    $ http https://swapi.co/api/people/ | j '_.results.map(x => x.name)'
    echo 'not json string \n !!' | j '_.split("\n")'
    $ http https://swapi.co/api/people/1/ | j -r "props(['name', 'height'])"  
    $ http https://swapi.co/api/people/1/ | j -ramda "props(['name', 'height'])"  
    $ http https://swapi.co/api/people/1/ | j "props(['name', 'height'])(_)"
     

    Inject script file

    IIFE

    // cw-oneline.js
    (() => {
      const time = time => new Date(time).toISOString().slice(0, -5).replace('T', ' ')
      return _.map(x => `${time(x.timestamp)} ${x.message}`)
    })()
    cat downloaded-cw-log.json | j -f cw-oneline.js > deptno.latest.json

    Hmm ... Is it easy to look upside down?

    add _.reverse()

    cat downloaded-cw-log.json | j -f cw-oneline.js '_.reverse()' > deptno.latest.json

    License

    MIT

    Install

    npm i hosejs

    DownloadsWeekly Downloads

    28

    Version

    1.3.0

    License

    MIT

    Unpacked Size

    128 kB

    Total Files

    29

    Last publish

    Collaborators

    • deptno