@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.
@@ -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 | boolean;
8
+ endpoint: string | false;
9
9
  }>;
10
10
  getCCEndPointList(repo: string): Promise<any>;
11
11
  selectEndPoint(nodes: string[]): Promise<string | false>;
@@ -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
- const endpoint = await this.selectEndPoint(apiNodes);
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;
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAKlC,MAAe,kBAAkB;IAK/B,GAAG;IACH,kEAAkE;IAClE,GAAG;IAEI,KAAK,CAAC,2BAA2B,CAAE,yBAAoC;QAC5E,4EAA4E;QAC5E,MAAM,eAAe,GAAG,yBAAyB,IAAI,EAAE,CAAA;QAEvD,MAAM,aAAa,GAAG;YACpB,eAAe,EAAE,0CAA0C;YAC3D,MAAM,CAAC,gBAAgB,EAAE,uCAAuC;YAChE,MAAM,CAAC,kBAAkB,CAAC,kDAAkD;SAC7E,CAAA;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;YACnD,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAA;QACvB,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,GAAG;IACH,kEAAkE;IAClE,kBAAkB;IAClB,GAAG;IACI,KAAK,CAAC,eAAe,CAAE,IAAY;QACxC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QACnD,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAA;QAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;QACpD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAA;IAC/B,CAAC;IAED,GAAG;IACH,oEAAoE;IACpE,GAAG;IACH,KAAK,CAAC,iBAAiB,CAAE,IAAY;QACnC,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CACxB,IAAI,GAAG,MAAM,CAAC,SAAS,EACvB,EAAE,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;QAChC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,kCAAkC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;YAC1D,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,GAAG;IACH,qEAAqE;IACrE,GAAG;IACH,KAAK,CAAC,cAAc,CAAE,KAAe;QACnC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,qDAAqD;YACrD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;YACrD,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,CAAA;YAEtB,mCAAmC;YACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YACzC,IAAI,OAAO;gBAAE,OAAO,IAAI,CAAA;YACxB,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;QACrB,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,GAAG;IACH,4DAA4D;IAC5D,GAAG;IACH,KAAK,CAAC,QAAQ,CAAE,UAAU;QACxB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;QAC/C,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAA;QAEzB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IACjC,CAAC;IAGD,6EAA6E;IAE7E,KAAK,CAAC,SAAS,CAAE,QAAQ;QACvB,OAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,EAAE,CAAC;YACxB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;YACxD,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;YACzB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;gBAChE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAA;gBACvC,OAAO,IAAI,CAAA;YACb,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,kBAAkB,CAAC,CAAA;gBAC7D,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,CAAA;gBAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;YACxB,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,KAAK,CAAC,OAAO,CAAE,UAAU;QACvB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAChC,UAAU,GAAG,UAAU,EAAE,IAAI,EAC7B,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;YACpB,OAAO,MAAM,KAAK,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAA;QACrD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,8BAA8B,UAAU,SAAS,EAAE,GAAG,CAAC,CAAA;YACnE,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAE,UAAU;QACzB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAChC,UAAU,GAAG,cAAc,EAAE,IAAI,EACjC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;YACpB,OAAO,MAAM,KAAK,MAAM,CAAA;QAC1B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,gCAAgC,UAAU,SAAS,EAAE,GAAG,CAAC,CAAA;YACrE,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAGD;;;OAGG;IACI,KAAK,CAAC,WAAW,CAAE,IAAI,EAAE,YAAY;QAC1C,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CACxB,GAAG,IAAI,GAAG,MAAM,CAAC,UAAU,IAAI,YAAY,OAAO,EAClD,EAAE,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;CAEF;AAGD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAgB,qBAAsB,SAAQ,kBAAkB;IAS5E;;OAEG;IACI,KAAK,CAAC,2BAA2B,CAAE,yBAAoC;QAE5E,IAAI,CAAC,yBAAyB,EAAE,CAAC;YAC/B,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;YACrE,yBAAyB,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;QAC5D,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,2BAA2B,CAAC,yBAAyB,CAAC,CAAA;QAC/E,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAC7C,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IAGD;;;OAGG;IACI,KAAK,CAAC,eAAe,CAAE,IAAa;QACzC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,4DAA4D;gBAC5D,wDAAwD;gBACxD,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAA;YAC1C,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QAClB,CAAC;QACD,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QAC1D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;QACpD,CAAC;QACD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAA;QAC/C,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;QACzD,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC9D,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAA;IAC/B,CAAC;IAGD;;;;;;OAMG;IACI,KAAK,CAAC,WAAW,CAAE,YAAoB,EAAE,IAAa;QAC3D,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,4DAA4D;gBAC5D,wDAAwD;gBACxD,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAA;YAC1C,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QAClB,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;QACxD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;QACxC,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QAC5D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,qCAAqC;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,MAAM,CAAC,SAAS,CAAA;QACxC,OAAO,IAAI,CAAA;IACb,CAAC;IAGD;;;OAGG;IACI,gBAAgB;QACrB,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC,IAAI,CAAA;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QACtD,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAC9C,kDAAkD;QAClD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YACpB,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,SAAS,CAAA;QAC9C,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;CAEF"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@com-chain/jsc3l",
3
- "version": "2.0.1-rc.17",
3
+ "version": "2.0.1-rc.18",
4
4
  "description": "JavaScript Com-Chain Communication Library",
5
5
  "main": "build/index.js",
6
6
  "scripts": {
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
- const endpoint = await this.selectEndPoint(apiNodes)
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