UNPKG

admin-bro

Version:
24 lines (20 loc) 674 B
import { flatten } from 'flat' import { FlattenParams } from './flat.types' import { set } from './set' /** * Merges params together and returns flatten result * * @param {any} params * @param {Array<any>} ...mergeParams * @returns {FlattenParams} * @memberof flat */ const merge = (params: any = {}, ...mergeParams: Array<any>): FlattenParams => { const flattenParams = flatten(params) // reverse because we merge from right return mergeParams.reverse().reduce((globalMemo, mergeParam) => ( Object.keys(mergeParam) .reduce((memo, key) => (set(memo, key, mergeParam[key])), globalMemo) ), flattenParams as Record<string, any>) } export { merge }