19 lines
563 B
JavaScript
19 lines
563 B
JavaScript
/**
|
|
* Injects a `{}*` CSS rule to force Svelte compiler to scope every elements.
|
|
*/
|
|
export const injectScopeEverythingCssRule = (parse, code) => {
|
|
const { css } = parse(code)
|
|
if (!css) return code
|
|
const {
|
|
content: { end },
|
|
} = css
|
|
return code.slice(0, end) + '*{}' + code.slice(end)
|
|
}
|
|
|
|
export const normalizeJsCode = code => {
|
|
// Svelte now adds locations in dev mode, code locations can change when
|
|
// CSS change, but we're unaffected (not real behaviour changes)
|
|
code = code.replace(/\badd_location\s*\([^)]*\)\s*;?/g, '')
|
|
return code
|
|
}
|