UNPKG

sec-edgar-api

Version:

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

41 lines (40 loc) 1.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _ReportTranslatedProxy = /** @class */ (function () { function _ReportTranslatedProxy(report) { this.changedKeys = new Set(); var reportKeys = new Set(Object.keys(report)); return new Proxy(this, { // when accessing property of report, return the value of the report instead of the wrapper get: function (target, key, receiver) { return reportKeys.has(String(key)) ? Reflect.get(report, key) : Reflect.get(target, key, receiver); }, // record changed properties set: function (target, key, value, receiver) { if (reportKeys.has(String(key))) { target.changedKeys.add(String(key)); return Reflect.set(report, key, value); } return Reflect.set(target, key, value, receiver); }, // makes Object.keys return report keys ownKeys: function () { return Reflect.ownKeys(report); }, getOwnPropertyDescriptor: function (target, key) { return reportKeys.has(String(key)) ? Reflect.getOwnPropertyDescriptor(report, key) : Reflect.getOwnPropertyDescriptor(target, key); }, }); } _ReportTranslatedProxy.prototype.getChangedKeys = function () { return Array.from(this.changedKeys); }; return _ReportTranslatedProxy; }()); /** * Used to make ReportWrapper implement ReportTranslated interface via proxy */ var ReportTranslatedProxy = _ReportTranslatedProxy; exports.default = ReportTranslatedProxy;