const fs = require('fs') const mkdirp = require('mkdirp'); const dirnames = process.mainModule.filename.includes('pro') ? ['solid', 'linear'] : ['free', 'brand', 'flag'] const prefixes = { brand: 'cib-', flag: 'cif-', free: 'cil-', linear: 'cil-', solid: 'cis-' } const getAttributeValue = (string, attribute) => { const regex = new RegExp(`${attribute}="([^"]+)"`, 'g') return string.match(regex, '')[0] .match(/"(.*?)"/ig, '')[0] .replace(/"/g, '') } mkdirp('sprites/', function(err) { if (err) { return } dirnames.forEach(setName => { const dirname = `svg/${setName}/` const svgs = fs.readdirSync(dirname) let symbols = [] svgs.forEach((svg, idx, svgs) => { let symbol = {} const file = dirname + svg const content = fs.readFileSync(file, 'utf8') const viewBox = getAttributeValue(content, 'viewBox') const computedContent = content.replace(/(]+)>)|(<\/svg>)/ig, '') .replace(/\n/g, '').replace(/"/g, '\'') .replace('', '') symbol = `\n${computedContent}\n` idx === svgs.length - 1 ? symbols.push(symbol) : symbols.push(`${symbol}\n`) }) fs.writeFile( `sprites/${setName}.svg`, ``, () => '' ) }) })