UNPKG

sec-edgar-api

Version:

Fetch and parse SEC earnings reports and other filings. Useful for financial analysis.

61 lines (60 loc) 2.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var ObjectUtil = /** @class */ (function () { function ObjectUtil(args) { var _a = (args !== null && args !== void 0 ? args : {}).pathSeparator, pathSeparator = _a === void 0 ? '>' : _a; this.pathSeparator = pathSeparator; } ObjectUtil.prototype.iterateKeysDeep = function (obj, cb) { var _this = this; var originalObj = obj; var isBreak = false; var breakLoop = function () { return (isBreak = true); }; // prevents original object from being modified var _iterateKeys = function (obj, cb, path) { var isNextKey = false; var nextKey = function () { return (isNextKey = true); }; for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) { var key = _a[_i]; isNextKey = false; var value = obj[key]; var p = path ? "".concat(path).concat(_this.pathSeparator).concat(key) : key; cb({ key: key, value: value, currentObj: obj, originalObj: originalObj, pathSeparator: _this.pathSeparator, path: p, nextKey: nextKey, breakLoop: breakLoop, }); if (isBreak) return; if (isNextKey) continue; var isObjOrArr = typeof value === 'object' && value !== null; if (isObjOrArr) _iterateKeys(obj[key], cb, p); } }; _iterateKeys(obj, cb, ''); }; ObjectUtil.prototype.setPath = function (obj, path, value, pathSeparator) { var _a; var keys = path.split(pathSeparator !== null && pathSeparator !== void 0 ? pathSeparator : this.pathSeparator); var ref = obj; for (var i = 0; i < keys.length; i++) { var key = keys[i]; if (i === keys.length - 1) { ref[key] = value; } else { (_a = ref[key]) !== null && _a !== void 0 ? _a : (ref[key] = {}); ref = ref[key]; } } }; return ObjectUtil; }()); exports.default = ObjectUtil;