UNPKG

@bugsplat/symbol-upload

Version:
28 lines 1.76 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.uploadSymbolFiles = uploadSymbolFiles; const js_api_client_1 = require("@bugsplat/js-api-client"); const node_os_1 = require("node:os"); const pretty_bytes_1 = __importDefault(require("pretty-bytes")); const workerpool_1 = require("workerpool"); const preload_1 = require("./preload"); const worker_1 = require("./worker"); const maxWorkers = (0, node_os_1.availableParallelism)(); const workerPool = (0, workerpool_1.pool)((0, preload_1.findCompressionWorkerPath)(), { maxWorkers }); async function uploadSymbolFiles(bugsplat, database, application, version, symbolFileInfos) { console.log(`About to upload symbols for ${database}-${application}-${version}...`); const startTime = new Date(); const symbolsApiClient = new js_api_client_1.SymbolsApiClient(bugsplat); const versionsApiClient = new js_api_client_1.VersionsApiClient(bugsplat); const workers = (0, worker_1.createWorkersFromSymbolFiles)(workerPool, maxWorkers, symbolFileInfos, [symbolsApiClient, versionsApiClient]); const uploads = workers.map((worker) => worker.upload(database, application, version)); const stats = await Promise.all(uploads).then(stats => stats.flat()); const endTime = new Date(); const size = stats.reduce((acc, curr) => acc + curr.size, 0); const seconds = (endTime.getTime() - startTime.getTime()) / 1000; console.log(`Uploaded ${symbolFileInfos.length} symbols totaling ${(0, pretty_bytes_1.default)(size)} @ ${(0, pretty_bytes_1.default)(size / seconds)}/sec`); } //# sourceMappingURL=upload.js.map