1 | "use strict";
|
2 | var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3 | return new (P || (P = Promise))(function (resolve, reject) {
|
4 | function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
5 | function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
6 | function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
7 | step((generator = generator.apply(thisArg, _arguments || [])).next());
|
8 | });
|
9 | };
|
10 | Object.defineProperty(exports, "__esModule", { value: true });
|
11 | const neweb_core_1 = require("neweb-core");
|
12 | class SocketIOClient {
|
13 | constructor(config) {
|
14 | this.config = config;
|
15 | this.dispose = () => {
|
16 | this.config.socket.removeAllListeners();
|
17 | };
|
18 | this.config.socket.on("disconnect", this.dispose);
|
19 | this.config.socket.on("error", this.dispose);
|
20 | this.config.socket.on(neweb_core_1.RemoteMessageType.FrameControllerDispatch, (params) => {
|
21 | this.server.dispatchControllerAction({
|
22 | actionName: params.actionName,
|
23 | args: params.args,
|
24 | controllerId: params.frameId,
|
25 | });
|
26 | });
|
27 | this.config.socket.on(neweb_core_1.RemoteMessageType.Navigate, (params) => {
|
28 | this.server.navigate(params);
|
29 | });
|
30 | }
|
31 | getRequest() {
|
32 | return __awaiter(this, void 0, void 0, function* () {
|
33 | const socket = this.config.socket;
|
34 | return {
|
35 | url: socket.request.url,
|
36 | headers: socket.request.headers,
|
37 | sessionId: socket.request.session.id,
|
38 | };
|
39 | });
|
40 | }
|
41 | connectTo(server) {
|
42 | this.server = server;
|
43 | }
|
44 | newPage(params) {
|
45 | return this.emit(neweb_core_1.RemoteMessageType.NewPage, params);
|
46 | }
|
47 | newControllerData(params) {
|
48 | return this.emit(neweb_core_1.RemoteMessageType.FrameControllerData, {
|
49 | frameId: params.controllerId,
|
50 | fieldName: params.fieldName,
|
51 | value: params.value,
|
52 | });
|
53 | }
|
54 | error(params) {
|
55 | return this.emit(neweb_core_1.RemoteMessageType.Error, params);
|
56 | }
|
57 | emit(event, params) {
|
58 | return __awaiter(this, void 0, void 0, function* () {
|
59 | yield new Promise((resolve) => {
|
60 | this.config.socket.send(event, params, resolve);
|
61 | });
|
62 | });
|
63 | }
|
64 | }
|
65 | exports.default = SocketIOClient;
|