@baleada/rollup-plugin-source-transform
Version:
Rollup plugin that allows you to transform files' content during your build step.
33 lines (30 loc) • 930 B
JavaScript
import pluginUtils from '@rollup/pluginutils';
const { createFilter } = pluginUtils;
const defaultOptions = {
transform: ({ source }) => source,
};
function sourceTransform(options = {}) {
const { transform, include, exclude, test: rawTest } = { ...defaultOptions, ...options }, test = ensureTest({ include, exclude, rawTest });
return {
name: 'source-transform',
async transform(source, id) {
if (!test({ source, id })) {
return null;
}
return await transform({
source,
id,
context: this,
utils: pluginUtils
});
}
};
}
function ensureTest({ include, exclude, rawTest }) {
if (typeof rawTest === 'function') {
return rawTest;
}
const filter = createFilter(include, exclude);
return ({ id }) => filter(id);
}
export { sourceTransform };