UNPKG

@storm-stack/utilities

Version:

This package includes various base utility class and various functions to assist in the development process.

28 lines (27 loc) 838 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.flattenObject = flattenObject; var _types = require("@storm-stack/types"); function flattenObject(object) { return flattenObjectImpl(object); } function flattenObjectImpl(object, prefix = "") { const result = {}; const keys = Object.keys(object); for (const key of keys) { const value = object[key]; const prefixedKey = prefix ? `${prefix}.${key}` : key; if ((0, _types.isPlainObject)(value) && Object.keys(value).length > 0) { Object.assign(result, flattenObjectImpl(value, prefixedKey)); } else if (Array.isArray(value)) { for (const [index, element_] of value.entries()) { result[`${prefixedKey}.${index}`] = element_; } } else { result[prefixedKey] = value; } } return result; }