flatten-ihe
TypeScript icon, indicating that this package has built-in type declarations

0.0.8 • Public • Published

flatten-ihe

Flatten javascript objects to a single level, with the ability to choose delimiter/separator. Ihe is an Igbo word for Object.

Installation

pnpm install flatten-ihe

yarn add flatten-ihe

npm install flatten-ihe

Usage

import flattenIhe from 'flatten-ihe'
// 1. as a simple object flattener

const obj = {
    status: 'success',
    user: {
        email: 'nwaughac@gmail.com',
        name: {
            first: 'Chukwuma',
            last: 'Nwaugha'
        }
    }
}

const result = flattenIhe(obj)

// result : =>
{
    'status': 'success',
    'user.email': 'nwaughac@gmail.com',
    'user.name.first': 'Chukwuma',
    'user.name.last': 'Nwaugha'
}

// 2. accepts a separator

  const sep = '_'
  const result = flattenIhe(obj, sep)

// result :=>
{
    'status': 'success',
    'user_email': 'nwaughac@gmail.com',
    'user_name_first': 'Chukwuma',
    'user_name_last': 'Nwaugha'
}

// 3. can be used in creating route paths in web frameworks

const api = {
    users: {
        getUser(id) {},
        getUsers() {}
    },
    video: {
        getVideo(id) {},
        getVideos() {}
    },
    channel: {
        getChannel(id) {},
        getChannels() {},
        videos: {
            getVideo(id, cid) {},
            getVideos(cid) {}
        }
    }
}

 const sep = '/'
 const result = flattenIhe(obj, sep)

 // result :=>

 {
    'users/getUser': api.users.getUser,
    'users/getUsers': api.users.getUsers,
    'video/getVideo': api.video.getVideo,
    'video/getVideos': api.video.getVideos,
    'channel/getChannel': api.channel.getChannel,
    'channel/getChannels': api.channel.getChannels,
    'channel/videos/getVideo': api.channel.videos.getVideo,
    'channel/videos/getVideos': api.channel.videos.getVideos
}

API

flattenIhe(obj: {[key: string]: any}, sep: string)
  • obj: A javascript object of any nesting level.

  • sep: Separator string for flattening, defaults to '.'

Package Sidebar

Install

npm i flatten-ihe

Weekly Downloads

3

Version

0.0.8

License

MIT

Unpacked Size

3.98 kB

Total Files

5

Last publish

Collaborators

  • nwaughachukwuma