MCPcopy Index your code
hub / github.com/fontsource/fontsource / codepointsToRangeString

Function codepointsToRangeString

packages/core/src/utils/unicode.ts:4–30  ·  view source on GitHub ↗
(
	codepoints: number[] | undefined,
)

Source from the content-addressed store, hash-verified

2
3/** Convert codepoints into a CSS `unicode-range` string. */
4export const codepointsToRangeString = (
5 codepoints: number[] | undefined,
6): string => {
7 if (!codepoints || codepoints.length === 0) {
8 return '';
9 }
10
11 const sorted = Array.from(new Set(codepoints)).sort((a, b) => a - b);
12 const ranges: (number | [number, number])[] = [];
13
14 let rangeStart = sorted[0] as number;
15 for (let i = 1; i <= sorted.length; i++) {
16 const current = sorted[i];
17 const prev = sorted[i - 1] as number;
18
19 if (current !== prev + 1) {
20 if (rangeStart === prev) {
21 ranges.push(rangeStart);
22 } else {
23 ranges.push([rangeStart, prev]);
24 }
25 rangeStart = current as number;
26 }
27 }
28
29 return formatUnicodeRanges(ranges).join(', ').toUpperCase();
30};

Callers 3

generateSubsetDataFunction · 0.90
buildFontFunction · 0.90
utils.test.tsFile · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected