@com-chain/jsc3l 2.0.1-rc.17 → 2.0.1-rc.18
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/build/connection.d.ts +1 -1
- package/build/connection.js +25 -1
- package/build/connection.js.map +1 -1
- package/package.json +1 -1
- package/src/connection.ts +25 -1
package/build/connection.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ declare abstract class ConnectionAbstract {
|
|
|
5
5
|
lookupAvailableComChainRepo(storedEndPointsSuggestion?: string[]): Promise<any>;
|
|
6
6
|
acquireEndPoint(repo: string): Promise<false | {
|
|
7
7
|
apiNodes: any;
|
|
8
|
-
endpoint: string |
|
|
8
|
+
endpoint: string | false;
|
|
9
9
|
}>;
|
|
10
10
|
getCCEndPointList(repo: string): Promise<any>;
|
|
11
11
|
selectEndPoint(nodes: string[]): Promise<string | false>;
|
package/build/connection.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import * as config from './config';
|
|
2
|
+
const wait = async (ms) => {
|
|
3
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
4
|
+
};
|
|
2
5
|
class ConnectionAbstract {
|
|
3
6
|
///
|
|
4
7
|
// [High level] Look for an available IPFS/IPNS node and return it
|
|
@@ -26,7 +29,27 @@ class ConnectionAbstract {
|
|
|
26
29
|
const apiNodes = await this.getCCEndPointList(repo);
|
|
27
30
|
if (!apiNodes)
|
|
28
31
|
return false;
|
|
29
|
-
|
|
32
|
+
let endpoint = false;
|
|
33
|
+
let retry = 10;
|
|
34
|
+
let count = 0;
|
|
35
|
+
console.log(`Pick first endpoint that pass checkdb test`);
|
|
36
|
+
while (!endpoint) {
|
|
37
|
+
if (count >= 1) {
|
|
38
|
+
await wait(200);
|
|
39
|
+
console.log(`No endpoints passed the checkdb test... retry (${count}/${retry})`);
|
|
40
|
+
}
|
|
41
|
+
endpoint = await this.selectEndPoint([...apiNodes]);
|
|
42
|
+
count++;
|
|
43
|
+
if (count >= retry) {
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (typeof endpoint === 'string') {
|
|
48
|
+
console.log(` endpoint ${endpoint} %cpassed%c the checkdb test`, 'color: #0b0;', 'color: none');
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
console.log(`Failed to find a functional endpoint passing checkdb.`);
|
|
52
|
+
}
|
|
30
53
|
return { apiNodes, endpoint };
|
|
31
54
|
}
|
|
32
55
|
///
|
|
@@ -53,6 +76,7 @@ class ConnectionAbstract {
|
|
|
53
76
|
const success = await this.testNode(node);
|
|
54
77
|
if (success)
|
|
55
78
|
return node;
|
|
79
|
+
console.log(` endpoint ${node} %cfailed%c the checkdb test`, 'color: #b00;', 'color:none');
|
|
56
80
|
nodes.splice(id, 1);
|
|
57
81
|
}
|
|
58
82
|
return false;
|
package/build/connection.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/connection.ts
CHANGED
|
@@ -2,6 +2,9 @@ import * as config from './config'
|
|
|
2
2
|
import HttpAbstract from './rest/http'
|
|
3
3
|
import * as t from './type'
|
|
4
4
|
|
|
5
|
+
const wait = async (ms: number): Promise<void> => {
|
|
6
|
+
return new Promise(resolve => setTimeout(resolve, ms))
|
|
7
|
+
}
|
|
5
8
|
|
|
6
9
|
abstract class ConnectionAbstract {
|
|
7
10
|
|
|
@@ -36,7 +39,27 @@ abstract class ConnectionAbstract {
|
|
|
36
39
|
public async acquireEndPoint (repo: string) {
|
|
37
40
|
const apiNodes = await this.getCCEndPointList(repo)
|
|
38
41
|
if (!apiNodes) return false
|
|
39
|
-
|
|
42
|
+
let endpoint: boolean | string = false
|
|
43
|
+
let retry = 10
|
|
44
|
+
let count = 0
|
|
45
|
+
console.log(`Pick first endpoint that pass checkdb test`)
|
|
46
|
+
while (!endpoint) {
|
|
47
|
+
if (count >= 1) {
|
|
48
|
+
await wait(200)
|
|
49
|
+
console.log(`No endpoints passed the checkdb test... retry (${count}/${retry})`)
|
|
50
|
+
}
|
|
51
|
+
endpoint = await this.selectEndPoint([...apiNodes])
|
|
52
|
+
count++
|
|
53
|
+
if (count >= retry) {
|
|
54
|
+
break
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (typeof endpoint === 'string') {
|
|
58
|
+
console.log(` endpoint ${endpoint} %cpassed%c the checkdb test`,
|
|
59
|
+
'color: #0b0;', 'color: none')
|
|
60
|
+
} else {
|
|
61
|
+
console.log(`Failed to find a functional endpoint passing checkdb.`)
|
|
62
|
+
}
|
|
40
63
|
return { apiNodes, endpoint }
|
|
41
64
|
}
|
|
42
65
|
|
|
@@ -66,6 +89,7 @@ abstract class ConnectionAbstract {
|
|
|
66
89
|
// check the node is up and running
|
|
67
90
|
const success = await this.testNode(node)
|
|
68
91
|
if (success) return node
|
|
92
|
+
console.log(` endpoint ${node} %cfailed%c the checkdb test`, 'color: #b00;', 'color:none')
|
|
69
93
|
nodes.splice(id, 1)
|
|
70
94
|
}
|
|
71
95
|
return false
|