UNPKG

@variantjs/core

Version:

VariantJS common functions and utilities

22 lines (16 loc) 682 B
import { CSSClass, CSSClasses, CSSClassKeyValuePair } from './types/CSSClass'; export const selectClasses = (classesObject: CSSClassKeyValuePair): CSSClasses => Object.keys(classesObject).filter((className: string) => !!classesObject[className]); const mergeClasses = (...classes: CSSClasses): string => classes .map((className: CSSClass): string => { if (typeof className === 'string' || className === undefined) { return className || ''; } if (Array.isArray(className)) { return mergeClasses(...className); } return mergeClasses(...selectClasses(className)); }) .join(' ') .replace(/ +/g, ' ') .trim(); export default mergeClasses;