typed-bem
Version:
A TypeScript library for generating BEM class names.
4 lines (3 loc) • 906 B
JavaScript
import{writeFileSync as a}from"fs";function u(h,l,i){const e=[],$=i?.layer!==void 0&&i.layer!=="";i?.layer===""&&console.warn("Warning: Empty layer name provided. No CSS layer will be generated."),$&&e.push(`@layer ${i.layer} {`),Object.entries(h).forEach(([n,o])=>{const s=$?" ":"";e.push(`${s}.${n} {`),o.modifiers&&o.modifiers instanceof Set&&o.modifiers.forEach(r=>{e.push(`${s} &--${r} {`),e.push(`${s} // Styles for ${n}--${r}`),e.push(`${s} }`)}),o.elements&&Object.entries(o.elements).forEach(([r,t])=>{e.push(`${s} &__${r} {`),t.modifiers&&t.modifiers instanceof Set?t.modifiers.forEach(f=>{e.push(`${s} &--${f} {`),e.push(`${s} // Styles for ${n}__${r}--${f}`),e.push(`${s} }`)}):e.push(`${s} // Styles for ${n}__${r}`),e.push(`${s} }`)}),e.push(`${s}}`)}),$&&e.push("}"),a(`${l}.scss`,e.join(`
`),"utf8")}export{u as generateBemScssFile};
//# sourceMappingURL=node.mjs.map