pl-fe: fix type definitions

Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
This commit is contained in:
marcin mikołajczak
2024-10-17 00:14:27 +02:00
parent 8ddc5a797c
commit 9e723fcf95
6 changed files with 63 additions and 67 deletions

View File

@ -1,11 +1,61 @@
import data from '@emoji-mart/data/sets/14/twitter.json';
import type { EmojiData } from './types';
interface NativeEmoji {
unified: string;
native: string;
x: number;
y: number;
}
interface CustomEmoji {
src: string;
}
interface Emoji<T> {
id: string;
name: string;
keywords: string[];
skins: T[];
version?: number;
}
interface EmojiCategory {
id: string;
emojis: string[];
}
interface EmojiMap {
[s: string]: Emoji<NativeEmoji>;
}
interface EmojiAlias {
[s: string]: string;
}
interface EmojiSheet {
cols: number;
rows: number;
}
interface EmojiData {
categories: EmojiCategory[];
emojis: EmojiMap;
aliases: EmojiAlias;
sheet: EmojiSheet;
}
const emojiData = data as EmojiData;
const { categories, emojis, aliases, sheet } = emojiData;
export {
type NativeEmoji,
type CustomEmoji,
type Emoji,
type EmojiCategory,
type EmojiMap,
type EmojiAlias,
type EmojiSheet,
type EmojiData,
categories,
emojis,
aliases,

View File

@ -2,7 +2,7 @@ import split from 'graphemesplit';
import unicodeMapping from './mapping';
import type { Emoji as EmojiMart, CustomEmoji as EmojiMartCustom } from './types';
import type { Emoji as EmojiMart, CustomEmoji as EmojiMartCustom } from './data';
import type { CustomEmoji as BaseCustomEmoji } from 'pl-api';
/*

View File

@ -1,6 +1,7 @@
import { createRequire } from 'node:module';
import type { EmojiData, UnicodeMap } from './types';
import type { EmojiData } from './data';
import type { UnicodeMap } from './mapping';
const require = createRequire(import.meta.url);
const data = require('@emoji-mart/data/sets/14/twitter.json');

View File

@ -1,3 +1,10 @@
import type { UnicodeMap } from './types';
interface UnicodeMap {
[s: string]: {
unified: string;
shortcode: string;
};
}
export default import.meta.compileTime<UnicodeMap>('./mapping-compiletime.ts');
export type { UnicodeMap };

View File

@ -1,7 +1,7 @@
import FlexSearch from 'flexsearch';
import type { EmojiData } from './data';
import type { Emoji } from './index';
import type { EmojiData } from './types';
import type { CustomEmoji } from 'pl-api';
let emojis: EmojiData['emojis'] = {};

View File

@ -1,62 +0,0 @@
interface UnicodeMap {
[s: string]: {
unified: string;
shortcode: string;
};
}
interface NativeEmoji {
unified: string;
native: string;
x: number;
y: number;
}
interface CustomEmoji {
src: string;
}
interface Emoji<T> {
id: string;
name: string;
keywords: string[];
skins: T[];
version?: number;
}
interface EmojiCategory {
id: string;
emojis: string[];
}
interface EmojiMap {
[s: string]: Emoji<NativeEmoji>;
}
interface EmojiAlias {
[s: string]: string;
}
interface EmojiSheet {
cols: number;
rows: number;
}
interface EmojiData {
categories: EmojiCategory[];
emojis: EmojiMap;
aliases: EmojiAlias;
sheet: EmojiSheet;
}
export type {
UnicodeMap,
NativeEmoji,
CustomEmoji,
Emoji,
EmojiCategory,
EmojiMap,
EmojiAlias,
EmojiSheet,
EmojiData,
};