MCPcopy Index your code
hub / github.com/scriptscat/scriptcat / createSampleRanges

Function createSampleRanges

src/pkg/utils/encoding.ts:75–108  ·  view source on GitHub ↗
(
  data: Uint8Array,
  rangeSize = CHECK_SIZE,
  maxRanges = MAX_UTF8_SAMPLE_RANGES
)

Source from the content-addressed store, hash-verified

73};
74
75const createSampleRanges = (
76 data: Uint8Array,
77 rangeSize = CHECK_SIZE,
78 maxRanges = MAX_UTF8_SAMPLE_RANGES
79): ByteRange[] => {
80 const n = data.length;
81 if (n <= rangeSize) return [[0, n]];
82
83 const ranges: ByteRange[] = [];
84 const dk = n >>> 1;
85 const rk = rangeSize >>> 1;
86 addSampleRange(ranges, data, 0, rangeSize);
87 addSampleRange(ranges, data, Math.max(0, dk - rk), Math.min(n, dk + rk));
88 addSampleRange(ranges, data, Math.max(0, n - rangeSize), n);
89
90 let nextHighByteSearchStart = rangeSize;
91 while (ranges.length < maxRanges && nextHighByteSearchStart < n) {
92 let highByteIndex = -1;
93 for (let i = nextHighByteSearchStart; i < n; i++) {
94 if (data[i] >= 0x80) {
95 highByteIndex = i;
96 break;
97 }
98 }
99 if (highByteIndex < 0) break;
100
101 const start = Math.max(0, highByteIndex - rk);
102 const end = Math.min(data.length, start + rangeSize);
103 addSampleRange(ranges, data, start, end);
104 nextHighByteSearchStart = Math.max(highByteIndex + rangeSize, end);
105 }
106
107 return ranges.sort((a, b) => a[0] - b[0]);
108};
109
110const createLegacyDetectionSample = (data: Uint8Array): Uint8Array => {
111 const n = data.length;

Callers 1

assertLikelyUtf8Function · 0.85

Calls 2

addSampleRangeFunction · 0.85
sortMethod · 0.80

Tested by

no test coverage detected