UNPKG

@backtrace/sourcemap-tools

Version:
70 lines 6.45 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.processAndUploadAssetsCommand = processAndUploadAssetsCommand; const path_1 = __importDefault(require("path")); const DebugIdGenerator_1 = require("../DebugIdGenerator"); const SourceProcessor_1 = require("../SourceProcessor"); const SymbolUploader_1 = require("../SymbolUploader"); const common_1 = require("../helpers/common"); const flow_1 = require("../helpers/flow"); const Result_1 = require("../models/Result"); const archiveSourceMaps_1 = require("./archiveSourceMaps"); const loadSourceMaps_1 = require("./loadSourceMaps"); const processAsset_1 = require("./processAsset"); const uploadArchive_1 = require("./uploadArchive"); const writeAsset_1 = require("./writeAsset"); function processAndUploadAssetsCommand(pluginOptions, options) { const sourceProcessor = new SourceProcessor_1.SourceProcessor(new DebugIdGenerator_1.DebugIdGenerator()); const sourceMapUploader = (pluginOptions === null || pluginOptions === void 0 ? void 0 : pluginOptions.uploadUrl) ? new SymbolUploader_1.SymbolUploader(pluginOptions.uploadUrl, pluginOptions.uploadOptions) : undefined; const processCommand = (0, processAsset_1.processAsset)(sourceProcessor); const uploadCommand = sourceMapUploader ? (0, uploadArchive_1.uploadArchive)(sourceMapUploader) : undefined; return function processAndUploadAssets(assets) { return __awaiter(this, void 0, void 0, function* () { var _a; (options === null || options === void 0 ? void 0 : options.beforeAll) && options.beforeAll(assets); const assetResults = yield Promise.all(assets.map((asset) => (0, flow_1.pipe)(asset, (options === null || options === void 0 ? void 0 : options.beforeProcess) ? (0, common_1.inspect)(options.beforeProcess) : common_1.pass, processCommand, Result_1.R.map((options === null || options === void 0 ? void 0 : options.afterProcess) ? (0, common_1.inspect)(options.afterProcess) : common_1.pass), Result_1.R.map((options === null || options === void 0 ? void 0 : options.beforeWrite) ? (0, common_1.inspect)(options.beforeWrite) : common_1.pass), Result_1.R.map(writeAsset_1.writeAsset), Result_1.R.map((options === null || options === void 0 ? void 0 : options.afterWrite) ? (0, common_1.inspect)(options.afterWrite) : common_1.pass), Result_1.R.map((options === null || options === void 0 ? void 0 : options.assetFinished) ? (0, common_1.inspect)(options.assetFinished) : common_1.pass), Result_1.R.mapErr((options === null || options === void 0 ? void 0 : options.assetError) ? (0, common_1.inspect)(options.assetError) : common_1.pass)))); const assetsResult = Result_1.R.flatMap(assetResults); if (assetsResult.isErr()) { const result = { assetResults }; (options === null || options === void 0 ? void 0 : options.afterAll) && options.afterAll(result); return result; } if (!uploadCommand) { const result = { assetResults }; (options === null || options === void 0 ? void 0 : options.afterAll) && options.afterAll(result); return result; } const sourceMapAssets = assetsResult.data.map((r) => ({ name: path_1.default.basename(r.result.sourceMapPath), path: r.result.sourceMapPath, })); const includeSources = (_a = pluginOptions === null || pluginOptions === void 0 ? void 0 : pluginOptions.uploadOptions) === null || _a === void 0 ? void 0 : _a.includeSources; const uploadResult = yield (0, flow_1.pipe)(sourceMapAssets, (0, flow_1.flow)((0, common_1.mapAsync)((0, flow_1.flow)((options === null || options === void 0 ? void 0 : options.beforeLoad) ? (0, common_1.inspect)(options === null || options === void 0 ? void 0 : options.beforeLoad) : common_1.pass, loadSourceMaps_1.loadSourceMap, Result_1.R.map((options === null || options === void 0 ? void 0 : options.afterLoad) ? (0, common_1.inspect)(options === null || options === void 0 ? void 0 : options.afterLoad) : common_1.pass), Result_1.R.map(includeSources ? common_1.pass : loadSourceMaps_1.stripSourcesContent))), Result_1.R.flatMap), Result_1.R.map((options === null || options === void 0 ? void 0 : options.beforeUpload) ? (0, common_1.inspect)(options.beforeUpload) : common_1.pass), Result_1.R.map((0, archiveSourceMaps_1.createArchive)(sourceProcessor)), Result_1.R.map((_a) => __awaiter(this, [_a], void 0, function* ({ assets, archive }) { // We first create the upload request, which pipes the archive to itself const promise = uploadCommand(archive); // Next we finalize the archive, which causes the assets to be written to the archive, and consequently to the request yield (0, archiveSourceMaps_1.finalizeArchive)({ assets, archive }); // Finally, we return the upload request promise return promise; })), Result_1.R.map((options === null || options === void 0 ? void 0 : options.afterUpload) ? (0, common_1.inspect)(options.afterUpload) : common_1.pass), Result_1.R.mapErr((options === null || options === void 0 ? void 0 : options.uploadError) ? (0, common_1.inspect)(options.uploadError) : common_1.pass)); const result = { assetResults, uploadResult }; (options === null || options === void 0 ? void 0 : options.afterAll) && options.afterAll(result); return result; }); }; } //# sourceMappingURL=processAndUploadAssetsCommand.js.map