• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

visgl / loaders.gl / 20382848403

19 Dec 2025 09:20PM UTC coverage: 35.219% (+0.1%) from 35.095%
20382848403

push

github

web-flow
feat: Upgrade to handle ArrayBufferLike (#3271)

1190 of 2002 branches covered (59.44%)

Branch coverage included in aggregate %.

157 of 269 new or added lines in 41 files covered. (58.36%)

3 existing lines in 3 files now uncovered.

37536 of 107957 relevant lines covered (34.77%)

0.79 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

46.81
/modules/loader-utils/src/lib/binary-utils/get-first-characters.ts
1
// loaders.gl
1✔
2
// SPDX-License-Identifier: MIT
1✔
3
// Copyright (c) vis.gl contributors
1✔
4

1✔
5
/**
1✔
6
 * Get the first characters from a binary file (interpret the first bytes as an ASCII string)
1✔
7
 * @param data
1✔
8
 * @param length
1✔
9
 * @returns
1✔
10
 */
1✔
11
export function getFirstCharacters(data: string | ArrayBuffer, length: number = 5): string {
1✔
12
  if (typeof data === 'string') {
×
13
    return data.slice(0, length);
×
14
  } else if (ArrayBuffer.isView(data)) {
×
15
    // Typed Arrays can have offsets into underlying buffer
×
16
    return getMagicString(data.buffer, data.byteOffset, length);
×
17
  } else if (data instanceof ArrayBuffer) {
×
18
    const byteOffset = 0;
×
19
    return getMagicString(data, byteOffset, length);
×
20
  }
×
21
  return '';
×
22
}
×
23

1✔
24
/**
1✔
25
 * Gets a magic string from a "file"
1✔
26
 * Typically used to check or detect file format
1✔
27
 * @param arrayBuffer
1✔
28
 * @param byteOffset
1✔
29
 * @param length
1✔
30
 * @returns
1✔
31
 */
1✔
32
export function getMagicString(
1✔
NEW
33
  arrayBuffer: ArrayBufferLike,
×
34
  byteOffset: number,
×
35
  length: number
×
36
): string {
×
37
  if (arrayBuffer.byteLength <= byteOffset + length) {
×
38
    return '';
×
39
  }
×
40
  const dataView = new DataView(arrayBuffer);
×
41
  let magic = '';
×
42
  for (let i = 0; i < length; i++) {
×
43
    magic += String.fromCharCode(dataView.getUint8(byteOffset + i));
×
44
  }
×
45
  return magic;
×
46
}
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc