Files
go-jdenticon/jdenticon-js/build/gulp/remove-mapped-source.js
Kevin McIntyre f84b511895 init
2025-06-18 01:00:00 -04:00

55 lines
1.9 KiB
JavaScript

const { Transform } = require("stream");
const { SourceMapConsumer, SourceMapGenerator } = require("source-map");
function removeMappedSourceStream(...sourceNames) {
const sourceNamesToRemove = new Set(sourceNames);
return new Transform({
objectMode: true,
transform(inputFile, _, fileDone) {
if (inputFile.sourceMap) {
let consumer = inputFile.sourceMap;
if (!(consumer instanceof SourceMapConsumer)) {
consumer = new SourceMapConsumer(consumer);
}
const generator = new SourceMapGenerator({
file: consumer.file,
sourceRoot: consumer.sourceRoot,
});
consumer.sources.forEach(sourceFile => {
const content = consumer.sourceContentFor(sourceFile);
if (content != null && !sourceNamesToRemove.has(sourceFile)) {
generator.setSourceContent(sourceFile, content);
}
});
consumer.eachMapping(mapping => {
if (!sourceNamesToRemove.has(mapping.source)) {
generator.addMapping({
original: {
line: mapping.originalLine,
column: mapping.originalColumn,
},
generated: {
line: mapping.generatedLine,
column: mapping.generatedColumn,
},
source: mapping.source,
name: mapping.name,
});
}
});
inputFile.sourceMap = generator.toJSON();
}
fileDone(null, inputFile);
}
});
}
module.exports = removeMappedSourceStream;