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

57 lines
1.6 KiB
JavaScript

/**
* Jdenticon
* https://github.com/dmester/jdenticon
* Copyright © Daniel Mester Pirttijärvi
*/
const { rollup } = require("rollup");
const Vinyl = require("vinyl");
const applySourceMap = require("vinyl-sourcemaps-apply");
const { Transform } = require("stream");
function rollupStream(options) {
return new Transform({
objectMode: true,
transform(inputFile, _, fileDone) {
const inputOptions = {
onwarn: warn => console.warn(warn.toString()),
...options,
input: inputFile.path,
};
delete inputOptions.output;
rollup(inputOptions).then(bundle => {
return bundle.generate({
...options.output,
sourcemap: !!inputFile.sourceMap
});
}).then(outputs => {
for (const output of outputs.output) {
if (output.type === "chunk") {
const outputFile = new Vinyl({
cwd: inputFile.cwd,
base: inputFile.base,
path: inputFile.path,
contents: Buffer.from(output.code),
});
if (inputFile.sourceMap) {
applySourceMap(outputFile, output.map);
}
this.push(outputFile);
}
}
fileDone();
}, err => fileDone(err));
}
});
}
module.exports = rollupStream;