sec-edgar-api
Version:
Fetch and parse SEC earnings reports and other filings. Useful for financial analysis.
54 lines (53 loc) • 2.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Builds an array of fact records.
*/
var FactRecordBuilder = /** @class */ (function () {
function FactRecordBuilder() {
}
FactRecordBuilder.prototype.createFacts = function (data, includeNamePrefix) {
if (includeNamePrefix === void 0) { includeNamePrefix = true; }
var facts = data.facts, cik = data.cik;
var factItems = [];
for (var prefix in facts) {
var factByPropertyName = facts[prefix];
for (var propertyName in factByPropertyName) {
var units = factByPropertyName[propertyName].units;
for (var unit in units) {
var factValues = units[unit];
for (var _i = 0, factValues_1 = factValues; _i < factValues_1.length; _i++) {
var factValue = factValues_1[_i];
var end = factValue.end, start = factValue.start, val = factValue.val, filed = factValue.filed, accn = factValue.accn, form = factValue.form, fp = factValue.fp, frame = factValue.frame, fy = factValue.fy;
var name_1 = includeNamePrefix ? "".concat(prefix, ":").concat(propertyName) : propertyName;
var item = {
cik: cik,
end: end,
filed: filed,
name: name_1,
unit: unit,
value: val,
accn: accn,
};
if (start)
item.start = start;
if (accn)
item.accn = accn;
if (form)
item.form = form;
if (fp)
item.fp = fp;
if (frame)
item.frame = frame;
if (fy)
item.fy = fy;
factItems.push(item);
}
}
}
}
return { facts: factItems };
};
return FactRecordBuilder;
}());
exports.default = FactRecordBuilder;