mirror of
https://github.com/muety/wakapi.git
synced 2023-08-10 21:12:56 +03:00
fix: include icon library to fix missing emojis on some platforms (resolve #119)
This commit is contained in:
80
scripts/bundle_icons.js
Executable file
80
scripts/bundle_icons.js
Executable file
@ -0,0 +1,80 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
'use strict'
|
||||
|
||||
// Usage:
|
||||
// yarn add -D @iconify/json-tools @iconify/json
|
||||
// node bundle_icons.js
|
||||
// https://iconify.design/docs/icon-bundles/
|
||||
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const { Collection } = require('@iconify/json-tools')
|
||||
|
||||
let icons = [
|
||||
'fxemoji:key',
|
||||
'fxemoji:rocket',
|
||||
'fxemoji:satelliteantenna',
|
||||
'fxemoji:lockandkey',
|
||||
'fxemoji:clipboard',
|
||||
'flat-color-icons:donate',
|
||||
'flat-color-icons:clock',
|
||||
'codicon:github-inverted',
|
||||
'ant-design:check-square-filled',
|
||||
'emojione-v1:white-heavy-check-mark',
|
||||
'emojione-v1:alarm-clock',
|
||||
'emojione-v1:warning',
|
||||
'emojione-v1:backhand-index-pointing-right',
|
||||
'twemoji:light-bulb',
|
||||
'noto:play-button',
|
||||
'noto:stop-button',
|
||||
'noto:lock',
|
||||
'twemoji:gear',
|
||||
'eva:corner-right-down-fill',
|
||||
'bi:heart-fill',
|
||||
]
|
||||
|
||||
const output = path.normalize(path.join(__dirname, '../static/assets/icons.js'))
|
||||
const pretty = false
|
||||
|
||||
// Sort icons by collections: filtered[prefix][array of icons]
|
||||
let filtered = {}
|
||||
icons.forEach(icon => {
|
||||
let parts = icon.split(':'),
|
||||
prefix
|
||||
|
||||
if (parts.length > 1) {
|
||||
prefix = parts.shift()
|
||||
icon = parts.join(':')
|
||||
} else {
|
||||
parts = icon.split('-')
|
||||
prefix = parts.shift()
|
||||
icon = parts.join('-')
|
||||
}
|
||||
if (filtered[prefix] === void 0) {
|
||||
filtered[prefix] = []
|
||||
}
|
||||
if (filtered[prefix].indexOf(icon) === -1) {
|
||||
filtered[prefix].push(icon)
|
||||
}
|
||||
})
|
||||
|
||||
// Parse each collection
|
||||
let code = ''
|
||||
Object.keys(filtered).forEach(prefix => {
|
||||
let collection = new Collection()
|
||||
if (!collection.loadIconifyCollection(prefix)) {
|
||||
console.error('Error loading collection', prefix)
|
||||
return
|
||||
}
|
||||
|
||||
code += collection.scriptify({
|
||||
icons: filtered[prefix],
|
||||
optimize: true,
|
||||
pretty: pretty
|
||||
})
|
||||
})
|
||||
|
||||
// Save code
|
||||
fs.writeFileSync(output, code, 'utf8')
|
||||
console.log('Saved bundle to', output, ' (' + code.length + ' bytes)')
|
Reference in New Issue
Block a user