Skip to content

Commit a78a251

Browse files
author
Mathieu Bour
committed
feat(events): forward EventEmitter interface to the underlying client
1 parent 7178ebe commit a78a251

File tree

4 files changed

+81
-5
lines changed

4 files changed

+81
-5
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changelog
22

3+
## [Version 0.2.0 - Forward `EventEmitter` interface](https://github.com/csquare-ai/ldapjs-client/releases/tag/0.2.0)
4+
5+
- **feat**(events): forward `EventEmitter` interface to the underlying client
6+
37
## [Version 0.1.4 - Export `ClientOptions` interface](https://github.com/csquare-ai/ldapjs-client/releases/tag/0.1.4)
48

59
- **feat**(types): export `ClientOptions` interface

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@csquare/ldapjs-client",
3-
"version": "0.1.4",
3+
"version": "0.2.0",
44
"description": "Promisified wrapper around the ldapjs client.",
55
"keywords": [
66
"ldap",

src/client.ts

Lines changed: 74 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,89 @@ import {
1515
} from 'ldapjs';
1616
import { ConnectionOptions } from 'tls';
1717

18+
// noinspection JSUnusedGlobalSymbols
19+
1820
/**
1921
* Promisified wrapper around {@see createClient}.
2022
*/
21-
export class Client extends EventEmitter {
23+
export class Client implements EventEmitter {
2224
private readonly ldapjs: _Client;
2325

2426
constructor(options: ClientOptions) {
25-
super();
2627
this.ldapjs = _createClient(options);
2728
}
2829

30+
// EventEmitter
31+
addListener(event: string | symbol, listener: (...args: any[]) => void): this {
32+
this.ldapjs.addListener(event, listener);
33+
return this;
34+
}
35+
36+
on(event: string | symbol, listener: (...args: any[]) => void): this {
37+
this.ldapjs.on(event, listener);
38+
return this;
39+
}
40+
41+
once(event: string | symbol, listener: (...args: any[]) => void): this {
42+
this.ldapjs.once(event, listener);
43+
return this;
44+
}
45+
46+
removeListener(event: string | symbol, listener: (...args: any[]) => void): this {
47+
this.ldapjs.removeListener(event, listener);
48+
return this;
49+
}
50+
51+
off(event: string | symbol, listener: (...args: any[]) => void): this {
52+
this.ldapjs.off(event, listener);
53+
return this;
54+
}
55+
56+
removeAllListeners(event?: string | symbol): this {
57+
this.ldapjs.removeAllListeners(event);
58+
return this;
59+
}
60+
61+
setMaxListeners(n: number): this {
62+
this.ldapjs.setMaxListeners(n);
63+
return this;
64+
}
65+
66+
getMaxListeners(): number {
67+
return this.ldapjs.getMaxListeners();
68+
}
69+
70+
listeners(event: string | symbol): Function[] {
71+
return this.ldapjs.listeners(event);
72+
}
73+
74+
rawListeners(event: string | symbol): Function[] {
75+
return this.ldapjs.rawListeners(event);
76+
}
77+
78+
emit(event: string | symbol, ...args: any[]): boolean {
79+
return this.ldapjs.emit(event, ...args);
80+
}
81+
82+
listenerCount(event: string | symbol): number {
83+
return this.ldapjs.listenerCount(event);
84+
}
85+
86+
prependListener(event: string | symbol, listener: (...args: any[]) => void): this {
87+
this.ldapjs.prependListener(event, listener);
88+
return this;
89+
}
90+
91+
prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this {
92+
this.ldapjs.prependListener(event, listener);
93+
return this;
94+
}
95+
96+
eventNames(): (string | symbol)[] {
97+
return this.ldapjs.eventNames();
98+
}
99+
100+
// ldapjs
29101
get connected() {
30102
return this.ldapjs.connected;
31103
}

0 commit comments

Comments
 (0)