@amaui/utils
Version:
29 lines (28 loc) • 1.26 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const is_1 = __importDefault(require("./is"));
const flatten = (object, output_, keys_ = '', key_ = '', value_ = undefined, includeObjects) => {
if (!object)
return object;
const output = output_ || {};
const value = output_ === undefined ? object : value_;
const keys = `${keys_}${keys_ ? '.' : ''}${key_}`.trim();
if (value !== undefined) {
if (includeObjects || (0, is_1.default)('not-array-object', value))
output[keys] = value;
if (!(0, is_1.default)('not-array-object', value)) {
if ((0, is_1.default)('array', value))
value.forEach((item, index) => flatten(object, output, keys, index, item, includeObjects));
else
Object.keys(value).forEach(key => flatten(object, output, keys, key, value[key], includeObjects));
}
}
return output;
};
const flattenObject = (object, includeObjects) => {
return flatten(object, undefined, undefined, undefined, undefined, includeObjects);
};
exports.default = flattenObject;