You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
796 B
31 lines
796 B
2 years ago
|
const { SourceMapGenerator } = require('source-map');
|
||
|
|
||
|
/**
|
||
|
* Generates an identity source map from a source file.
|
||
|
* @param {string} source The content of the source file.
|
||
|
* @param {string} resourcePath The name of the source file.
|
||
|
* @returns {import('source-map').RawSourceMap} The identity source map.
|
||
|
*/
|
||
|
function getIdentitySourceMap(source, resourcePath) {
|
||
|
const sourceMap = new SourceMapGenerator();
|
||
|
sourceMap.setSourceContent(resourcePath, source);
|
||
|
|
||
|
source.split('\n').forEach((line, index) => {
|
||
|
sourceMap.addMapping({
|
||
|
source: resourcePath,
|
||
|
original: {
|
||
|
line: index + 1,
|
||
|
column: 0,
|
||
|
},
|
||
|
generated: {
|
||
|
line: index + 1,
|
||
|
column: 0,
|
||
|
},
|
||
|
});
|
||
|
});
|
||
|
|
||
|
return sourceMap.toJSON();
|
||
|
}
|
||
|
|
||
|
module.exports = getIdentitySourceMap;
|