forked from twitter/twemoji
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.d.ts
96 lines (91 loc) · 2.98 KB
/
index.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
/**
* If given to parse, this callback will be invoked per each found emoji.
*
* If this callback returns a falsy value instead of a valid `src` to use for the image, nothing will actually change for that specific emoji.
*
* @param icon the lower case HEX code point i.e. "1f4a9"
* @param options all info for this parsing operation
* @param variant the optional \uFE0F ("as image") variant, in case this info is anyhow meaningful. By default this is ignored.
*/
export type ParseCallback = (icon: string, options: object, variant: string) => string | false;
export type ReplacerFunction = (substring: string, ...args: any[]) => string;
export type TwemojiOptions = {
/**
* Default: MaxCDN
*/
base?: string;
/**
* Default: .png
*/
ext?: string;
/**
* Default: emoji
*/
className?: string;
/**
* Default: 72x72
*/
size?: string | number;
/**
* To render with SVG use `folder: svg, ext: .svg`
*/
folder?: string;
/**
* The function to invoke in order to generate image src(s).
*/
callback?: ParseCallback
/**
* The function to invoke in order to generate additional, custom attributes for the image tag.
* Default () => ({})
* @param icon the lower case HEX code point i.e. "1f4a9"
* @param variant variant the optional \uFE0F ("as image") variant, in case this info is anyhow meaningful. By default this is ignored.
*
*/
attributes?(icon: string, variant: string): object;
}
export type Twemoji = {
base: string;
ext: string;
className: string;
size: string;
convert: {
/**
* Given an HEX codepoint, returns UTF16 surrogate pairs.
*
* @param codepoint string generic codepoint, i.e. '1F4A9'
* @return string codepoint transformed into utf16 surrogates pair,
* i.e. \uD83D\uDCA9
*
* @example
* twemoji.convert.fromCodePoint('1f1e8');
* // "\ud83c\udde8"
*
* '1f1e8-1f1f3'.split('-').map(twemoji.convert.fromCodePoint).join('')
* // "\ud83c\udde8\ud83c\uddf3"
*/
fromCodePoint(hexCodePoint: string): string;
/**
* Given UTF16 surrogate pairs, returns the equivalent HEX codepoint.
*
* @param utf16surrogatePairs string generic utf16 surrogates pair, i.e. \uD83D\uDCA9
* @param sep string optional separator for double code points, default='-'
* @return string utf16 transformed into codepoint, i.e. '1F4A9'
*
* @example
* twemoji.convert.toCodePoint('\ud83c\udde8\ud83c\uddf3');
* // "1f1e8-1f1f3"
*
* twemoji.convert.toCodePoint('\ud83c\udde8\ud83c\uddf3', '~');
* // "1f1e8~1f1f3"
*/
toCodePoint(utf16surrogatePairs: string, sep?: string): string;
};
parse<T extends string | HTMLElement>(node: T, options?: TwemojiOptions | ParseCallback): T;
replace(text: string, replacer: string | ReplacerFunction): string;
test(text: string): boolean;
onerror(): void;
};
declare module 'twemoji' {
const twemoji: Twemoji;
export default twemoji;
}