larasopp 1.2.11 → 1.2.12
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/Listener.d.ts +3 -0
- package/lib/Listener.js +9 -0
- package/lib/Subscribe.d.ts +29 -29
- package/lib/Subscribe.js +107 -107
- package/package.json +1 -1
- package/src/Listener.ts +12 -0
package/lib/Listener.d.ts
CHANGED
|
@@ -6,6 +6,9 @@ declare class Listener {
|
|
|
6
6
|
private listeners?;
|
|
7
7
|
constructor(channel: string, constext: Larasopp);
|
|
8
8
|
listen(event: string, callback: (data: any) => void): EventListener;
|
|
9
|
+
here(callback: (data: any) => void): EventListener;
|
|
10
|
+
joining(callback: (data: any) => void): EventListener;
|
|
11
|
+
leaving(callback: (data: any) => void): EventListener;
|
|
9
12
|
unsubscribe(): void;
|
|
10
13
|
remove(): void;
|
|
11
14
|
}
|
package/lib/Listener.js
CHANGED
|
@@ -31,6 +31,15 @@ class Listener {
|
|
|
31
31
|
this.listeners.push(listener);
|
|
32
32
|
return listener;
|
|
33
33
|
}
|
|
34
|
+
here(callback) {
|
|
35
|
+
return this.listen('__HERE', callback);
|
|
36
|
+
}
|
|
37
|
+
joining(callback) {
|
|
38
|
+
return this.listen('__JOIN', callback);
|
|
39
|
+
}
|
|
40
|
+
leaving(callback) {
|
|
41
|
+
return this.listen('__LEAVE', callback);
|
|
42
|
+
}
|
|
34
43
|
unsubscribe() {
|
|
35
44
|
this.context.unsubscribe(this.channel);
|
|
36
45
|
this.remove();
|
package/lib/Subscribe.d.ts
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { TMessage, TListenerEvents, TListenerCallback, TListen } from "./Core";
|
|
2
|
-
import type { Event, Events } from "easy-event-emitter";
|
|
3
|
-
interface ISubscribe {
|
|
4
|
-
events: Events;
|
|
5
|
-
hasChannel: (channel: string) => boolean;
|
|
6
|
-
pushChannel: (channel: string) => void;
|
|
7
|
-
removeChannel: (channel: string) => void;
|
|
8
|
-
send: <T>(message: TMessage<T>) => void;
|
|
9
|
-
channel: string;
|
|
10
|
-
status: boolean;
|
|
11
|
-
}
|
|
12
|
-
declare class Subscribe {
|
|
13
|
-
private events;
|
|
14
|
-
private currentEvents;
|
|
15
|
-
private hasChannel;
|
|
16
|
-
private pushChannel;
|
|
17
|
-
private removeChannel;
|
|
18
|
-
private status;
|
|
19
|
-
private _channel;
|
|
20
|
-
private send;
|
|
21
|
-
constructor({ events, hasChannel, pushChannel, removeChannel, status, channel, send }: ISubscribe);
|
|
22
|
-
get channel(): string;
|
|
23
|
-
private init;
|
|
24
|
-
listen<T>(event: string, callback: (data: T) => void): TListen;
|
|
25
|
-
private clearEvents;
|
|
26
|
-
remove(): void;
|
|
27
|
-
addListener(event: TListenerEvents, callback: TListenerCallback): Event | undefined;
|
|
28
|
-
}
|
|
29
|
-
export default Subscribe;
|
|
1
|
+
import { TMessage, TListenerEvents, TListenerCallback, TListen } from "./Core";
|
|
2
|
+
import type { Event, Events } from "easy-event-emitter";
|
|
3
|
+
interface ISubscribe {
|
|
4
|
+
events: Events;
|
|
5
|
+
hasChannel: (channel: string) => boolean;
|
|
6
|
+
pushChannel: (channel: string) => void;
|
|
7
|
+
removeChannel: (channel: string) => void;
|
|
8
|
+
send: <T>(message: TMessage<T>) => void;
|
|
9
|
+
channel: string;
|
|
10
|
+
status: boolean;
|
|
11
|
+
}
|
|
12
|
+
declare class Subscribe {
|
|
13
|
+
private events;
|
|
14
|
+
private currentEvents;
|
|
15
|
+
private hasChannel;
|
|
16
|
+
private pushChannel;
|
|
17
|
+
private removeChannel;
|
|
18
|
+
private status;
|
|
19
|
+
private _channel;
|
|
20
|
+
private send;
|
|
21
|
+
constructor({ events, hasChannel, pushChannel, removeChannel, status, channel, send }: ISubscribe);
|
|
22
|
+
get channel(): string;
|
|
23
|
+
private init;
|
|
24
|
+
listen<T>(event: string, callback: (data: T) => void): TListen;
|
|
25
|
+
private clearEvents;
|
|
26
|
+
remove(): void;
|
|
27
|
+
addListener(event: TListenerEvents, callback: TListenerCallback): Event | undefined;
|
|
28
|
+
}
|
|
29
|
+
export default Subscribe;
|
package/lib/Subscribe.js
CHANGED
|
@@ -1,107 +1,107 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
class Subscribe {
|
|
4
|
-
constructor({ events, hasChannel, pushChannel, removeChannel, status, channel, send }) {
|
|
5
|
-
Object.defineProperty(this, "events", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
configurable: true,
|
|
8
|
-
writable: true,
|
|
9
|
-
value: void 0
|
|
10
|
-
});
|
|
11
|
-
Object.defineProperty(this, "currentEvents", {
|
|
12
|
-
enumerable: true,
|
|
13
|
-
configurable: true,
|
|
14
|
-
writable: true,
|
|
15
|
-
value: void 0
|
|
16
|
-
});
|
|
17
|
-
Object.defineProperty(this, "hasChannel", {
|
|
18
|
-
enumerable: true,
|
|
19
|
-
configurable: true,
|
|
20
|
-
writable: true,
|
|
21
|
-
value: void 0
|
|
22
|
-
});
|
|
23
|
-
Object.defineProperty(this, "pushChannel", {
|
|
24
|
-
enumerable: true,
|
|
25
|
-
configurable: true,
|
|
26
|
-
writable: true,
|
|
27
|
-
value: void 0
|
|
28
|
-
});
|
|
29
|
-
Object.defineProperty(this, "removeChannel", {
|
|
30
|
-
enumerable: true,
|
|
31
|
-
configurable: true,
|
|
32
|
-
writable: true,
|
|
33
|
-
value: void 0
|
|
34
|
-
});
|
|
35
|
-
Object.defineProperty(this, "status", {
|
|
36
|
-
enumerable: true,
|
|
37
|
-
configurable: true,
|
|
38
|
-
writable: true,
|
|
39
|
-
value: void 0
|
|
40
|
-
});
|
|
41
|
-
Object.defineProperty(this, "_channel", {
|
|
42
|
-
enumerable: true,
|
|
43
|
-
configurable: true,
|
|
44
|
-
writable: true,
|
|
45
|
-
value: void 0
|
|
46
|
-
});
|
|
47
|
-
Object.defineProperty(this, "send", {
|
|
48
|
-
enumerable: true,
|
|
49
|
-
configurable: true,
|
|
50
|
-
writable: true,
|
|
51
|
-
value: void 0
|
|
52
|
-
});
|
|
53
|
-
this.events = events;
|
|
54
|
-
this.currentEvents = [];
|
|
55
|
-
this.hasChannel = hasChannel;
|
|
56
|
-
this.pushChannel = pushChannel;
|
|
57
|
-
this.removeChannel = removeChannel;
|
|
58
|
-
this.status = status;
|
|
59
|
-
this._channel = channel;
|
|
60
|
-
this.send = send;
|
|
61
|
-
this.init();
|
|
62
|
-
}
|
|
63
|
-
get channel() {
|
|
64
|
-
return this._channel;
|
|
65
|
-
}
|
|
66
|
-
init() {
|
|
67
|
-
this.pushChannel(this.channel);
|
|
68
|
-
if (this.status) {
|
|
69
|
-
this.send({
|
|
70
|
-
subscribe: this.channel
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
const event = this.events.addListener('open', () => {
|
|
75
|
-
this.send({
|
|
76
|
-
subscribe: this.channel
|
|
77
|
-
});
|
|
78
|
-
event.remove();
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
listen(event, callback) {
|
|
83
|
-
const Event = this.events.addListener(this.channel + ':' + event, callback);
|
|
84
|
-
this.currentEvents.push(Event);
|
|
85
|
-
return {
|
|
86
|
-
remove: () => {
|
|
87
|
-
Event.remove();
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
clearEvents() {
|
|
92
|
-
this.currentEvents.forEach((event) => event.remove());
|
|
93
|
-
}
|
|
94
|
-
remove() {
|
|
95
|
-
this.clearEvents();
|
|
96
|
-
this.removeChannel(this.channel);
|
|
97
|
-
if (this.hasChannel(this.channel))
|
|
98
|
-
return;
|
|
99
|
-
this.send({
|
|
100
|
-
unsubscribe: this.channel
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
addListener(event, callback) {
|
|
104
|
-
return this.events.addListener(event + ':' + this.channel, callback);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
exports.default = Subscribe;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class Subscribe {
|
|
4
|
+
constructor({ events, hasChannel, pushChannel, removeChannel, status, channel, send }) {
|
|
5
|
+
Object.defineProperty(this, "events", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
configurable: true,
|
|
8
|
+
writable: true,
|
|
9
|
+
value: void 0
|
|
10
|
+
});
|
|
11
|
+
Object.defineProperty(this, "currentEvents", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
configurable: true,
|
|
14
|
+
writable: true,
|
|
15
|
+
value: void 0
|
|
16
|
+
});
|
|
17
|
+
Object.defineProperty(this, "hasChannel", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
configurable: true,
|
|
20
|
+
writable: true,
|
|
21
|
+
value: void 0
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(this, "pushChannel", {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
configurable: true,
|
|
26
|
+
writable: true,
|
|
27
|
+
value: void 0
|
|
28
|
+
});
|
|
29
|
+
Object.defineProperty(this, "removeChannel", {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
configurable: true,
|
|
32
|
+
writable: true,
|
|
33
|
+
value: void 0
|
|
34
|
+
});
|
|
35
|
+
Object.defineProperty(this, "status", {
|
|
36
|
+
enumerable: true,
|
|
37
|
+
configurable: true,
|
|
38
|
+
writable: true,
|
|
39
|
+
value: void 0
|
|
40
|
+
});
|
|
41
|
+
Object.defineProperty(this, "_channel", {
|
|
42
|
+
enumerable: true,
|
|
43
|
+
configurable: true,
|
|
44
|
+
writable: true,
|
|
45
|
+
value: void 0
|
|
46
|
+
});
|
|
47
|
+
Object.defineProperty(this, "send", {
|
|
48
|
+
enumerable: true,
|
|
49
|
+
configurable: true,
|
|
50
|
+
writable: true,
|
|
51
|
+
value: void 0
|
|
52
|
+
});
|
|
53
|
+
this.events = events;
|
|
54
|
+
this.currentEvents = [];
|
|
55
|
+
this.hasChannel = hasChannel;
|
|
56
|
+
this.pushChannel = pushChannel;
|
|
57
|
+
this.removeChannel = removeChannel;
|
|
58
|
+
this.status = status;
|
|
59
|
+
this._channel = channel;
|
|
60
|
+
this.send = send;
|
|
61
|
+
this.init();
|
|
62
|
+
}
|
|
63
|
+
get channel() {
|
|
64
|
+
return this._channel;
|
|
65
|
+
}
|
|
66
|
+
init() {
|
|
67
|
+
this.pushChannel(this.channel);
|
|
68
|
+
if (this.status) {
|
|
69
|
+
this.send({
|
|
70
|
+
subscribe: this.channel
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
const event = this.events.addListener('open', () => {
|
|
75
|
+
this.send({
|
|
76
|
+
subscribe: this.channel
|
|
77
|
+
});
|
|
78
|
+
event.remove();
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
listen(event, callback) {
|
|
83
|
+
const Event = this.events.addListener(this.channel + ':' + event, callback);
|
|
84
|
+
this.currentEvents.push(Event);
|
|
85
|
+
return {
|
|
86
|
+
remove: () => {
|
|
87
|
+
Event.remove();
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
clearEvents() {
|
|
92
|
+
this.currentEvents.forEach((event) => event.remove());
|
|
93
|
+
}
|
|
94
|
+
remove() {
|
|
95
|
+
this.clearEvents();
|
|
96
|
+
this.removeChannel(this.channel);
|
|
97
|
+
if (this.hasChannel(this.channel))
|
|
98
|
+
return;
|
|
99
|
+
this.send({
|
|
100
|
+
unsubscribe: this.channel
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
addListener(event, callback) {
|
|
104
|
+
return this.events.addListener(event + ':' + this.channel, callback);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.default = Subscribe;
|
package/package.json
CHANGED
package/src/Listener.ts
CHANGED
|
@@ -22,6 +22,18 @@ class Listener {
|
|
|
22
22
|
return listener;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
public here(callback: (data: any) => void) {
|
|
26
|
+
return this.listen('__HERE', callback);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
public joining(callback: (data: any) => void) {
|
|
30
|
+
return this.listen('__JOIN', callback);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
public leaving(callback: (data: any) => void) {
|
|
34
|
+
return this.listen('__LEAVE', callback);
|
|
35
|
+
}
|
|
36
|
+
|
|
25
37
|
public unsubscribe() {
|
|
26
38
|
this.context.unsubscribe(this.channel);
|
|
27
39
|
this.remove();
|