sec-edgar-parser
Version:
A tool for scraping SEC edgar archive documents found at https://www.sec.gov/Archives/edgar/data
37 lines (36 loc) • 1.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const promises_1 = tslib_1.__importDefault(require("node:fs/promises"));
const parser_1 = require("./parser");
const urls = [
"https://www.sec.gov/Archives/edgar/data/1766724/000117266123003414/0001172661-23-003414.txt",
"https://www.sec.gov/Archives/edgar/data/314169/000137647423000077/0001376474-23-000077.txt",
];
function getLastSegmentWithoutExtension(urlString) {
const url = new URL(urlString);
const pathnameParts = url.pathname.split("/");
const lastSegment = pathnameParts[pathnameParts.length - 1];
const lastSegmentWithoutExtension = lastSegment.split(".")[0];
return lastSegmentWithoutExtension;
}
(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const promises = [];
for (let index = 0; index < urls.length; index++) {
const url = urls[index];
const email = process.argv[2];
if (!email || !email.includes("@")) {
throw new Error("Please provide a valid email address as a command line argument");
}
const promise = ((url) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
console.log(`Calling: ${url}`);
const accessionNumber = getLastSegmentWithoutExtension(url);
const obj = yield (0, parser_1.getObjectFromUrl)(url, email);
const outputPath = `/tmp/SEC-output-${accessionNumber}.json`;
yield promises_1.default.writeFile(outputPath, JSON.stringify(obj, null, 2), "utf-8");
console.log(`output: ${outputPath}`);
}))(url);
promises.push(promise);
}
yield Promise.all(promises);
}))();