UNPKG

ember-codemod-remove-global-styles

Version:
37 lines (36 loc) 1.22 kB
import { findTemplateTags } from '@codemod-utils/ast-template-tag'; import { getClasses } from '../../utils/css/index.js'; function getLocalStyles(classes, data) { const classesSet = new Set(classes); const localStyles = classes.reduce((accumulator, className) => { const styles = data.classToStyles.get(className) ?? []; const filteredStyles = styles.filter(({ classes }) => { return classes.every((className) => classesSet.has(className)); }); accumulator.push(...filteredStyles); return accumulator; }, []); return localStyles; } export function getEntityData(file, data) { const classes = []; const errors = []; if (data.isHbs) { const output = getClasses(file); classes.push(...output.classes); errors.push(...output.errors); } else { const templateTags = findTemplateTags(file); templateTags.forEach(({ contents }) => { const output = getClasses(contents); classes.push(...output.classes); errors.push(...output.errors); }); } return { classes, errors, localStyles: getLocalStyles(classes, data), }; }