diff --git a/docs/design.md b/docs/design.md index 084b596e272..c32455e12ec 100644 --- a/docs/design.md +++ b/docs/design.md @@ -5,7 +5,7 @@ design idea is pretty simple : - main functionalities are split into several subsystems - all subsystems are instantiated by the Hls instance. - each subsystem heavily relies on events for internal/external communications. - - Events are handled using [EventEmitter](https://nodejs.org/api/events.html) + - Events are handled using [EventEmitter3](https://github.com/primus/eventemitter3) - bundled for the browser by [webpack](https://webpack.js.org/) ## Code structure diff --git a/src/demux/demuxer-worker.js b/src/demux/demuxer-worker.js index e0710d6ec82..08bc7afee5a 100644 --- a/src/demux/demuxer-worker.js +++ b/src/demux/demuxer-worker.js @@ -7,7 +7,7 @@ import DemuxerInline from '../demux/demuxer-inline'; import Event from '../events'; import { enableLogs } from '../utils/logger'; -import { EventEmitter } from 'events'; +import { EventEmitter } from 'eventemitter3'; let DemuxerWorker = function (self) { // observer setup diff --git a/src/demux/demuxer.js b/src/demux/demuxer.js index 25ffa95eb68..bd261bd5c4a 100644 --- a/src/demux/demuxer.js +++ b/src/demux/demuxer.js @@ -1,4 +1,4 @@ -import { EventEmitter } from 'events'; +import { EventEmitter } from 'eventemitter3'; import * as work from 'webworkify-webpack'; import Event from '../events'; diff --git a/src/observer.js b/src/observer.js deleted file mode 100644 index 75c3589ac00..00000000000 --- a/src/observer.js +++ /dev/null @@ -1,22 +0,0 @@ -import { EventEmitter } from 'eventemitter3'; - -/** - * @class - * - * Simple adapter sub-class of Nodejs-like EventEmitter. - * - * We simply want to pass along the event-name itself - * in every call to a handler, which is the purpose of our `trigger` method - * extending the standard API. - * - */ -export class Observer extends EventEmitter { - /** - * - * @param {string} event - * @param {any} data - */ - trigger (event, ...data) { - this.emit(event, event, ...data); - } -} diff --git a/src/observer.ts b/src/observer.ts new file mode 100644 index 00000000000..33d265eb752 --- /dev/null +++ b/src/observer.ts @@ -0,0 +1,15 @@ +import { EventEmitter } from 'eventemitter3'; + +/** + * Simple adapter sub-class of Nodejs-like EventEmitter. + */ +export class Observer extends EventEmitter { + /** + * We simply want to pass along the event-name itself + * in every call to a handler, which is the purpose of our `trigger` method + * extending the standard API. + */ + trigger (event: string, ...data: Array): void { + this.emit(event, event, ...data); + } +} diff --git a/tests/unit/controller/eme-controller.js b/tests/unit/controller/eme-controller.js index abbd3550b80..95d41d2a38e 100644 --- a/tests/unit/controller/eme-controller.js +++ b/tests/unit/controller/eme-controller.js @@ -1,6 +1,6 @@ import EMEController from '../../../src/controller/eme-controller'; import HlsMock from '../../mocks/hls.mock'; -import EventEmitter from 'events'; +import { EventEmitter } from 'eventemitter3'; import { ErrorDetails } from '../../../src/errors'; const sinon = require('sinon');