UNPKG

@deepkit/desktop-ui

Version:

Library for desktop UI widgets in Angular 10+

62 lines (48 loc) 1.72 kB
import {readFile, writeFile} from "fs-extra"; (async () => { //this was created by using package `emoji-datasource` const file = await readFile('src/components/emoji/emoji_pretty.json', 'utf8'); const result: {[name: string]: any} = {}; const categories: {[name: string]: string[]} = {}; const fileEmojis: any[] = JSON.parse(file); fileEmojis.sort((a, b) => { return a.sort_order < b.sort_order ? -1 : +1; }); for (const emoji of fileEmojis) { result[emoji['short_name']] = { id: emoji['unified'], name: emoji['name'] || emoji['short_name'], shortName: emoji['short_name'], x: emoji['sheet_x'], y: emoji['sheet_y'], }; if (!categories[emoji['category']]) { categories[emoji['category']] = [emoji['short_name']]; } else { categories[emoji['category']].push(emoji['short_name']); } } const categoriesNormalized = []; for (const [name, emojis] of Object.entries(categories)) { categoriesNormalized.push({ name: name, emojis: emojis, }); } const mapTS = ` export interface Emoji { id: string; name: string; shortName: string; x: number; y: number; } export interface EmojiCategory { name: string; emojis: string[]; } export const emojis: {[id: string]: Emoji} = ${JSON.stringify(result)}; export const categories: EmojiCategory[] = ${JSON.stringify(categoriesNormalized)}; `; await writeFile('src/components/emoji/emojis.ts', mapTS); })();