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