substitute-theme-vars.js
1 /* eslint-disable no-console */ 2 3 // script that takes a file as input and replaces the following strings: 4 // - #5555FF -> var(--color-primary) 5 // - #C0C0FF -> var(--color-primary-level-2) 6 // - #000000 -> var(--color-foreground) 7 // - black -> var(--color-foreground) 8 // - #28333D -> var(--color-foreground) 9 // - white -> var(--color-background) 10 // - #FFFFFF -> var(--color-background) 11 // - #EAEAFF -> var(--color-primary-level-1) 12 // - #313166 -> var(--color-primary-level-6) 13 // - #EBEFF3 -> var(--color-foreground-level-2); 14 15 import fs from 'fs'; 16 import path from 'path'; 17 18 const filePath = process.argv[2]; 19 if (!filePath) { 20 console.error('Please provide a file path as an argument.'); 21 process.exit(1); 22 } 23 24 const fileName = path.basename(filePath); 25 26 const fileContent = fs.readFileSync(filePath, 'utf8'); 27 28 const updatedContent = fileContent 29 .replace(/#5555FF/g, 'var(--color-primary)') 30 .replace(/#C0C0FF/g, 'var(--color-primary-level-2)') 31 .replace(/#000000/g, 'var(--color-foreground)') 32 .replace(/black/g, 'var(--color-foreground)') 33 .replace(/#28333D/g, 'var(--color-foreground)') 34 .replace(/white/g, 'var(--color-background)') 35 .replace(/#FFFFFF/g, 'var(--color-background)') 36 .replace(/#EAEAFF/g, 'var(--color-primary-level-1)') 37 .replace(/#313166/g, 'var(--color-primary-level-6)') 38 .replace(/#EBEFF3/g, 'var(--color-foreground-level-2)'); 39 40 // replace file in place 41 fs.writeFileSync(filePath, updatedContent, 'utf8'); 42 console.log(`Updated ${fileName} with theme variables.`);