(source: string)
| 143 | const reSourceMap = /^data:application\/json[^,]+base64,/ |
| 144 | |
| 145 | function retrieveSourceMap(source: string) { |
| 146 | const urlAndMap = retrieveSourceMapFromHandlers(source) |
| 147 | if (urlAndMap) return urlAndMap |
| 148 | |
| 149 | let sourceMappingURL = retrieveSourceMapURL(source) |
| 150 | if (!sourceMappingURL) return null |
| 151 | |
| 152 | // Read the contents of the source map |
| 153 | let sourceMapData |
| 154 | if (reSourceMap.test(sourceMappingURL)) { |
| 155 | // Support source map URL as a data url |
| 156 | const rawData = sourceMappingURL.slice(sourceMappingURL.indexOf(',') + 1) |
| 157 | sourceMapData = Buffer.from(rawData, 'base64').toString() |
| 158 | sourceMappingURL = source |
| 159 | } else { |
| 160 | // Support source map URLs relative to the source URL |
| 161 | sourceMappingURL = supportRelativeURL(source, sourceMappingURL) |
| 162 | sourceMapData = retrieveFile(sourceMappingURL) |
| 163 | } |
| 164 | |
| 165 | if (!sourceMapData) return null |
| 166 | |
| 167 | return { |
| 168 | url: sourceMappingURL, |
| 169 | map: sourceMapData, |
| 170 | } |
| 171 | } |
| 172 | |
| 173 | function mapSourcePosition(position: OriginalMapping) { |
| 174 | if (!position.source) return position |
no test coverage detected