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

project-slippi / slippi-js / 19973536637

05 Dec 2025 07:18PM UTC coverage: 81.336% (+0.08%) from 81.254%
19973536637

push

github

web-flow
Refactor SlippiGame to be web-compatible by default (#150)

* use EventTarget instead of event emitter

* fix event emitter shim

* stop using EventEmitter in stats

* it works!

* fix imports and typings

* create two distinct index.ts files for the different environments

* dont use accessor cuz it causes issues or something

* i think this actually works

* use cross env for windows env

* add node subpath to exports

* i think it actually works

* dts is not very configurable so use rollup directly instead

* don't hardcode filenames

* fix lint not working

* update readme to include distinction between web and node exports

* update example to use the node export

* fix windows builds

* separate common from other node exports

* i dont think slpReader should actually be exported

* for typesafety, don't accept string as input on the web

* remove unused dependency

* chore: fix eslint error

* minify for production

* chore(deps): remove unused lodash-es dependency

* chore(deps): remove tslib dependency

* reduce duplication

* reorganise structure

* try to fix windows build

* simplify build config

* add old style exports for backwards compatibility

* simplify browser constructor

* rename node/nodeUtils to just node/utils

* fix lint

* update error message with explicit node import path

* fix missing ws dependency issue with enet

* update package-lock.json

* update date-fns to match launcher version

* simplify buffer input ref creation

* make slpstream web-first

* fix issue with slp parsing expecting a frame

* create a single TextDecoder

* use .subarray() instead of .slice() where possible

* rename TypedEventTarget -> TypedEventEmitter

* try to fix build taking forever

* simplify TypedEventEmitter

* make node event emitters also type-safe

* add a once() method to event emitter

* deps: see if upgrading deps fixes random macos hangs

* working abstract class impl

* add missing getFilePath override

* bundle ubjson with requi... (continued)

694 of 928 branches covered (74.78%)

Branch coverage included in aggregate %.

158 of 178 new or added lines in 16 files covered. (88.76%)

1960 of 2335 relevant lines covered (83.94%)

119971.77 hits per line

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

75.0
/src/common/utils/slpInputRef.ts
1
import type { BinaryLike } from "./bufferHelpers";
2
import { bufferCopy, byteLength } from "./bufferHelpers";
12✔
3

4
export interface SlpInputRef {
5
  read(targetBuffer: Uint8Array, offset: number, length: number, position: number): number;
6
  size(): number;
7
  open(): void;
8
  close(): void;
9
}
10

11
export class SlpBufferInputRef implements SlpInputRef {
12✔
12
  public constructor(private readonly buffer: BinaryLike) {}
4✔
13

14
  public open(): void {
15
    // Do nothing
16
  }
17

18
  public size(): number {
19
    return byteLength(this.buffer);
18,693✔
20
  }
21

22
  public close(): void {
23
    // Do nothing
24
  }
25

26
  public read(targetBuffer: Uint8Array, offset: number, length: number, position: number): number {
27
    if (position >= this.size()) {
18,633!
NEW
28
      return 0;
×
29
    }
30
    return bufferCopy(this.buffer, targetBuffer, offset, position, position + length);
18,633✔
31
  }
32
}
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