tabler-icons/.build/update-icons-unicode.mjs

48 lines
1.1 KiB
JavaScript

import { globSync, glob } from 'glob'
import fs from 'fs'
import path from 'path'
import { ICONS_SRC_DIR } from './helpers.mjs'
const getMaxUnicode = () => {
const files = globSync(path.join(ICONS_SRC_DIR, '**/*.svg'))
let maxUnicode = 0
files.forEach(function(file) {
const svgFile = fs.readFileSync(file).toString()
svgFile.replace(/unicode: "([a-f0-9.]+)"/i, function(m, unicode) {
const newUnicode = parseInt(unicode, 16)
if (newUnicode) {
maxUnicode = Math.max(maxUnicode, newUnicode)
}
})
})
return maxUnicode
}
let maxUnicode = getMaxUnicode()
console.log(`Max unicode: ${maxUnicode}`)
const files = globSync(path.join(ICONS_SRC_DIR, '**/*.svg'))
files.forEach(function(file) {
let svgFile = fs.readFileSync(file).toString()
if (!svgFile.match(/\nunicode: "?([a-f0-9.]+)"?/i)) {
maxUnicode++
const unicode = maxUnicode.toString(16)
if (unicode) {
svgFile = svgFile.replace(/-->\n<svg/i, function(m) {
return `unicode: "${unicode}"\n${m}`
})
console.log(`Add unicode "${unicode}" to "${file}"`)
fs.writeFileSync(file, svgFile, 'utf8')
}
}
})