UNPKG

typed-bem

Version:
1 lines 2.72 kB
{"version":3,"file":"scss.cjs","sources":["../src/scss.ts"],"sourcesContent":["import { writeFileSync } from 'fs';\nimport { BemBlocks, BemSchema } from './types';\n\nfunction generateBemScssFile<B extends BemBlocks<BemSchema>>(bemDefinition: B, outputPath: string) {\n\tconst scssLines: string[] = [];\n\n\tObject.entries(bemDefinition).forEach(([blockName, blockDefinition]) => {\n\t\t// Add the block\n\t\tscssLines.push(`.${blockName} {`);\n\n\t\t// Process block modifiers\n\t\tif (blockDefinition.modifiers && blockDefinition.modifiers instanceof Set) {\n\t\t\tblockDefinition.modifiers.forEach((modifier) => {\n\t\t\t\tscssLines.push(` &--${modifier} {`);\n\t\t\t\tscssLines.push(` // Styles for ${blockName}--${modifier}`);\n\t\t\t\tscssLines.push(` }`);\n\t\t\t});\n\t\t}\n\n\t\t// Process elements\n\t\tif (blockDefinition.elements) {\n\t\t\tObject.entries(blockDefinition.elements).forEach(([elementName, elementDefinition]) => {\n\t\t\t\tscssLines.push(` &__${elementName} {`);\n\n\t\t\t\t// Process element modifiers\n\t\t\t\tif (elementDefinition.modifiers && elementDefinition.modifiers instanceof Set) {\n\t\t\t\t\telementDefinition.modifiers.forEach((modifier) => {\n\t\t\t\t\t\tscssLines.push(` &--${modifier} {`);\n\t\t\t\t\t\tscssLines.push(` // Styles for ${blockName}__${elementName}--${modifier}`);\n\t\t\t\t\t\tscssLines.push(` }`);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tscssLines.push(` // Styles for ${blockName}__${elementName}`);\n\t\t\t\t}\n\n\t\t\t\tscssLines.push(` }`);\n\t\t\t});\n\t\t}\n\n\t\tscssLines.push(`}`);\n\t});\n\n\t// Write the SCSS structure to the output file\n\twriteFileSync(`${outputPath}.scss`, scssLines.join('\\n'), 'utf8');\n}\n\nexport { generateBemScssFile };\n"],"names":["generateBemScssFile","bemDefinition","outputPath","scssLines","blockName","blockDefinition","modifier","elementName","elementDefinition","writeFileSync"],"mappings":"oCAGA,SAASA,EAAoDC,EAAkBC,EAAoB,CAClG,MAAMC,EAAsB,CAAA,EAE5B,OAAO,QAAQF,CAAa,EAAE,QAAQ,CAAC,CAACG,EAAWC,CAAe,IAAM,CAEvEF,EAAU,KAAK,IAAIC,CAAS,IAAI,EAG5BC,EAAgB,WAAaA,EAAgB,qBAAqB,KACrEA,EAAgB,UAAU,QAASC,GAAa,CAC/CH,EAAU,KAAK,QAAQG,CAAQ,IAAI,EACnCH,EAAU,KAAK,qBAAqBC,CAAS,KAAKE,CAAQ,EAAE,EAC5DH,EAAU,KAAK,KAAK,CACrB,CAAC,EAIEE,EAAgB,UACnB,OAAO,QAAQA,EAAgB,QAAQ,EAAE,QAAQ,CAAC,CAACE,EAAaC,CAAiB,IAAM,CACtFL,EAAU,KAAK,QAAQI,CAAW,IAAI,EAGlCC,EAAkB,WAAaA,EAAkB,qBAAqB,IACzEA,EAAkB,UAAU,QAASF,GAAa,CACjDH,EAAU,KAAK,UAAUG,CAAQ,IAAI,EACrCH,EAAU,KAAK,uBAAuBC,CAAS,KAAKG,CAAW,KAAKD,CAAQ,EAAE,EAC9EH,EAAU,KAAK,OAAO,CACvB,CAAC,EAEDA,EAAU,KAAK,qBAAqBC,CAAS,KAAKG,CAAW,EAAE,EAGhEJ,EAAU,KAAK,KAAK,CACrB,CAAC,EAGFA,EAAU,KAAK,GAAG,CACnB,CAAC,EAGDM,GAAc,cAAA,GAAGP,CAAU,QAASC,EAAU,KAAK;AAAA,CAAI,EAAG,MAAM,CACjE"}