aboutsummaryrefslogtreecommitdiff
path: root/src/util/TypedEvent.ts
diff options
context:
space:
mode:
authorAndrew Kim <andrewdkim@users.noreply.github.com>2019-03-05 18:51:20 -0500
committerAndrew Kim <andrewdkim@users.noreply.github.com>2019-03-05 18:51:20 -0500
commit7f93e6639e8fee3e3760d13c69d65b343875091a (patch)
treed29b45310f92a53935177d969ce3c1bee9920c32 /src/util/TypedEvent.ts
parent9b839a93b98b850aa77087218d4862b97fb24d15 (diff)
parent2cc5eb6ff512dc6128d25903bcb852f25bcadcca (diff)
Merge branch 'master' of https://github.com/browngraphicslab/Dash-Web into PDFNode
Diffstat (limited to 'src/util/TypedEvent.ts')
-rw-r--r--src/util/TypedEvent.ts42
1 files changed, 0 insertions, 42 deletions
diff --git a/src/util/TypedEvent.ts b/src/util/TypedEvent.ts
deleted file mode 100644
index 0714a7f5c..000000000
--- a/src/util/TypedEvent.ts
+++ /dev/null
@@ -1,42 +0,0 @@
-export interface Listener<T> {
- (event: T): any;
-}
-
-export interface Disposable {
- dispose(): void;
-}
-
-/** passes through events as they happen. You will not get events from before you start listening */
-export class TypedEvent<T> {
- private listeners: Listener<T>[] = [];
- private listenersOncer: Listener<T>[] = [];
-
- on = (listener: Listener<T>): Disposable => {
- this.listeners.push(listener);
- return {
- dispose: () => this.off(listener)
- };
- }
-
- once = (listener: Listener<T>): void => {
- this.listenersOncer.push(listener);
- }
-
- off = (listener: Listener<T>) => {
- var callbackIndex = this.listeners.indexOf(listener);
- if (callbackIndex > -1) this.listeners.splice(callbackIndex, 1);
- }
-
- emit = (event: T) => {
- /** Update any general listeners */
- this.listeners.forEach((listener) => listener(event));
-
- /** Clear the `once` queue */
- this.listenersOncer.forEach((listener) => listener(event));
- this.listenersOncer = [];
- }
-
- pipe = (te: TypedEvent<T>): Disposable => {
- return this.on((e) => te.emit(e));
- }
-} \ No newline at end of file