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 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
  }
@@ -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
@@ -66,5 +66,8 @@ class Subscribe {
66
66
  unsubscribe: this.channel
67
67
  });
68
68
  }
69
+ addListener(event, callback) {
70
+ return this.events.addListener(event + ':' + this.channel, callback);
71
+ }
69
72
  }
70
73
  exports.default = Subscribe;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "larasopp",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "Websocket client for laravel",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
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;