71 lines
2.0 KiB
JavaScript
71 lines
2.0 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.generateInlineMap = generateInlineMap;
|
|
exports.partialVlqMapToSourceMap = partialVlqMapToSourceMap;
|
|
|
|
var _path = _interopRequireDefault(require("path"));
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
function generateInlineMap(map) {
|
|
return `data:application/json;charset=utf-8;base64,${Buffer.from(map).toString('base64')}`;
|
|
}
|
|
|
|
async function partialVlqMapToSourceMap(map, opts) {
|
|
let {
|
|
fs,
|
|
file,
|
|
sourceRoot,
|
|
inlineSources,
|
|
rootDir,
|
|
format = 'string'
|
|
} = opts;
|
|
let resultMap = { ...map,
|
|
sourcesContent: map.sourcesContent ? map.sourcesContent.map(content => {
|
|
if (content) {
|
|
return content;
|
|
} else {
|
|
return null;
|
|
}
|
|
}) : [],
|
|
version: 3,
|
|
file,
|
|
sourceRoot
|
|
};
|
|
|
|
if (resultMap.sourcesContent.length < resultMap.sources.length) {
|
|
for (let i = 0; i <= resultMap.sources.length - resultMap.sourcesContent.length; i++) {
|
|
resultMap.sourcesContent.push(null);
|
|
}
|
|
}
|
|
|
|
if (fs) {
|
|
resultMap.sourcesContent = await Promise.all(resultMap.sourcesContent.map(async (content, index) => {
|
|
let sourceName = map.sources[index]; // If sourceName starts with `..` it is outside rootDir, in this case we likely cannot access this file from the browser or packaged node_module
|
|
// Because of this we have to include the sourceContent to ensure you can always see the sourcecontent for each mapping.
|
|
|
|
if (!content && (inlineSources || sourceName.startsWith('..'))) {
|
|
try {
|
|
return await fs.readFile(_path.default.resolve(rootDir || '/', sourceName), 'utf-8');
|
|
} catch (e) {}
|
|
}
|
|
|
|
return content;
|
|
}));
|
|
}
|
|
|
|
if (format === 'inline' || format === 'string') {
|
|
let stringifiedMap = JSON.stringify(resultMap);
|
|
|
|
if (format === 'inline') {
|
|
return generateInlineMap(stringifiedMap);
|
|
}
|
|
|
|
return stringifiedMap;
|
|
}
|
|
|
|
return resultMap;
|
|
} |