UNPKG

rollup-plugin-scss-lit

Version:

Rollup plugin for importing Sass sources as constructable stylesheets to projects using lit (lit-html and lit-element) or fast-element.

43 lines (38 loc) 1.29 kB
import { createFilter } from '@rollup/pluginutils' import { resolve } from 'node:path' import { fileURLToPath } from 'node:url' import { compileString as compileScss } from 'sass' import { createProcessor } from 'rollup-copy-transform-css' import cssToModule from './css-to-module.js' import handleError from './error.js' export function litScss({ include = ['**/*.scss'], exclude, minify, options, plugins, tag = 'css', specifier = 'lit' } = {}) { const filter = createFilter(include, exclude) const processor = (minify || plugins) && createProcessor({ minify, plugins }) return { name: 'lit-scss', load(id) { if (filter(id)) { this.addWatchFile(resolve(id)) } }, async transform(source, id) { // eslint-disable-line consistent-return if (filter(id)) { try { let { css, loadedUrls } = compileScss(source, options) for (const url of loadedUrls) { this.addWatchFile(fileURLToPath(url)) } if (processor) { ({ css } = await processor.process(css, { from: id, map: false })) } return { code: cssToModule(css, tag, specifier), map: { mappings: '' } } } catch (err) { handleError.call(this, err) } } } } }