sec-edgar-api
Version:
Fetch and parse SEC earnings reports and other filings. Useful for financial analysis.
51 lines (50 loc) • 1.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/* eslint-disable @typescript-eslint/no-explicit-any */
function toArray(value) {
return (Array.isArray(value) ? value : [value]).filter(Boolean);
}
function toNumber(value) {
return Number(value);
}
function toObject(value) {
value = Array.isArray(value) ? value[0] : value;
return (value && typeof value === 'object' ? value : {});
}
function toString(value) {
var _a;
value = typeof value === 'object' && value !== null ? (_a = value['#text']) !== null && _a !== void 0 ? _a : value : value;
return String(value || '');
}
function toBoolean(value) {
return typeof value === 'string' ? value.toLowerCase() === 'true' || value === '1' : Boolean(value);
}
function parseKey(key) {
var _a, _b;
return (_b = (_a = key.split(':').pop()) === null || _a === void 0 ? void 0 : _a.replace('@_', '').replace('#', '')) !== null && _b !== void 0 ? _b : '';
}
function extractXbrlObject(value) {
var _a, _b, _c;
var xbrl = value;
if (typeof xbrl !== 'object' || xbrl === null) {
return null;
}
for (var i = 0; i < 10; i++) {
var xbrlChild = (_c = (_b = (_a = xbrl.XBRL) !== null && _a !== void 0 ? _a : xbrl.xbrl) !== null && _b !== void 0 ? _b : xbrl['xbrli:xbrl']) !== null && _c !== void 0 ? _c : xbrl['xbrli:XBRL'];
if (xbrlChild)
xbrl = xbrlChild;
else
break;
}
return xbrl;
}
var utilXbrl = {
toArray: toArray,
toNumber: toNumber,
toObject: toObject,
toString: toString,
toBoolean: toBoolean,
parseKey: parseKey,
extractXbrlObject: extractXbrlObject,
};
exports.default = utilXbrl;