lbundle
Version:
Small zero-configuration bundler build on top of Rollup.js and SWC for NPM libraries
60 lines (57 loc) • 1.78 kB
JavaScript
import { stylesExtensions } from '../constants/styles-extensions.mjs';
import styles from 'rollup-plugin-styler';
import postcssImport from 'postcss-import';
import path from 'path';
import { getUrlOfPartial } from '../utils/url.mjs';
import { packageFilterBuilder, resolveSync } from '../utils/resolve.mjs';
const finalize = (id)=>({
file: id.replace(/\.css$/i, '')
});
const conditions = [
'sass',
'style'
];
const getRollupStylerPlugin = (param)=>{
let { options, cssFilename } = param;
return styles({
autoModules: true,
extensions: stylesExtensions,
mode: [
'extract',
cssFilename
],
sourceMap: true,
to: cssFilename,
sass: {
importer: (url, importer)=>{
if (path.isAbsolute(url) || url.startsWith('.')) return null;
const partialUrl = getUrlOfPartial(url);
const resolverOptions = {
caller: 'Sass importer',
basedirs: [
path.dirname(importer)
],
extensions: stylesExtensions,
packageFilter: packageFilterBuilder(url, {
conditions
})
};
try {
return finalize(resolveSync([
partialUrl,
url
], resolverOptions));
} catch {
return null;
}
}
},
plugins: [
postcssImport({
root: options.cwd
})
]
});
};
export { getRollupStylerPlugin };
//# sourceMappingURL=get-rollup-styler-plugin.mjs.map