flatten-ihe
v0.0.8
Published
Flatten javascript objects to a single level
Downloads
2,059
Maintainers
Readme
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: '[email protected]',
name: {
first: 'Chukwuma',
last: 'Nwaugha'
}
}
}
const result = flattenIhe(obj)
// result : =>
{
'status': 'success',
'user.email': '[email protected]',
'user.name.first': 'Chukwuma',
'user.name.last': 'Nwaugha'
}
// 2. accepts a separator
const sep = '_'
const result = flattenIhe(obj, sep)
// result :=>
{
'status': 'success',
'user_email': '[email protected]',
'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 '.'