UNPKG

@sentry/remix

Version:
46 lines (42 loc) • 1.8 kB
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); const fs = require('node:fs'); const path = require('node:path'); const assetServer = require('./assetServer.js'); const debugId = require('./debugId.js'); async function emitAssets(options) { const { assets, entries, outDir } = options; const fetchMap = assets[assetServer.UNSTAMPED_FETCH] ?? ((request) => assets.fetch(request)); const emitted = []; for (const url of await assets.getPreloads([...entries])) { const response = await assets.fetch(new Request(`http://asset-server${url}`)); if (response?.status !== 200) { continue; } const source = await response.text(); const debugId$1 = debugId.findDebugId(source); const file = path.join(outDir, toRelativePath(url)); fs.mkdirSync(path.dirname(file), { recursive: true }); fs.writeFileSync(file, source); const asset = { url, file, debugId: debugId$1 }; const mapResponse = await fetchMap(new Request(`http://asset-server${toMapUrl(url)}`)); if (mapResponse?.status === 200) { const map = await mapResponse.text(); asset.mapFile = `${file}.map`; fs.writeFileSync(asset.mapFile, debugId$1 ? debugId.addDebugIdToSourceMap(map, debugId$1) : map); } emitted.push(asset); } return emitted; } function toMapUrl(url) { const queryIndex = url.indexOf("?"); return queryIndex === -1 ? `${url}.map` : `${url.slice(0, queryIndex)}.map${url.slice(queryIndex)}`; } function toRelativePath(url) { const pathname = url.split("?")[0] ?? url; return path.join( ...pathname.replace(/^\//, "").split("/").map((segment) => decodeURIComponent(segment).replace(/[/\\]/g, "_")).filter((segment) => segment !== "..") ); } exports.emitAssets = emitAssets; //# sourceMappingURL=emitAssets.js.map