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

i18next / i18next / #11965

08 Jun 2023 07:01AM UTC coverage: 56.318% (-38.9%) from 95.213%
#11965

push

web-flow
Redesign `t` function types (#1911)

* Redesign t function types

* Add extra tests for t function and fix interpolation types

* Bump typescript version

574 of 1535 branches covered (37.39%)

517 of 918 relevant lines covered (56.32%)

24.67 hits per line

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

52.78
/src/EventEmitter.js
1
class EventEmitter {
2
  constructor() {
3
    this.observers = {};
1✔
4
  }
5

6
  on(events, listener) {
1✔
7
    events.split(' ').forEach((event) => {
6!
8
      this.observers[event] = this.observers[event] || [];
16!
9
      this.observers[event].push(listener);
3!
10
    });
1!
11
    return this;
3!
12
  }
3!
13

1✔
14
  off(event, listener) {
15
    if (!this.observers[event]) return;
16✔
16
    if (!listener) {
16✔
17
      delete this.observers[event];
18
      return;
1✔
19
    }
20

21
    this.observers[event] = this.observers[event].filter((l) => l !== listener);
×
22
  }
×
23

×
24
  emit(event, ...args) {
×
25
    if (this.observers[event]) {
26
      const cloned = [].concat(this.observers[event]);
×
27
      cloned.forEach((observer) => {
28
        observer(...args);
29
      });
30
    }
31

×
32
    if (this.observers['*']) {
×
33
      const cloned = [].concat(this.observers['*']);
×
34
      cloned.forEach((observer) => {
×
35
        observer.apply(observer, [event, ...args]);
36
      });
×
37
    }
×
38
  }
39
}
40

41
export default EventEmitter;
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