UNPKG

ksk-core

Version:

Core design system components and styles for Kickstart projects

47 lines (39 loc) 1.43 kB
import path from 'path' import webfont from 'webfont' import fs from 'fs/promises' import { fileURLToPath } from 'url' const __dirname = path.dirname(fileURLToPath(import.meta.url)) async function buildIcons() { try { // Read webfont config from package.json const packageJsonPath = path.resolve(__dirname, '..', 'package.json') const packageJson = JSON.parse(await fs.readFile(packageJsonPath, 'utf8')) const webfontConfig = packageJson.webfont const result = await webfont({ ...webfontConfig, files: path.resolve('./public/icons/optimized/*.svg'), glyphTransformFn: (obj) => { // Remove double "icon-" prefix if it exists obj.name = obj.name.replace(/^icon-/, '') return obj }, }) // Write font files and CSS to disk const dest = path.resolve('./public/icons/font') // Write each generated file await fs.mkdir(dest, { recursive: true }) await Promise.all( Object.entries(result).map(async ([filename, content]) => { if (filename === 'woff' || filename === 'woff2' || filename.endsWith('.css')) { const filePath = path.join(dest, `font-icons.${filename.replace('woff', 'woff')}`) await fs.writeFile(filePath, content) } }) ) console.log('Icons built successfully!') } catch (err) { console.error('Error building icons:', err) process.exit(1) } } buildIcons()