@xelis/sdk 0.11.15 → 0.11.16
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/address/bech32.js +47 -56
- package/dist/cjs/address/index.js +20 -21
- package/dist/cjs/config.js +26 -38
- package/dist/cjs/contract/contract.js +178 -0
- package/dist/cjs/contract/typed_contract.js +259 -0
- package/dist/cjs/contract/xvm_serializer.js +170 -0
- package/dist/cjs/daemon/rpc.js +157 -168
- package/dist/cjs/daemon/types.js +4 -1
- package/dist/cjs/daemon/websocket.js +170 -181
- package/dist/cjs/data/element.js +39 -41
- package/dist/cjs/data/value.js +106 -111
- package/dist/cjs/react/daemon.js +33 -43
- package/dist/cjs/rpc/http.js +75 -132
- package/dist/cjs/rpc/parse_json/parse_json.js +4 -4
- package/dist/cjs/rpc/types.js +1 -1
- package/dist/cjs/rpc/websocket.js +131 -201
- package/dist/cjs/wallet/rpc.js +98 -117
- package/dist/cjs/wallet/types.js +1 -1
- package/dist/cjs/wallet/websocket.js +105 -126
- package/dist/cjs/xswd/relayer/app.js +57 -36
- package/dist/cjs/xswd/relayer/index.js +25 -27
- package/dist/cjs/xswd/types.js +1 -1
- package/dist/cjs/xswd/websocket.js +15 -33
- package/dist/esm/address/bech32.js +46 -55
- package/dist/esm/address/index.js +16 -17
- package/dist/esm/config.js +25 -37
- package/dist/esm/contract/contract.js +172 -0
- package/dist/esm/contract/typed_contract.js +251 -0
- package/dist/esm/contract/xvm_serializer.js +163 -0
- package/dist/esm/daemon/rpc.js +153 -165
- package/dist/esm/daemon/types.js +3 -0
- package/dist/esm/daemon/websocket.js +166 -179
- package/dist/esm/data/element.js +37 -40
- package/dist/esm/data/value.js +104 -112
- package/dist/esm/react/daemon.js +30 -40
- package/dist/esm/rpc/http.js +73 -131
- package/dist/esm/rpc/parse_json/parse_json.js +1 -1
- package/dist/esm/rpc/websocket.js +126 -197
- package/dist/esm/wallet/rpc.js +93 -113
- package/dist/esm/wallet/websocket.js +101 -124
- package/dist/esm/xswd/relayer/app.js +54 -34
- package/dist/esm/xswd/relayer/index.js +22 -24
- package/dist/esm/xswd/websocket.js +10 -29
- package/dist/types/contract/contract.d.ts +80 -0
- package/dist/types/contract/typed_contract.d.ts +94 -0
- package/dist/types/contract/xvm_serializer.d.ts +69 -0
- package/dist/types/daemon/rpc.d.ts +5 -2
- package/dist/types/daemon/types.d.ts +96 -17
- package/dist/types/daemon/websocket.d.ts +5 -2
- package/package.json +1 -1
package/dist/cjs/data/value.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
exports
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ValueWriter = exports.ValueReader = exports.Value = exports.ValueType = void 0;
|
|
4
|
-
|
|
4
|
+
const element_1 = require("./element");
|
|
5
5
|
var MaxStringSize = 255;
|
|
6
6
|
var ErrMaxStringSize = "string max limit is 255 bytes";
|
|
7
7
|
var MaxBlobSize = 65535;
|
|
8
8
|
var ErrMaxBlobSize = "blob max size is 65535 bytes";
|
|
9
9
|
function ErrUnsupportedValue(value) {
|
|
10
|
-
return
|
|
10
|
+
return `unsupported value type ${value}`;
|
|
11
11
|
}
|
|
12
12
|
function getUIntTypeByValue(value) {
|
|
13
13
|
if (value < 0)
|
|
@@ -36,16 +36,16 @@ var ValueType;
|
|
|
36
36
|
ValueType[ValueType["Hash"] = 7] = "Hash";
|
|
37
37
|
ValueType[ValueType["Blob"] = 8] = "Blob";
|
|
38
38
|
})(ValueType = exports.ValueType || (exports.ValueType = {}));
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
class Value {
|
|
40
|
+
constructor(vType, data) {
|
|
41
41
|
this.vType = vType;
|
|
42
42
|
this.data = data;
|
|
43
43
|
}
|
|
44
|
-
|
|
45
|
-
if (typeof data ===
|
|
44
|
+
static new(data) {
|
|
45
|
+
if (typeof data === `string`) {
|
|
46
46
|
return new Value(ValueType.String, data);
|
|
47
47
|
}
|
|
48
|
-
else if (typeof data ===
|
|
48
|
+
else if (typeof data === `boolean`) {
|
|
49
49
|
return new Value(ValueType.Bool, data);
|
|
50
50
|
}
|
|
51
51
|
else if (Array.isArray(data)) {
|
|
@@ -55,7 +55,7 @@ var Value = /** @class */ (function () {
|
|
|
55
55
|
return new Value(ValueType.Hash, data);
|
|
56
56
|
}
|
|
57
57
|
else if (typeof data === "number" || typeof data === "bigint") {
|
|
58
|
-
|
|
58
|
+
let eType = getUIntTypeByValue(data);
|
|
59
59
|
switch (eType) {
|
|
60
60
|
case ValueType.U8:
|
|
61
61
|
return new Value(ValueType.U8, data);
|
|
@@ -72,81 +72,80 @@ var Value = /** @class */ (function () {
|
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
throw "unsupported data type";
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
}());
|
|
75
|
+
}
|
|
76
|
+
}
|
|
78
77
|
exports.Value = Value;
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
class ValueReader {
|
|
79
|
+
constructor(data) {
|
|
81
80
|
this.data = Array.from(data);
|
|
82
81
|
}
|
|
83
|
-
|
|
84
|
-
|
|
82
|
+
read() {
|
|
83
|
+
let eType = this.readByte();
|
|
85
84
|
switch (eType) {
|
|
86
85
|
case element_1.ElementType.Value:
|
|
87
86
|
return element_1.Element.value(this.readValue());
|
|
88
87
|
case element_1.ElementType.Array:
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
for (
|
|
88
|
+
let arrSize = this.readByte();
|
|
89
|
+
let elements = [];
|
|
90
|
+
for (let i = 0; i < arrSize; i++) {
|
|
92
91
|
elements.push(this.read());
|
|
93
92
|
}
|
|
94
93
|
return element_1.Element.array(elements);
|
|
95
94
|
case element_1.ElementType.Fields:
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
for (
|
|
95
|
+
let fieldsSize = this.readByte();
|
|
96
|
+
let map = new Map();
|
|
97
|
+
for (let i = 0; i < fieldsSize; i++) {
|
|
99
98
|
map.set(this.readValue(), this.read());
|
|
100
99
|
}
|
|
101
100
|
return element_1.Element.fields(map);
|
|
102
101
|
default:
|
|
103
102
|
throw "invalid element type";
|
|
104
103
|
}
|
|
105
|
-
}
|
|
106
|
-
|
|
104
|
+
}
|
|
105
|
+
readByte() {
|
|
107
106
|
return this.data.splice(0, 1)[0];
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
107
|
+
}
|
|
108
|
+
readU16() {
|
|
109
|
+
let arr = new Uint8Array(this.data.splice(0, 2));
|
|
110
|
+
let view = new DataView(arr.buffer);
|
|
112
111
|
return view.getUint16(0, false);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
112
|
+
}
|
|
113
|
+
readU32() {
|
|
114
|
+
let arr = new Uint8Array(this.data.splice(0, 4));
|
|
115
|
+
let view = new DataView(arr.buffer);
|
|
117
116
|
return view.getUint32(0, false);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
117
|
+
}
|
|
118
|
+
readU64() {
|
|
119
|
+
let arr = new Uint8Array(this.data.splice(0, 8));
|
|
120
|
+
let view = new DataView(arr.buffer);
|
|
122
121
|
return view.getBigUint64(0, false);
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
for (
|
|
122
|
+
}
|
|
123
|
+
readU128() {
|
|
124
|
+
let data = this.data.splice(0, 16);
|
|
125
|
+
let value = BigInt(0);
|
|
126
|
+
for (let i = 0; i < 16; i++) {
|
|
128
127
|
value = (value << BigInt(8)) | BigInt(data[i]);
|
|
129
128
|
}
|
|
130
129
|
return value;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
130
|
+
}
|
|
131
|
+
readString() {
|
|
132
|
+
let size = this.readByte();
|
|
133
|
+
let decoder = new TextDecoder();
|
|
134
|
+
let data = new Uint8Array(this.data.splice(0, size));
|
|
136
135
|
return decoder.decode(data);
|
|
137
|
-
}
|
|
138
|
-
|
|
136
|
+
}
|
|
137
|
+
readBool() {
|
|
139
138
|
return this.readByte() === 1 ? true : false;
|
|
140
|
-
}
|
|
141
|
-
|
|
139
|
+
}
|
|
140
|
+
readHash() {
|
|
142
141
|
return this.data.splice(0, 32);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
|
|
142
|
+
}
|
|
143
|
+
readBlob() {
|
|
144
|
+
let size = this.readByte();
|
|
146
145
|
return this.data.splice(0, size);
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
|
|
146
|
+
}
|
|
147
|
+
readValue() {
|
|
148
|
+
let vType = this.readByte();
|
|
150
149
|
switch (vType) {
|
|
151
150
|
case ValueType.U8:
|
|
152
151
|
return new Value(vType, this.readByte());
|
|
@@ -169,17 +168,15 @@ var ValueReader = /** @class */ (function () {
|
|
|
169
168
|
default:
|
|
170
169
|
throw "";
|
|
171
170
|
}
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
}());
|
|
171
|
+
}
|
|
172
|
+
}
|
|
175
173
|
exports.ValueReader = ValueReader;
|
|
176
|
-
|
|
177
|
-
|
|
174
|
+
class ValueWriter {
|
|
175
|
+
constructor() {
|
|
178
176
|
this.data = [];
|
|
179
177
|
}
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
var eType = dataElement.validate();
|
|
178
|
+
write(dataElement) {
|
|
179
|
+
let eType = dataElement.validate();
|
|
183
180
|
switch (eType) {
|
|
184
181
|
case element_1.ElementType.Value:
|
|
185
182
|
this.writeU8(element_1.ElementType.Value);
|
|
@@ -187,100 +184,99 @@ var ValueWriter = /** @class */ (function () {
|
|
|
187
184
|
break;
|
|
188
185
|
case element_1.ElementType.Array:
|
|
189
186
|
this.writeU8(element_1.ElementType.Array);
|
|
190
|
-
|
|
187
|
+
let array = dataElement.array;
|
|
191
188
|
this.writeU8(array.length);
|
|
192
|
-
array.forEach(
|
|
193
|
-
|
|
189
|
+
array.forEach((element) => {
|
|
190
|
+
this.write(element);
|
|
194
191
|
});
|
|
195
192
|
break;
|
|
196
193
|
case element_1.ElementType.Fields:
|
|
197
194
|
this.writeU8(element_1.ElementType.Fields);
|
|
198
|
-
|
|
195
|
+
let fields = dataElement.fields;
|
|
199
196
|
this.writeU8(fields.size);
|
|
200
|
-
fields.forEach(
|
|
201
|
-
|
|
202
|
-
|
|
197
|
+
fields.forEach((element, key) => {
|
|
198
|
+
this.writeValue(key);
|
|
199
|
+
this.write(element);
|
|
203
200
|
});
|
|
204
201
|
break;
|
|
205
202
|
}
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
ValueWriter.prototype.appendBuffer = function (buf) {
|
|
203
|
+
}
|
|
204
|
+
appendData(data) {
|
|
205
|
+
this.data.push(...Array.from(data));
|
|
206
|
+
}
|
|
207
|
+
appendBuffer(buf) {
|
|
212
208
|
this.appendData(new Uint8Array(buf));
|
|
213
|
-
}
|
|
214
|
-
|
|
209
|
+
}
|
|
210
|
+
writeU8(value) {
|
|
215
211
|
if (typeof value !== "number") {
|
|
216
212
|
throw "value is not a number";
|
|
217
213
|
}
|
|
218
214
|
this.appendBuffer(new Uint8Array([value]));
|
|
219
|
-
}
|
|
220
|
-
|
|
215
|
+
}
|
|
216
|
+
writeU16(value) {
|
|
221
217
|
if (typeof value !== "number") {
|
|
222
218
|
throw "value is not a number";
|
|
223
219
|
}
|
|
224
|
-
|
|
225
|
-
|
|
220
|
+
let buf = new ArrayBuffer(2);
|
|
221
|
+
let view = new DataView(buf);
|
|
226
222
|
view.setUint16(0, value, false);
|
|
227
223
|
this.appendBuffer(buf);
|
|
228
|
-
}
|
|
229
|
-
|
|
224
|
+
}
|
|
225
|
+
writeU32(value) {
|
|
230
226
|
if (typeof value !== "number") {
|
|
231
227
|
throw "value is not a number";
|
|
232
228
|
}
|
|
233
|
-
|
|
234
|
-
|
|
229
|
+
let buf = new ArrayBuffer(4);
|
|
230
|
+
let view = new DataView(buf);
|
|
235
231
|
view.setUint32(0, value, false);
|
|
236
232
|
this.appendBuffer(buf);
|
|
237
|
-
}
|
|
238
|
-
|
|
233
|
+
}
|
|
234
|
+
writeU64(value) {
|
|
239
235
|
if (typeof value !== "bigint") {
|
|
240
236
|
throw "value is not a bigint";
|
|
241
237
|
}
|
|
242
|
-
|
|
243
|
-
|
|
238
|
+
let buf = new ArrayBuffer(8);
|
|
239
|
+
let view = new DataView(buf);
|
|
244
240
|
view.setBigUint64(0, value, false);
|
|
245
241
|
this.appendBuffer(buf);
|
|
246
|
-
}
|
|
247
|
-
|
|
242
|
+
}
|
|
243
|
+
writeU128(value) {
|
|
248
244
|
if (typeof value !== "bigint") {
|
|
249
245
|
throw "value is not a bigint";
|
|
250
246
|
}
|
|
251
|
-
|
|
252
|
-
for (
|
|
253
|
-
|
|
247
|
+
let bytes = [];
|
|
248
|
+
for (let i = 0; i < 16; i++) {
|
|
249
|
+
let byte = Number((value >> BigInt(8 * (15 - i))) & BigInt(0xFF));
|
|
254
250
|
bytes.push(byte);
|
|
255
251
|
}
|
|
256
252
|
this.appendData(new Uint8Array(bytes));
|
|
257
|
-
}
|
|
258
|
-
|
|
253
|
+
}
|
|
254
|
+
writeString(value) {
|
|
259
255
|
if (typeof value !== "string") {
|
|
260
256
|
throw "value is not string";
|
|
261
257
|
}
|
|
262
|
-
|
|
263
|
-
|
|
258
|
+
let encoder = new TextEncoder();
|
|
259
|
+
let data = encoder.encode(value);
|
|
264
260
|
if (data.length > MaxStringSize) {
|
|
265
261
|
throw ErrMaxStringSize;
|
|
266
262
|
}
|
|
267
263
|
this.writeU8(data.length);
|
|
268
264
|
this.appendData(data);
|
|
269
|
-
}
|
|
270
|
-
|
|
265
|
+
}
|
|
266
|
+
writeBool(value) {
|
|
271
267
|
if (typeof value !== "boolean") {
|
|
272
268
|
throw "value is not a boolean";
|
|
273
269
|
}
|
|
274
270
|
this.writeU8(value ? 1 : 0);
|
|
275
|
-
}
|
|
276
|
-
|
|
271
|
+
}
|
|
272
|
+
writeBlob(value) {
|
|
277
273
|
this.writeU8(value.length);
|
|
278
274
|
this.appendData(new Uint8Array(value));
|
|
279
|
-
}
|
|
280
|
-
|
|
275
|
+
}
|
|
276
|
+
writeHash(value) {
|
|
281
277
|
this.appendData(value);
|
|
282
|
-
}
|
|
283
|
-
|
|
278
|
+
}
|
|
279
|
+
writeValue(value) {
|
|
284
280
|
switch (value.vType) {
|
|
285
281
|
case ValueType.Bool:
|
|
286
282
|
this.writeU8(ValueType.Bool);
|
|
@@ -321,7 +317,6 @@ var ValueWriter = /** @class */ (function () {
|
|
|
321
317
|
default:
|
|
322
318
|
throw ErrUnsupportedValue(value);
|
|
323
319
|
}
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
}());
|
|
320
|
+
}
|
|
321
|
+
}
|
|
327
322
|
exports.ValueWriter = ValueWriter;
|
package/dist/cjs/react/daemon.js
CHANGED
|
@@ -22,97 +22,87 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
26
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
27
|
-
if (ar || !(i in from)) {
|
|
28
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
29
|
-
ar[i] = from[i];
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
33
|
-
};
|
|
34
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
27
|
};
|
|
37
|
-
exports
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
29
|
exports.useNodeSocket = exports.useNodeSocketSubscribe = exports.NodeSocketProvider = exports.INITIATING = void 0;
|
|
39
|
-
|
|
40
|
-
|
|
30
|
+
const react_1 = __importStar(require("react"));
|
|
31
|
+
const websocket_1 = __importDefault(require("../daemon/websocket"));
|
|
41
32
|
exports.INITIATING = -1;
|
|
42
|
-
|
|
33
|
+
const Context = (0, react_1.createContext)({
|
|
43
34
|
err: undefined,
|
|
44
35
|
daemon: undefined,
|
|
45
36
|
readyState: exports.INITIATING
|
|
46
37
|
});
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
(0, react_1.useEffect)(
|
|
53
|
-
|
|
38
|
+
const NodeSocketProvider = (props) => {
|
|
39
|
+
const { children, endpoint, timeout } = props;
|
|
40
|
+
const [readyState, setReadyState] = (0, react_1.useState)(exports.INITIATING);
|
|
41
|
+
const [err, setErr] = (0, react_1.useState)();
|
|
42
|
+
const [daemon, setDaemon] = (0, react_1.useState)();
|
|
43
|
+
(0, react_1.useEffect)(() => {
|
|
44
|
+
const daemon = new websocket_1.default(endpoint);
|
|
54
45
|
setDaemon(daemon);
|
|
55
|
-
return
|
|
46
|
+
return () => daemon.socket.close();
|
|
56
47
|
}, [endpoint]);
|
|
57
|
-
(0, react_1.useEffect)(
|
|
48
|
+
(0, react_1.useEffect)(() => {
|
|
58
49
|
if (!timeout)
|
|
59
50
|
return;
|
|
60
51
|
if (daemon)
|
|
61
52
|
daemon.callTimeout = timeout;
|
|
62
53
|
}, [timeout]);
|
|
63
|
-
(0, react_1.useEffect)(
|
|
54
|
+
(0, react_1.useEffect)(() => {
|
|
64
55
|
if (!daemon)
|
|
65
56
|
return;
|
|
66
57
|
setReadyState(daemon.socket.readyState);
|
|
67
|
-
|
|
58
|
+
const onOpen = () => {
|
|
68
59
|
setReadyState(daemon.socket.readyState);
|
|
69
60
|
setErr(undefined);
|
|
70
61
|
};
|
|
71
|
-
|
|
62
|
+
const onClose = (event) => {
|
|
72
63
|
if (!daemon.socket)
|
|
73
64
|
return;
|
|
74
65
|
setReadyState(daemon.socket.readyState);
|
|
75
66
|
setErr(new Error(event.reason));
|
|
76
67
|
};
|
|
77
|
-
|
|
68
|
+
const onError = (err) => {
|
|
78
69
|
if (!daemon.socket)
|
|
79
70
|
return;
|
|
80
71
|
setReadyState(daemon.socket.readyState);
|
|
81
72
|
setErr(new Error(err.message));
|
|
82
73
|
};
|
|
83
|
-
daemon.socket.addEventListener(
|
|
84
|
-
daemon.socket.addEventListener(
|
|
85
|
-
daemon.socket.addEventListener(
|
|
86
|
-
return
|
|
74
|
+
daemon.socket.addEventListener(`open`, onOpen);
|
|
75
|
+
daemon.socket.addEventListener(`close`, onClose);
|
|
76
|
+
daemon.socket.addEventListener(`error`, onError);
|
|
77
|
+
return () => {
|
|
87
78
|
if (!daemon.socket)
|
|
88
79
|
return;
|
|
89
|
-
daemon.socket.removeEventListener(
|
|
90
|
-
daemon.socket.removeEventListener(
|
|
91
|
-
daemon.socket.removeEventListener(
|
|
80
|
+
daemon.socket.removeEventListener(`open`, onOpen);
|
|
81
|
+
daemon.socket.removeEventListener(`close`, onClose);
|
|
82
|
+
daemon.socket.removeEventListener(`error`, onError);
|
|
92
83
|
};
|
|
93
84
|
}, [daemon]);
|
|
94
|
-
return react_1
|
|
85
|
+
return react_1.default.createElement(Context.Provider, { value: { daemon, err, readyState } }, children);
|
|
95
86
|
};
|
|
96
87
|
exports.NodeSocketProvider = NodeSocketProvider;
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
(0, react_1.useEffect)(function () {
|
|
88
|
+
const useNodeSocketSubscribe = ({ event, onLoad, onData }, dependencies) => {
|
|
89
|
+
const nodeSocket = (0, exports.useNodeSocket)();
|
|
90
|
+
(0, react_1.useEffect)(() => {
|
|
101
91
|
if (!nodeSocket.daemon)
|
|
102
92
|
return;
|
|
103
93
|
if (nodeSocket.readyState !== WebSocket.OPEN)
|
|
104
94
|
return;
|
|
105
|
-
if (typeof onLoad ===
|
|
95
|
+
if (typeof onLoad === `function`)
|
|
106
96
|
onLoad();
|
|
107
97
|
nodeSocket.daemon.listen(event, onData);
|
|
108
|
-
return
|
|
98
|
+
return () => {
|
|
109
99
|
if (!nodeSocket.daemon)
|
|
110
100
|
return;
|
|
111
101
|
nodeSocket.daemon.closeListener(event, onData);
|
|
112
102
|
};
|
|
113
|
-
},
|
|
103
|
+
}, [nodeSocket, ...dependencies]);
|
|
114
104
|
};
|
|
115
105
|
exports.useNodeSocketSubscribe = useNodeSocketSubscribe;
|
|
116
|
-
|
|
106
|
+
const useNodeSocket = () => (0, react_1.useContext)(Context);
|
|
117
107
|
exports.useNodeSocket = useNodeSocket;
|
|
118
|
-
exports
|
|
108
|
+
exports.default = exports.useNodeSocket;
|