init
This commit is contained in:
54
jdenticon-js/build/gulp/remove-mapped-source.js
Normal file
54
jdenticon-js/build/gulp/remove-mapped-source.js
Normal file
@@ -0,0 +1,54 @@
|
||||
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;
|
||||
Reference in New Issue
Block a user