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

visgl / loaders.gl / 24153816851

08 Apr 2026 07:17PM UTC coverage: 53.247% (-12.1%) from 65.319%
24153816851

push

github

web-flow
chore: Move from tape to vitest (#3351)

8651 of 17291 branches covered (50.03%)

Branch coverage included in aggregate %.

7 of 7 new or added lines in 1 file covered. (100.0%)

2031 existing lines in 296 files now uncovered.

17563 of 31940 relevant lines covered (54.99%)

5279.54 hits per line

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

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

5
/**
6
 * Get the first characters from a binary file (interpret the first bytes as an ASCII string)
7
 * @param data
8
 * @param length
9
 * @returns
10
 */
11
export function getFirstCharacters(data: string | ArrayBuffer, length: number = 5): string {
2✔
12
  if (typeof data === 'string') {
2!
13
    return data.slice(0, length);
2✔
UNCOV
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

24
/**
25
 * Gets a magic string from a "file"
26
 * Typically used to check or detect file format
27
 * @param arrayBuffer
28
 * @param byteOffset
29
 * @param length
30
 * @returns
31
 */
32
export function getMagicString(
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