@xelis/sdk 0.10.12 → 0.11.1
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/dist/cjs/daemon/websocket.js +6 -60
- package/dist/cjs/react/daemon.js +15 -73
- package/dist/cjs/rpc/websocket.js +96 -199
- package/dist/cjs/wallet/websocket.js +6 -24
- package/dist/cjs/xswd/relayer/app.js +8 -3
- package/dist/cjs/xswd/relayer/index.css +136 -10
- package/dist/cjs/xswd/websocket.js +3 -3
- package/dist/esm/daemon/websocket.js +6 -60
- package/dist/esm/react/daemon.js +15 -73
- package/dist/esm/rpc/websocket.js +95 -198
- package/dist/esm/wallet/websocket.js +6 -24
- package/dist/esm/xswd/relayer/app.js +8 -3
- package/dist/esm/xswd/relayer/index.css +136 -10
- package/dist/esm/xswd/websocket.js +3 -3
- package/dist/types/daemon/websocket.d.ts +25 -21
- package/dist/types/react/daemon.d.ts +2 -2
- package/dist/types/rpc/websocket.d.ts +14 -22
- package/dist/types/wallet/websocket.d.ts +14 -10
- package/dist/types/xswd/websocket.d.ts +1 -1
- package/package.json +1 -1
|
@@ -21,7 +21,7 @@ var App = /** @class */ (function () {
|
|
|
21
21
|
this.errElement.classList.add("xelis-xswd-relayer-error");
|
|
22
22
|
this.qrCodeElement = document.createElement("div");
|
|
23
23
|
this.qrCodeElement.classList.add("xelis-xswd-relayer-qrcode");
|
|
24
|
-
this.qrCodeElement.innerHTML = "\n <div>XSWD Relayer</div>\n <canvas></canvas>\n ";
|
|
24
|
+
this.qrCodeElement.innerHTML = "\n <div class=\"xelis-xswd-relayer-scan-logo\">\n <svg fill=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M4,4h6v6H4V4M20,4v6H14V4h6M14,15h2V13H14V11h2v2h2V11h2v2H18v2h2v3H18v2H16V18H13v2H11V16h3V15m2,0v3h2V15H16M4,20V14h6v6H4M6,6V8H8V6H6M16,6V8h2V6H16M6,16v2H8V16H6M4,11H6v2H4V11m5,0h4v4H11V13H9V11m2-5h2v4H11V6M2,2V6H0V2A2,2,0,0,1,2,0H6V2H2M22,0a2,2,0,0,1,2,2V6H22V2H18V0h4M2,18v4H6v2H2a2,2,0,0,1-2-2V18H2m20,4V18h2v4a2,2,0,0,1-2,2H18V22Z\"/>\n </svg>\n </div>\n <div class=\"xelis-xswd-relayer-logo-wrap\">\n <div class=\"xelis-xswd-relayer-logo\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 778 743\" fill=\"currentColor\">\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M388.909 742.872L777.817 353.964L424.056 0.202599L478.809 132.737L700.036 353.964L388.909 665.091L77.7817 353.964L299.507 129.121L353.964 0L0 353.964L388.909 742.872Z\" />\n <path d=\"M388.909 665.091L353.964 0L299.507 129.121L388.909 665.091Z\" />\n <path d=\"M424.056 0.202599L388.909 665.091L478.809 132.737L424.056 0.202599Z\" />\n </svg>\n </div>\n </div>\n <div class=\"xelis-xswd-relayer-title\">XSWD Relayer</div>\n <canvas></canvas>\n ";
|
|
25
25
|
this.element.addEventListener("click", function (e) {
|
|
26
26
|
// close the app if clicking outside
|
|
27
27
|
if (_this.element.isEqualNode(e.target)) {
|
|
@@ -38,7 +38,7 @@ var App = /** @class */ (function () {
|
|
|
38
38
|
};
|
|
39
39
|
App.prototype.setError = function (msg) {
|
|
40
40
|
this.clear();
|
|
41
|
-
this.errElement.innerHTML = "error: ".concat(msg);
|
|
41
|
+
this.errElement.innerHTML = "\n <div class=\"xelis-xswd-relayer-error-text\">error: ".concat(msg, "</div>\n ");
|
|
42
42
|
this.contentElement.appendChild(this.errElement);
|
|
43
43
|
};
|
|
44
44
|
App.prototype.setLoading = function () {
|
|
@@ -54,7 +54,12 @@ var App = /** @class */ (function () {
|
|
|
54
54
|
relayer: this.relayer.props.url,
|
|
55
55
|
encryption_mode: this.relayer.props.encryption_mode
|
|
56
56
|
});
|
|
57
|
-
qrcode_1["default"].toCanvas(canvas, qrCodeData
|
|
57
|
+
qrcode_1["default"].toCanvas(canvas, qrCodeData, {
|
|
58
|
+
color: {
|
|
59
|
+
dark: "#fff",
|
|
60
|
+
light: "#000" // background
|
|
61
|
+
}
|
|
62
|
+
});
|
|
58
63
|
this.contentElement.appendChild(this.qrCodeElement);
|
|
59
64
|
};
|
|
60
65
|
return App;
|
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
.xelis-xswd-relayer {
|
|
2
|
+
font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
|
2
3
|
position: fixed;
|
|
3
4
|
top: 0;
|
|
4
5
|
left: 0;
|
|
5
6
|
bottom: 0;
|
|
6
7
|
right: 0;
|
|
7
|
-
background-color: rgba(0, 0, 0, 0.
|
|
8
|
-
backdrop-filter: blur(
|
|
8
|
+
background-color: rgba(0, 0, 0, 0.8);
|
|
9
|
+
backdrop-filter: blur(30px);
|
|
10
|
+
opacity: 0;
|
|
11
|
+
animation: xelis-xswd-relayer-appear .25s forwards;
|
|
12
|
+
user-select: none;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@keyframes xelis-xswd-relayer-appear {
|
|
16
|
+
100% {
|
|
17
|
+
opacity: 1;
|
|
18
|
+
}
|
|
9
19
|
}
|
|
10
20
|
|
|
11
21
|
.xelis-xswd-relayer-content {
|
|
@@ -13,16 +23,51 @@
|
|
|
13
23
|
top: 50%;
|
|
14
24
|
left: 50%;
|
|
15
25
|
translate: -50% -50%;
|
|
16
|
-
background-color: aquamarine;
|
|
17
|
-
filter: drop-shadow(0px 0px 25px black);
|
|
18
26
|
}
|
|
19
27
|
|
|
20
|
-
.xelis-xswd-relayer-error {
|
|
28
|
+
.xelis-xswd-relayer-error {
|
|
29
|
+
background-color: #02ffcf;
|
|
30
|
+
padding: 15px;
|
|
31
|
+
border-radius: 10px;
|
|
32
|
+
animation: xelis-xswd-relayer-error-appear .5s forwards;
|
|
33
|
+
opacity: 0;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@keyframes xelis-xswd-relayer-error-appear {
|
|
37
|
+
25% {
|
|
38
|
+
translate: -4px 0;
|
|
39
|
+
rotate: -3deg;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
50% {
|
|
43
|
+
translate: 4px 0;
|
|
44
|
+
rotate: 3deg;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
75% {
|
|
48
|
+
translate: -4px 0;
|
|
49
|
+
rotate: -3deg;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
100% {
|
|
53
|
+
opacity: 1;
|
|
54
|
+
translate: 0 0;
|
|
55
|
+
rotate: 0;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
.xelis-xswd-relayer-error-text {
|
|
61
|
+
background-color: rgba(31, 31, 31, 1);
|
|
62
|
+
border-radius: 5px;
|
|
63
|
+
padding: 5px 10px;
|
|
64
|
+
color: rgb(255, 63, 63);
|
|
65
|
+
}
|
|
21
66
|
|
|
22
67
|
.xelis-xswd-relayer-loading {
|
|
23
|
-
width:
|
|
24
|
-
height:
|
|
25
|
-
color:
|
|
68
|
+
width: 75px;
|
|
69
|
+
height: 75px;
|
|
70
|
+
color: #02ffcf;
|
|
26
71
|
animation: xelis-xswd-relayer-loading-animation .75s infinite;
|
|
27
72
|
}
|
|
28
73
|
|
|
@@ -32,6 +77,87 @@
|
|
|
32
77
|
}
|
|
33
78
|
}
|
|
34
79
|
|
|
35
|
-
.xelis-xswd-relayer-qrcode {
|
|
80
|
+
.xelis-xswd-relayer-qrcode {
|
|
81
|
+
background-color: rgba(2, 255, 207, 1);
|
|
82
|
+
padding: 30px 30px 50px 30px;
|
|
83
|
+
border-radius: 15px;
|
|
84
|
+
animation: xelis-xswd-relayer-qrcode-appear .25s forwards, xelis-xswd-relayer-qrcode-animation 2s infinite alternate;
|
|
85
|
+
translate: 0 -100%;
|
|
86
|
+
opacity: 0;
|
|
87
|
+
position: relative;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
@keyframes xelis-xswd-relayer-qrcode-appear {
|
|
91
|
+
100% {
|
|
92
|
+
translate: 0 0;
|
|
93
|
+
opacity: 1;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
@keyframes xelis-xswd-relayer-qrcode-animation {
|
|
98
|
+
0% {
|
|
99
|
+
background-color: rgba(2, 255, 207, 0.3);
|
|
100
|
+
filter: drop-shadow(0px 0px 100px rgba(2, 255, 209, 0.1));
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
100% {
|
|
104
|
+
background-color: rgba(2, 255, 207, 1);
|
|
105
|
+
filter: drop-shadow(0px 0px 200px rgba(2, 255, 209, 0.1));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.xelis-xswd-relayer-scan-logo {
|
|
110
|
+
position: absolute;
|
|
111
|
+
bottom: -30px;
|
|
112
|
+
left: 50%;
|
|
113
|
+
translate: -50% 0;
|
|
114
|
+
width: 25px;
|
|
115
|
+
height: 25px;
|
|
116
|
+
color: white;
|
|
117
|
+
background-color: black;
|
|
118
|
+
padding: 20px;
|
|
119
|
+
border-radius: 100%;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.xelis-xswd-relayer-logo-wrap {
|
|
123
|
+
position: absolute;
|
|
124
|
+
width: 100%;
|
|
125
|
+
height: 100%;
|
|
126
|
+
overflow: hidden;
|
|
127
|
+
top: 0;
|
|
128
|
+
left: 0;
|
|
129
|
+
border-radius: 15px;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.xelis-xswd-relayer-logo {
|
|
133
|
+
position: absolute;
|
|
134
|
+
width: 100%;
|
|
135
|
+
height: 100%;
|
|
136
|
+
top: 25%;
|
|
137
|
+
left: 5%;
|
|
138
|
+
scale: 1.8;
|
|
139
|
+
z-index: -1;
|
|
140
|
+
animation: xelis-xswd-relayer-logo-animation 2s infinite alternate;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
@keyframes xelis-xswd-relayer-logo-animation {
|
|
144
|
+
0% {
|
|
145
|
+
color: rgba(0, 206, 168, 0);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
100% {
|
|
149
|
+
color: rgba(0, 206, 168, 0.8);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
.xelis-xswd-relayer-title {
|
|
155
|
+
font-size: 25px;
|
|
156
|
+
font-weight: bold;
|
|
157
|
+
margin-bottom: 10px;
|
|
158
|
+
color: black;
|
|
159
|
+
}
|
|
36
160
|
|
|
37
|
-
.xelis-xswd-relayer-qrcode canvas {
|
|
161
|
+
.xelis-xswd-relayer-qrcode canvas {
|
|
162
|
+
border-radius: 10px;
|
|
163
|
+
}
|
|
@@ -21,9 +21,9 @@ var websocket_2 = require("../daemon/websocket");
|
|
|
21
21
|
var websocket_3 = require("../wallet/websocket");
|
|
22
22
|
var WS = /** @class */ (function (_super) {
|
|
23
23
|
__extends(WS, _super);
|
|
24
|
-
function WS() {
|
|
25
|
-
var _this = _super.call(this) || this;
|
|
26
|
-
_this.
|
|
24
|
+
function WS(endpoint) {
|
|
25
|
+
var _this = _super.call(this, endpoint) || this;
|
|
26
|
+
_this.callTimeout = 0; // xswd needs user input for confirmation - timeout should not be used
|
|
27
27
|
_this.daemon = new websocket_2.DaemonMethods(_this, "node.");
|
|
28
28
|
_this.wallet = new websocket_3.WalletMethods(_this, "wallet.");
|
|
29
29
|
return _this;
|
|
@@ -24,65 +24,11 @@ var DaemonMethods = /** @class */ (function () {
|
|
|
24
24
|
DaemonMethods.prototype.dataCall = function (method, params) {
|
|
25
25
|
return this.ws.dataCall(this.prefix + method, params);
|
|
26
26
|
};
|
|
27
|
-
DaemonMethods.prototype.
|
|
28
|
-
|
|
27
|
+
DaemonMethods.prototype.closeListener = function (event, listener) {
|
|
28
|
+
this.ws.closeListener(event, listener);
|
|
29
29
|
};
|
|
30
|
-
DaemonMethods.prototype.
|
|
31
|
-
|
|
32
|
-
};
|
|
33
|
-
DaemonMethods.prototype.onBlockOrphaned = function (onData) {
|
|
34
|
-
return this.ws.listenEvent(this.prefix + RPCEvent.BlockOrphaned, onData);
|
|
35
|
-
};
|
|
36
|
-
DaemonMethods.prototype.onStableHeightChanged = function (onData) {
|
|
37
|
-
return this.ws.listenEvent(this.prefix + RPCEvent.StableHeightChanged, onData);
|
|
38
|
-
};
|
|
39
|
-
DaemonMethods.prototype.onStableTopoHeightChanged = function (onData) {
|
|
40
|
-
return this.ws.listenEvent(this.prefix + RPCEvent.StableTopoHeightChanged, onData);
|
|
41
|
-
};
|
|
42
|
-
DaemonMethods.prototype.onTransactionOrphaned = function (onData) {
|
|
43
|
-
return this.ws.listenEvent(this.prefix + RPCEvent.TransactionOrphaned, onData);
|
|
44
|
-
};
|
|
45
|
-
DaemonMethods.prototype.onTransactionAddedInMempool = function (onData) {
|
|
46
|
-
return this.ws.listenEvent(this.prefix + RPCEvent.TransactionAddedInMempool, onData);
|
|
47
|
-
};
|
|
48
|
-
DaemonMethods.prototype.onTransactionExecuted = function (onData) {
|
|
49
|
-
return this.ws.listenEvent(this.prefix + RPCEvent.TransactionExecuted, onData);
|
|
50
|
-
};
|
|
51
|
-
DaemonMethods.prototype.onInvokeContract = function (contract, onData) {
|
|
52
|
-
var _a;
|
|
53
|
-
return this.ws.listenEvent((_a = {}, _a[this.prefix + RPCEvent.InvokeContract] = { contract: contract }, _a), onData);
|
|
54
|
-
};
|
|
55
|
-
DaemonMethods.prototype.onContractTransfer = function (address, onData) {
|
|
56
|
-
var _a;
|
|
57
|
-
return this.ws.listenEvent((_a = {}, _a[this.prefix + RPCEvent.ContractTransfer] = { address: address }, _a), onData);
|
|
58
|
-
};
|
|
59
|
-
DaemonMethods.prototype.onContractEvent = function (contract, id, onData) {
|
|
60
|
-
var _a;
|
|
61
|
-
return this.ws.listenEvent((_a = {}, _a[this.prefix + RPCEvent.ContractEvent] = { contract: contract, id: id }, _a), onData);
|
|
62
|
-
};
|
|
63
|
-
DaemonMethods.prototype.onDeployContract = function (onData) {
|
|
64
|
-
return this.ws.listenEvent(this.prefix + RPCEvent.DeployContract, onData);
|
|
65
|
-
};
|
|
66
|
-
DaemonMethods.prototype.onNewAsset = function (onData) {
|
|
67
|
-
return this.ws.listenEvent(this.prefix + RPCEvent.NewAsset, onData);
|
|
68
|
-
};
|
|
69
|
-
DaemonMethods.prototype.onPeerConnected = function (onData) {
|
|
70
|
-
return this.ws.listenEvent(this.prefix + RPCEvent.PeerConnected, onData);
|
|
71
|
-
};
|
|
72
|
-
DaemonMethods.prototype.onPeerDisconnected = function (onData) {
|
|
73
|
-
return this.ws.listenEvent(this.prefix + RPCEvent.PeerDisconnected, onData);
|
|
74
|
-
};
|
|
75
|
-
DaemonMethods.prototype.onPeerStateUpdated = function (onData) {
|
|
76
|
-
return this.ws.listenEvent(this.prefix + RPCEvent.PeerStateUpdated, onData);
|
|
77
|
-
};
|
|
78
|
-
DaemonMethods.prototype.onPeerPeerListUpdated = function (onData) {
|
|
79
|
-
return this.ws.listenEvent(this.prefix + RPCEvent.PeerPeerListUpdated, onData);
|
|
80
|
-
};
|
|
81
|
-
DaemonMethods.prototype.onPeerPeerDisconnected = function (onData) {
|
|
82
|
-
return this.ws.listenEvent(this.prefix + RPCEvent.PeerPeerDisconnected, onData);
|
|
83
|
-
};
|
|
84
|
-
DaemonMethods.prototype.onNewBlockTemplate = function (onData) {
|
|
85
|
-
return this.ws.listenEvent(this.prefix + RPCEvent.NewBlockTemplate, onData);
|
|
30
|
+
DaemonMethods.prototype.listen = function (event, listener) {
|
|
31
|
+
this.ws.listen(this.prefix + event, listener);
|
|
86
32
|
};
|
|
87
33
|
DaemonMethods.prototype.getVersion = function () {
|
|
88
34
|
return this.dataCall(RPCMethod.GetVersion);
|
|
@@ -293,8 +239,8 @@ var DaemonMethods = /** @class */ (function () {
|
|
|
293
239
|
export { DaemonMethods };
|
|
294
240
|
var WS = /** @class */ (function (_super) {
|
|
295
241
|
__extends(WS, _super);
|
|
296
|
-
function WS() {
|
|
297
|
-
var _this = _super.call(this) || this;
|
|
242
|
+
function WS(endpoint) {
|
|
243
|
+
var _this = _super.call(this, endpoint) || this;
|
|
298
244
|
_this.methods = new DaemonMethods(_this);
|
|
299
245
|
return _this;
|
|
300
246
|
}
|
package/dist/esm/react/daemon.js
CHANGED
|
@@ -1,39 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
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) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
-
function step(op) {
|
|
15
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
-
switch (op[0]) {
|
|
20
|
-
case 0: case 1: t = op; break;
|
|
21
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
-
default:
|
|
25
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
-
if (t[2]) _.ops.pop();
|
|
30
|
-
_.trys.pop(); continue;
|
|
31
|
-
}
|
|
32
|
-
op = body.call(thisArg, _);
|
|
33
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
1
|
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
38
2
|
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
39
3
|
if (ar || !(i in from)) {
|
|
@@ -44,49 +8,34 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
44
8
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
45
9
|
};
|
|
46
10
|
import React, { createContext, useContext, useEffect, useState } from 'react';
|
|
47
|
-
import { to } from 'await-to-js';
|
|
48
11
|
import DaemonWS from '../daemon/websocket.js';
|
|
49
12
|
export var INITIATING = -1;
|
|
50
|
-
var daemon = new DaemonWS();
|
|
51
13
|
var Context = createContext({
|
|
52
14
|
err: undefined,
|
|
53
|
-
daemon:
|
|
15
|
+
daemon: undefined,
|
|
54
16
|
readyState: INITIATING
|
|
55
17
|
});
|
|
56
18
|
export var NodeSocketProvider = function (props) {
|
|
57
19
|
var children = props.children, endpoint = props.endpoint, timeout = props.timeout;
|
|
58
20
|
var _a = useState(INITIATING), readyState = _a[0], setReadyState = _a[1];
|
|
59
21
|
var _b = useState(), err = _b[0], setErr = _b[1];
|
|
22
|
+
var _c = useState(), daemon = _c[0], setDaemon = _c[1];
|
|
60
23
|
useEffect(function () {
|
|
61
|
-
var
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
switch (_b.label) {
|
|
65
|
-
case 0:
|
|
66
|
-
setErr(undefined);
|
|
67
|
-
return [4 /*yield*/, to(daemon.connect(endpoint))];
|
|
68
|
-
case 1:
|
|
69
|
-
_a = _b.sent(), err = _a[0], _ = _a[1];
|
|
70
|
-
if (err)
|
|
71
|
-
setErr(err);
|
|
72
|
-
return [2 /*return*/];
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
}); };
|
|
76
|
-
connect();
|
|
24
|
+
var daemon = new DaemonWS(endpoint);
|
|
25
|
+
setDaemon(daemon);
|
|
26
|
+
return function () { return daemon.socket.close(); };
|
|
77
27
|
}, [endpoint]);
|
|
78
28
|
useEffect(function () {
|
|
79
29
|
if (!timeout)
|
|
80
30
|
return;
|
|
81
|
-
daemon
|
|
31
|
+
if (daemon)
|
|
32
|
+
daemon.callTimeout = timeout;
|
|
82
33
|
}, [timeout]);
|
|
83
34
|
useEffect(function () {
|
|
84
|
-
if (!daemon
|
|
35
|
+
if (!daemon)
|
|
85
36
|
return;
|
|
86
37
|
setReadyState(daemon.socket.readyState);
|
|
87
38
|
var onOpen = function () {
|
|
88
|
-
if (!daemon.socket)
|
|
89
|
-
return;
|
|
90
39
|
setReadyState(daemon.socket.readyState);
|
|
91
40
|
setErr(undefined);
|
|
92
41
|
};
|
|
@@ -112,31 +61,24 @@ export var NodeSocketProvider = function (props) {
|
|
|
112
61
|
daemon.socket.removeEventListener("close", onClose);
|
|
113
62
|
daemon.socket.removeEventListener("error", onError);
|
|
114
63
|
};
|
|
115
|
-
}, [daemon
|
|
64
|
+
}, [daemon]);
|
|
116
65
|
return React.createElement(Context.Provider, { value: { daemon: daemon, err: err, readyState: readyState } }, children);
|
|
117
66
|
};
|
|
118
67
|
export var useNodeSocketSubscribe = function (_a, dependencies) {
|
|
119
68
|
var event = _a.event, onLoad = _a.onLoad, onData = _a.onData;
|
|
120
69
|
var nodeSocket = useNodeSocket();
|
|
121
70
|
useEffect(function () {
|
|
71
|
+
if (!nodeSocket.daemon)
|
|
72
|
+
return;
|
|
122
73
|
if (nodeSocket.readyState !== WebSocket.OPEN)
|
|
123
74
|
return;
|
|
124
75
|
if (typeof onLoad === "function")
|
|
125
76
|
onLoad();
|
|
126
|
-
|
|
127
|
-
var listen = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
128
|
-
return __generator(this, function (_a) {
|
|
129
|
-
switch (_a.label) {
|
|
130
|
-
case 0: return [4 /*yield*/, nodeSocket.daemon.listenEvent(event, onData)];
|
|
131
|
-
case 1:
|
|
132
|
-
closeEvent = _a.sent();
|
|
133
|
-
return [2 /*return*/];
|
|
134
|
-
}
|
|
135
|
-
});
|
|
136
|
-
}); };
|
|
137
|
-
listen();
|
|
77
|
+
nodeSocket.daemon.listen(event, onData);
|
|
138
78
|
return function () {
|
|
139
|
-
|
|
79
|
+
if (!nodeSocket.daemon)
|
|
80
|
+
return;
|
|
81
|
+
nodeSocket.daemon.closeListener(event, onData);
|
|
140
82
|
};
|
|
141
83
|
}, __spreadArray([nodeSocket], dependencies, true));
|
|
142
84
|
};
|