UNPKG

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
"use strict"; 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); }))();