Skip to content

Commit 33d3a6f

Browse files
committed
(chore) @otjs/types: Create Generic Event Emitter Interface
Each event-enabled component gets to extend Generic Event Emitter interface with their set of events and corresponding arguments. Upgraded Mitt dependency to 3.0.1 Signed-off-by: Progyan Bhattacharya <[email protected]>
1 parent 0fbbb0c commit 33d3a6f

File tree

15 files changed

+127
-129
lines changed

15 files changed

+127
-129
lines changed

packages/ace/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
"@types/lodash": "4.14.191"
5050
},
5151
"dependencies": {
52-
"mitt": "3.0.0"
52+
"mitt": "3.0.1"
5353
},
5454
"peerDependencies": {
5555
"@otjs/plaintext": "^0.2.0",

packages/firebase-ace/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
"@otjs/utils": "workspace:*",
5050
"@types/ace": "0.0.48",
5151
"firebase": "9.15.0",
52-
"mitt": "3.0.0"
52+
"mitt": "3.0.1"
5353
},
5454
"dependencies": {
5555
"@otjs/ace": "0.2.1",

packages/firebase-ace/src/firebase-ace.ts

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,11 @@
2424

2525
import { TAceAdapterConstructionOptions } from "@otjs/ace";
2626
import { TFirebaseAdapterConstructionOptions } from "@otjs/firebase-plaintext";
27-
import { TEditorClientEventArgs } from "@otjs/plaintext-editor";
28-
import { IDisposable } from "@otjs/types";
27+
import {
28+
EditorClientEvent,
29+
TEditorClientEventArgs,
30+
} from "@otjs/plaintext-editor";
31+
import { IDisposable, IEventEmitter } from "@otjs/types";
2932
import { Handler } from "mitt";
3033

3134
/**
@@ -40,7 +43,9 @@ export type TFireAceEditorConstructionOptions =
4043
* @public
4144
* FireAce Editor Interface - Public APIs to interact with Collaborative Editor.
4245
*/
43-
export interface IFireAceEditor extends IDisposable {
46+
export interface IFireAceEditor
47+
extends IDisposable,
48+
IEventEmitter<EditorClientEvent, TEditorClientEventArgs> {
4449
/** Returns if the Editor has already been disposed. */
4550
disposed: boolean;
4651
/** Returns Text Content of the Editor. Can be used to both get and set. Returns empty string if already disposed. */
@@ -57,24 +62,6 @@ export interface IFireAceEditor extends IDisposable {
5762
* Returns false if at least one operation has been performed after initialisation for the first time, True otherwise.
5863
*/
5964
isHistoryEmpty(): boolean;
60-
/**
61-
* Add listener to FireAce Editor.
62-
* @param event - Event name.
63-
* @param listener - Event handler callback.
64-
*/
65-
on<Key extends keyof TEditorClientEventArgs>(
66-
event: Key,
67-
listener: Handler<TEditorClientEventArgs[Key]>
68-
): void;
69-
/**
70-
* Remove listener to FireAce Editor.
71-
* @param event - Event name.
72-
* @param listener - Event handler callback (optional).
73-
*/
74-
off<Key extends keyof TEditorClientEventArgs>(
75-
event: Key,
76-
listener?: Handler<TEditorClientEventArgs[Key]>
77-
): void;
7865
}
7966

80-
export { IDisposable };
67+
export { IDisposable, IEventEmitter };

packages/firebase-monaco/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
"@otjs/types": "workspace:*",
4949
"@otjs/utils": "workspace:*",
5050
"firebase": "9.15.0",
51-
"mitt": "3.0.0",
51+
"mitt": "3.0.1",
5252
"monaco-editor": "0.34.1"
5353
},
5454
"dependencies": {

packages/firebase-monaco/src/firebase-monaco.ts

Lines changed: 9 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,11 @@
2424

2525
import { TFirebaseAdapterConstructionOptions } from "@otjs/firebase-plaintext";
2626
import { TMonacoAdapterConstructionOptions } from "@otjs/monaco";
27-
import { TEditorClientEventArgs } from "@otjs/plaintext-editor";
28-
import { IDisposable } from "@otjs/types";
29-
import { Handler } from "mitt";
27+
import {
28+
EditorClientEvent,
29+
TEditorClientEventArgs,
30+
} from "@otjs/plaintext-editor";
31+
import { IDisposable, IEventEmitter } from "@otjs/types";
3032

3133
/**
3234
* @public
@@ -40,7 +42,9 @@ export type TFireMonacoEditorConstructionOptions =
4042
* @public
4143
* FireMonaco Editor Interface - Public APIs to interact with Collaborative Editor.
4244
*/
43-
export interface IFireMonacoEditor extends IDisposable {
45+
export interface IFireMonacoEditor
46+
extends IDisposable,
47+
IEventEmitter<EditorClientEvent, TEditorClientEventArgs> {
4448
/** Returns if the Editor has already been disposed. */
4549
disposed: boolean;
4650
/** Returns Text Content of the Editor. Can be used to both get and set. Returns empty string if already disposed. */
@@ -57,24 +61,6 @@ export interface IFireMonacoEditor extends IDisposable {
5761
* Returns false if at least one operation has been performed after initialisation for the first time, True otherwise.
5862
*/
5963
isHistoryEmpty(): boolean;
60-
/**
61-
* Add listener to FireMonaco Editor.
62-
* @param event - Event name.
63-
* @param listener - Event handler callback.
64-
*/
65-
on<Key extends keyof TEditorClientEventArgs>(
66-
event: Key,
67-
listener: Handler<TEditorClientEventArgs[Key]>
68-
): void;
69-
/**
70-
* Remove listener to FireMonaco Editor.
71-
* @param event - Event name.
72-
* @param listener - Event handler callback (optional).
73-
*/
74-
off<Key extends keyof TEditorClientEventArgs>(
75-
event: Key,
76-
listener?: Handler<TEditorClientEventArgs[Key]>
77-
): void;
7864
}
7965

80-
export { IDisposable };
66+
export { IDisposable, IEventEmitter };

packages/firebase-plaintext/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
"firebase": "9.15.0"
5151
},
5252
"dependencies": {
53-
"mitt": "3.0.0"
53+
"mitt": "3.0.1"
5454
},
5555
"peerDependencies": {
5656
"@otjs/plaintext": "^0.2.0",

packages/monaco/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
"monaco-editor": "0.34.1"
4949
},
5050
"dependencies": {
51-
"mitt": "3.0.0"
51+
"mitt": "3.0.1"
5252
},
5353
"peerDependencies": {
5454
"@otjs/plaintext": "^0.2.0",

packages/plaintext-editor/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
},
5454
"dependencies": {
5555
"@otjs/state-machine": "0.2.1",
56-
"mitt": "3.0.0"
56+
"mitt": "3.0.1"
5757
},
5858
"peerDependencies": {
5959
"@otjs/plaintext": "^0.2.0"

packages/plaintext-editor/src/database-adapter.ts

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@
2424

2525
import { ICursor, TCursor } from "./cursor";
2626
import { IPlainTextOperation } from "@otjs/plaintext";
27-
import { IDisposable } from "@otjs/types";
28-
import { Handler } from "mitt";
27+
import { IDisposable, IEventEmitter } from "@otjs/types";
2928

3029
/**
3130
* @public
@@ -87,25 +86,9 @@ export type TDatabaseAdapterEventArgs = {
8786
* @public
8887
* Database Adapter Interface - This Interface should be implemented over Persistence Layer to have OT capabilities.
8988
*/
90-
export interface IDatabaseAdapter extends IDisposable {
91-
/**
92-
* Add listener to Database Adapter.
93-
* @param event - Event name.
94-
* @param listener - Event handler callback.
95-
*/
96-
on<Key extends keyof TDatabaseAdapterEventArgs>(
97-
event: Key,
98-
listener: Handler<TDatabaseAdapterEventArgs[Key]>
99-
): void;
100-
/**
101-
* Remove listener to Database Adapter.
102-
* @param event - Event name.
103-
* @param listener - Event handler callback (optional).
104-
*/
105-
off<Key extends keyof TDatabaseAdapterEventArgs>(
106-
event: Key,
107-
listener?: Handler<TDatabaseAdapterEventArgs[Key]>
108-
): void;
89+
export interface IDatabaseAdapter
90+
extends IDisposable,
91+
IEventEmitter<DatabaseAdapterEvent, TDatabaseAdapterEventArgs> {
10992
/**
11093
* Tests if any operation has been done yet on the document.
11194
*/

packages/plaintext-editor/src/editor-adapter.ts

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
*/
2424

2525
import { IPlainTextOperation } from "@otjs/plaintext";
26-
import { IDisposable } from "@otjs/types";
26+
import { IDisposable, IEventEmitter } from "@otjs/types";
2727
import { Handler } from "mitt";
2828
import { ICursor } from "./cursor";
2929

@@ -96,30 +96,14 @@ export type TEditorAdapterCursorParams = {
9696
* @public
9797
* Editor Adapter Interface - This Interface should be implemented over Plain Text Editor to have OT functionalities.
9898
*/
99-
export interface IEditorAdapter extends IDisposable {
99+
export interface IEditorAdapter
100+
extends IDisposable,
101+
IEventEmitter<EditorAdapterEvent, TEditorAdapterEventArgs> {
100102
/**
101103
* Returns whether or not Editor Adapter instance will emit event.
102104
* Toggling this value will set/reset event listeners on Editor.
103105
*/
104106
events: boolean;
105-
/**
106-
* Add listener to Editor Adapter.
107-
* @param event - Event name.
108-
* @param listener - Event handler callback.
109-
*/
110-
on<Key extends keyof TEditorAdapterEventArgs>(
111-
event: Key,
112-
listener: Handler<TEditorAdapterEventArgs[Key]>
113-
): void;
114-
/**
115-
* Remove listener to Editor Adapter.
116-
* @param event - Event name.
117-
* @param listener - Event handler callback (optional).
118-
*/
119-
off<Key extends keyof TEditorAdapterEventArgs>(
120-
event: Key,
121-
listener?: Handler<TEditorAdapterEventArgs[Key]>
122-
): void;
123107
/**
124108
* Add Undo callback to maintain sync while doing Undo in Plain Text Editor.
125109
* @param callback - Undo Event Handler.

0 commit comments

Comments
 (0)