"use strict"; import { fileURLToPath } from "node:url"; import { isSwcError, wrapAndReThrowSwcError } from "./errors.js"; import { transformSync } from "./index.js"; export async function load(url, context, nextLoad) { const { format } = context; if (format?.endsWith("-typescript")) { try { const { source } = await nextLoad(url, { ...context, format: "module" }); const { code, map } = transformSync(source.toString(), { mode: "transform", sourceMap: true, filename: fileURLToPath(url) }); let output = code; if (map) { const base64SourceMap = Buffer.from(map).toString("base64"); output = `${code} //# sourceMappingURL=data:application/json;base64,${base64SourceMap}`; } return { format: format.replace("-typescript", ""), source: `${output} //# sourceURL=${url}` }; } catch (error) { if (isSwcError(error)) { wrapAndReThrowSwcError(error); } throw error; } } return nextLoad(url, context); }