diff --git a/packages/log/metro/index.js b/packages/log/metro/index.js new file mode 100644 index 0000000..9cc4a32 --- /dev/null +++ b/packages/log/metro/index.js @@ -0,0 +1,34 @@ +'use strict' + +/** + * withXuqmLog(metroConfig) + * 包裹 Metro 配置,打 Release 包时自动上传 SourceMap。 + * 当前为存根实现,后续补全 SourceMap 上传逻辑。 + */ +function withXuqmLog(metroConfig) { + return { + ...metroConfig, + serializer: { + ...metroConfig.serializer, + customSerializer: async (entryPoint, preModules, graph, options) => { + // 调用原始 serializer + const baseSerializer = metroConfig.serializer?.customSerializer + const result = baseSerializer + ? await baseSerializer(entryPoint, preModules, graph, options) + : undefined + + // 仅 Release 包上传 SourceMap(dev 模式跳过) + if (!options.dev) { + // TODO: 补全 SourceMap 上传逻辑 + // 1. 读取 .xuqmconfig 或 xuqm.config.js 获取 logApiUrl + // 2. 读取 sourceMapUrl 对应的 .map 文件 + // 3. 上传到 logApiUrl/log/v1/sourcemaps/upload + } + + return result + }, + }, + } +} + +module.exports = { withXuqmLog }