• 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

0.0
/modules/compression/src/workers/compression-worker.ts
1
// loaders.gl
2
// SPDX-License-Identifier: MIT
3
// Copyright (c) vis.gl contributors
4

5
import {createWorker} from '@loaders.gl/worker-utils';
6

7
// Compressors
8
import {NoCompression} from '../lib/no-compression';
9
import {BrotliCompression} from '../lib/brotli-compression';
10
import {DeflateCompression} from '../lib/deflate-compression';
11
import {GZipCompression} from '../lib/gzip-compression';
12
import {LZ4Compression} from '../lib/lz4-compression';
13
// import {LZOCompression} from '../lib/lzo-compression';
14
import {SnappyCompression} from '../lib/snappy-compression';
15
import {ZstdCompression} from '../lib/zstd-compression';
16

17
// Import big dependencies
18

19
// import brotli from 'brotli'; - brotli has problems with decompress in browsers
20
// import brotliDecompress from 'brotli/decompress';
21
import lz4js from 'lz4js';
22
// import lzo from 'lzo';
23
// import {ZstdCodec} from 'zstd-codec';
24

25
// Inject large dependencies through Compression constructor options
UNCOV
26
const modules = {
×
27
  // brotli has problems with decompress in browsers
28
  // brotli: {
29
  //   decompress: brotliDecompress,
30
  //   compress: () => {
31
  //     throw new Error('brotli compress');
32
  //   }
33
  // },
34
  lz4js
35
  // lzo,
36
  // 'zstd-codec': ZstdCodec
37
};
38

39
/** @type {Compression[]} */
UNCOV
40
const COMPRESSIONS = [
×
41
  new NoCompression({modules}),
42
  new BrotliCompression({modules}),
43
  new DeflateCompression({modules}),
44
  new GZipCompression({modules}),
45
  // new LZOCompression({modules}),
46
  new LZ4Compression({modules}),
47
  new SnappyCompression({modules}),
48
  new ZstdCompression({modules})
49
];
50

UNCOV
51
createWorker(async (data, options = {}) => {
×
UNCOV
52
  const operation = getOperation(String(options?.operation));
×
UNCOV
53
  const compression = getCompression(String(options?.compression));
×
54

55
  // @ts-ignore
UNCOV
56
  switch (operation) {
×
57
    case 'compress':
UNCOV
58
      return await compression.compress(data);
×
59
    case 'decompress':
UNCOV
60
      return await compression.decompress(data);
×
61
    default:
62
      throw new Error('invalid option');
×
63
  }
64
});
65

66
function getOperation(operation: string): 'compress' | 'decompress' {
UNCOV
67
  switch (operation) {
×
68
    case 'compress':
69
    case 'deflate':
UNCOV
70
      return 'compress';
×
71
    case 'decompress':
72
    case 'inflate':
UNCOV
73
      return 'decompress';
×
74
    default:
75
      throw new Error(
×
76
        `@loaders.gl/compression: Unsupported operation ${operation}. Expected 'compress' or 'decompress'`
77
      );
78
  }
79
}
80

81
function getCompression(name: string) {
UNCOV
82
  const Compression = COMPRESSIONS.find(compression_ => name === compression_.name);
×
UNCOV
83
  if (!Compression) {
×
84
    throw new Error(`@loaders.gl/compression: Unsupported compression ${name}`);
×
85
  }
UNCOV
86
  return Compression;
×
87
}
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