sharyn
Version:
Combines all the other packages under one.
27 lines (24 loc) • 597 B
Flow
// @flow
const spread = (param: any, ...rest: any): any => {
// Arrays cases
if (Array.isArray(param)) {
return param.filter(x => x !== undefined)
}
if (rest.length > 0) {
return [param, ...rest].filter(x => x !== undefined)
}
// Object case
if (typeof param === 'object' && param !== null) {
const keys = Object.keys(param)
const newObj = {}
keys.forEach(key => {
if (param[key] !== undefined) {
newObj[key] = param[key]
}
})
return newObj
}
// One param case
return param !== undefined ? [param] : []
}
export default spread