UNPKG

lbundle

Version:

Small zero-configuration bundler build on top of Rollup.js and SWC for NPM libraries

60 lines (57 loc) 1.78 kB
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