larasopp 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Core.d.ts +6 -0
- package/lib/Core.js +10 -0
- package/lib/Subscribe.d.ts +3 -2
- package/lib/Subscribe.js +3 -0
- package/package.json +1 -1
- package/src/Core.ts +14 -1
- package/src/Subscribe.ts +9 -1
package/lib/Core.d.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { Events } from "easy-event-emitter";
|
|
2
|
+
export declare const ListenerEvents: readonly ["subscribe", "unsubscribe"];
|
|
3
|
+
export type TListenerEvents = typeof ListenerEvents[number];
|
|
4
|
+
export type TListenerCallback = (data: {
|
|
5
|
+
channel: string;
|
|
6
|
+
}) => void;
|
|
2
7
|
export type TPermissions = 'public' | 'protected' | 'private';
|
|
3
8
|
export type TMessage<T> = {
|
|
4
9
|
subscribe?: string;
|
|
@@ -36,6 +41,7 @@ declare abstract class Core {
|
|
|
36
41
|
private onClose;
|
|
37
42
|
private onError;
|
|
38
43
|
private onMessage;
|
|
44
|
+
private emitListener;
|
|
39
45
|
get status(): boolean;
|
|
40
46
|
protected send<T>(message: TMessage<T>): void;
|
|
41
47
|
}
|
package/lib/Core.js
CHANGED
|
@@ -3,7 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ListenerEvents = void 0;
|
|
6
7
|
const easy_event_emitter_1 = __importDefault(require("easy-event-emitter"));
|
|
8
|
+
exports.ListenerEvents = ['subscribe', 'unsubscribe'];
|
|
7
9
|
class Core {
|
|
8
10
|
constructor(config) {
|
|
9
11
|
Object.defineProperty(this, "events", {
|
|
@@ -104,9 +106,17 @@ class Core {
|
|
|
104
106
|
onMessage(e) {
|
|
105
107
|
if (this.isJsonString(e.data)) {
|
|
106
108
|
const json = JSON.parse(e.data);
|
|
109
|
+
this.emitListener(json.channel, json.message);
|
|
107
110
|
this.events.emit(json.channel + ':' + json.event, json.message);
|
|
108
111
|
}
|
|
109
112
|
}
|
|
113
|
+
emitListener(method, channel) {
|
|
114
|
+
if (exports.ListenerEvents.includes(method)) {
|
|
115
|
+
this.events.emit(method + ':' + channel, {
|
|
116
|
+
channel
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
110
120
|
get status() {
|
|
111
121
|
return this._status;
|
|
112
122
|
}
|
package/lib/Subscribe.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { TMessage } from "./Core";
|
|
2
|
-
import { Events } from "easy-event-emitter";
|
|
1
|
+
import { TMessage, TListenerEvents, TListenerCallback } from "./Core";
|
|
2
|
+
import { Event, Events } from "easy-event-emitter";
|
|
3
3
|
type TReturn = {
|
|
4
4
|
remove: () => void;
|
|
5
5
|
};
|
|
@@ -19,5 +19,6 @@ declare class Subscribe {
|
|
|
19
19
|
private init;
|
|
20
20
|
bind<T>(event: string, callback: (data: T) => void): TReturn;
|
|
21
21
|
remove(): void;
|
|
22
|
+
addListener(event: TListenerEvents, callback: TListenerCallback): Event | undefined;
|
|
22
23
|
}
|
|
23
24
|
export default Subscribe;
|
package/lib/Subscribe.js
CHANGED
package/package.json
CHANGED
package/src/Core.ts
CHANGED
|
@@ -2,6 +2,11 @@ import EventEmitter,{
|
|
|
2
2
|
Events
|
|
3
3
|
} from "easy-event-emitter";
|
|
4
4
|
|
|
5
|
+
export const ListenerEvents = ['subscribe', 'unsubscribe'] as const;
|
|
6
|
+
export type TListenerEvents = typeof ListenerEvents[number];
|
|
7
|
+
|
|
8
|
+
export type TListenerCallback = (data:{channel: string}) => void;
|
|
9
|
+
|
|
5
10
|
export type TPermissions = 'public' | 'protected' | 'private';
|
|
6
11
|
|
|
7
12
|
export type TMessage<T> = {
|
|
@@ -122,11 +127,19 @@ abstract class Core {
|
|
|
122
127
|
private onMessage(e: any): void {
|
|
123
128
|
if (this.isJsonString(e.data)) {
|
|
124
129
|
const json = JSON.parse(e.data);
|
|
125
|
-
|
|
130
|
+
this.emitListener(json.channel, json.message);
|
|
126
131
|
this.events.emit(json.channel + ':' + json.event, json.message);
|
|
127
132
|
}
|
|
128
133
|
}
|
|
129
134
|
|
|
135
|
+
private emitListener(method: TListenerEvents, channel: string): void {
|
|
136
|
+
if (ListenerEvents.includes(method)) {
|
|
137
|
+
this.events.emit(method + ':' + channel, {
|
|
138
|
+
channel
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
130
143
|
public get status(): boolean {
|
|
131
144
|
return this._status;
|
|
132
145
|
}
|
package/src/Subscribe.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
|
-
TMessage
|
|
2
|
+
TMessage,
|
|
3
|
+
ListenerEvents,
|
|
4
|
+
TListenerEvents,
|
|
5
|
+
TListenerCallback
|
|
3
6
|
} from "./Core";
|
|
4
7
|
import {
|
|
8
|
+
Event,
|
|
5
9
|
Events
|
|
6
10
|
} from "easy-event-emitter";
|
|
7
11
|
|
|
@@ -67,6 +71,10 @@ class Subscribe {
|
|
|
67
71
|
unsubscribe: this.channel
|
|
68
72
|
});
|
|
69
73
|
}
|
|
74
|
+
|
|
75
|
+
public addListener(event: TListenerEvents, callback: TListenerCallback): Event | undefined {
|
|
76
|
+
return this.events.addListener(event + ':' + this.channel, callback);
|
|
77
|
+
}
|
|
70
78
|
}
|
|
71
79
|
|
|
72
80
|
export default Subscribe;
|