_getMetadataObjectsBySourceNamessourcemap MixedSourceMap MetadataMap if sourcemapmappings === undefined const indexSourceMap IndexSourceMap = sourcemap; const metadataMap = new Map;
该函数的功能是根据源映射文件的名称获取元数据对象,并将结果存储在一个 Map 对象中返回。
函数首先判断输入的 sourcemap 是否包含 mappings 属性,如果不包含,则说明该 sourcemap 是一个索引映射文件(IndexSourceMap)。在这种情况下,函数会递归调用自身来处理每个子映射文件,并将结果合并到最终的 metadataMap 中。
如果 sourcemap 包含 mappings 属性,则说明该 sourcemap 是一个基本映射文件(BasicSourceMap)。函数会遍历 reactMetadataArray 或 fbMetadataArray 中的每个非空元素,并调用 updateMap 函数来更新 metadataMap。updateMap 函数接受两个参数:metadata 是源映射文件的元数据对象,sourceIndex 是源映射文件在 basicMap.sources 数组中的索引。updateMap 函数会将 sourceIndex 对应的源映射文件的路径进行规范化,并将元数据对象与路径一起存储在 metadataMap 中。
最后,函数返回 metadataMap。
函数的执行过程如下:
- 首先判断 sourcemap 是否是索引映射文件,如果是,则递归调用函数处理每个子映射文件,并将结果合并到 metadataMap 中。
- 如果 sourcemap 是基本映射文件,则遍历 reactMetadataArray 或 fbMetadataArray 中的每个非空元素,调用 updateMap 函数更新 metadataMap。
- 在 updateMap 函数中,将源映射文件的路径进行规范化,并将元数据对象与路径一起存储在 metadataMap 中。
- 返回 metadataMap
原文地址: http://www.cveoy.top/t/topic/iGiW 著作权归作者所有。请勿转载和采集!