-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathtypes.ts
103 lines (93 loc) · 2.26 KB
/
types.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
97
98
99
100
101
102
103
export interface FontAwesomeOptions {
/**
* The FontAwesome package type we should use. Defaults to 'free'.
*/
package?: PackageType;
/**
* Requested font output targets.
*/
targetFormats?: TargetFormat[];
}
export type PackageType = "free" | "pro";
export type Subset =
| "solid"
| "light"
| "regular"
| "thin"
| "brands"
| "duotone"
| "sharp-solid"
| "sharp-regular"
| "sharp-light"
| "sharp-thin"
| "duotone-light"
| "duotone-regular"
| "duotone-thin"
| "sharp-duotone-light"
| "sharp-duotone-regular"
| "sharp-duotone-solid"
| "sharp-duotone-thin";
export type GlyphName = string;
export type SubsetOption = GlyphName[] | Partial<Record<Subset, GlyphName[]>>;
export type TargetFormat = "woff" | "woff2" | "sfnt";
/**
* Type of individual result / item inside the YAML file.
*/
export interface FAIconType {
/**
* Label / display name of the icon.
*/
label: string;
/**
* Unicode character for the icon.
*/
unicode: string;
/**
* Subsets this icon is available in.
*/
styles: Partial<Subset>[];
/*
* Alternative means of identifying the icon.
*/
aliases?: {
names?: string[];
unicodes?: {
composite?: string[];
primary?: string[];
secondary?: string[];
};
};
}
export type FAFamilyType = "classic" | "duotone" | "sharp" | "sharp-duotone";
export type FAStyleType = "solid" | "thin" | "light" | "regular" | "brands";
/**
* Type of individual result / item inside the YAML file.
*/
export interface FAFamilyMetaType {
/**
* Label / display name of the icon.
*/
label: string;
/**
* Unicode character for the icon.
*/
unicode: string;
/**
* Family styles available for each icon & family type.
*/
familyStylesByLicense: Record<
PackageType,
{
family: FAFamilyType;
style: FAStyleType;
}[]
>;
}
/**
* Type of the YAML files bundled with FontAwesome.
*/
export type IconYAML = Record<GlyphName, FAIconType | undefined>;
/**
* Type of the YAML files bundled with FontAwesome.
*/
export type IconFamilyYAML = Record<GlyphName, FAFamilyMetaType | undefined>;