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
|
||
|
}
|