@or-sdk/data-hub 0.2.0 → 0.6.0
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/DataHub.js +131 -0
- package/dist/cjs/DataHub.js.map +1 -1
- package/dist/cjs/constants.js +3 -2
- package/dist/cjs/constants.js.map +1 -1
- package/dist/esm/DataHub.js +62 -2
- package/dist/esm/DataHub.js.map +1 -1
- package/dist/esm/constants.js +4 -1
- package/dist/esm/constants.js.map +1 -1
- package/dist/types/DataHub.d.ts +3 -1
- package/dist/types/constants.d.ts +2 -1
- package/dist/types/types.d.ts +38 -0
- package/package.json +7 -4
- package/src/DataHub.ts +101 -6
- package/src/constants.ts +5 -1
- package/src/types.ts +45 -1
package/dist/cjs/DataHub.js
CHANGED
|
@@ -14,10 +14,67 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
14
14
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
15
|
};
|
|
16
16
|
})();
|
|
17
|
+
var __assign = (this && this.__assign) || function () {
|
|
18
|
+
__assign = Object.assign || function(t) {
|
|
19
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
20
|
+
s = arguments[i];
|
|
21
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
22
|
+
t[p] = s[p];
|
|
23
|
+
}
|
|
24
|
+
return t;
|
|
25
|
+
};
|
|
26
|
+
return __assign.apply(this, arguments);
|
|
27
|
+
};
|
|
28
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
29
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
30
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
31
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
32
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
33
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
34
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
38
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
39
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
40
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
41
|
+
function step(op) {
|
|
42
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
43
|
+
while (_) try {
|
|
44
|
+
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;
|
|
45
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
46
|
+
switch (op[0]) {
|
|
47
|
+
case 0: case 1: t = op; break;
|
|
48
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
49
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
50
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
51
|
+
default:
|
|
52
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
53
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
54
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
55
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
56
|
+
if (t[2]) _.ops.pop();
|
|
57
|
+
_.trys.pop(); continue;
|
|
58
|
+
}
|
|
59
|
+
op = body.call(thisArg, _);
|
|
60
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
61
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
65
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
66
|
+
if (ar || !(i in from)) {
|
|
67
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
68
|
+
ar[i] = from[i];
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
72
|
+
};
|
|
17
73
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
74
|
exports.DataHub = void 0;
|
|
19
75
|
var base_1 = require("@or-sdk/base");
|
|
20
76
|
var constants_1 = require("./constants");
|
|
77
|
+
var uuid_1 = require("uuid");
|
|
21
78
|
var DataHub = (function (_super) {
|
|
22
79
|
__extends(DataHub, _super);
|
|
23
80
|
function DataHub(params) {
|
|
@@ -34,6 +91,80 @@ var DataHub = (function (_super) {
|
|
|
34
91
|
DataHub.prototype.makeRequest = function (params) {
|
|
35
92
|
return this.callApi(params);
|
|
36
93
|
};
|
|
94
|
+
DataHub.prototype.subscribe = function (requestId) {
|
|
95
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
96
|
+
var counter, variables, data, result;
|
|
97
|
+
return __generator(this, function (_a) {
|
|
98
|
+
switch (_a.label) {
|
|
99
|
+
case 0:
|
|
100
|
+
if (!requestId) {
|
|
101
|
+
throw new Error('subscription error: requestId is required');
|
|
102
|
+
}
|
|
103
|
+
counter = 0;
|
|
104
|
+
_a.label = 1;
|
|
105
|
+
case 1:
|
|
106
|
+
counter++;
|
|
107
|
+
return [4, (0, base_1.timeout)(1000)];
|
|
108
|
+
case 2:
|
|
109
|
+
_a.sent();
|
|
110
|
+
variables = {
|
|
111
|
+
requestId: requestId,
|
|
112
|
+
hash: (0, uuid_1.v4)(),
|
|
113
|
+
};
|
|
114
|
+
data = {
|
|
115
|
+
operationName: 'checkExecutionResult',
|
|
116
|
+
query: constants_1.QUERY_CHECK_EXECUTION_RESULT,
|
|
117
|
+
variables: variables,
|
|
118
|
+
};
|
|
119
|
+
return [4, this.makeRequest({
|
|
120
|
+
method: 'POST',
|
|
121
|
+
route: '/graphql',
|
|
122
|
+
data: data,
|
|
123
|
+
})];
|
|
124
|
+
case 3:
|
|
125
|
+
result = (_a.sent()).data.checkExecutionResult;
|
|
126
|
+
if (result.status !== 'pending') {
|
|
127
|
+
if (result.error) {
|
|
128
|
+
throw result.error;
|
|
129
|
+
}
|
|
130
|
+
return [2, result];
|
|
131
|
+
}
|
|
132
|
+
_a.label = 4;
|
|
133
|
+
case 4:
|
|
134
|
+
if (counter < 100) return [3, 1];
|
|
135
|
+
_a.label = 5;
|
|
136
|
+
case 5: throw new Error('subscription error: polling is too long');
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
};
|
|
141
|
+
DataHub.prototype.getFullList = function (method, route, data) {
|
|
142
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
143
|
+
var resultList, resultFullList, result;
|
|
144
|
+
return __generator(this, function (_a) {
|
|
145
|
+
switch (_a.label) {
|
|
146
|
+
case 0:
|
|
147
|
+
resultFullList = [];
|
|
148
|
+
_a.label = 1;
|
|
149
|
+
case 1: return [4, this.makeRequest({
|
|
150
|
+
method: method,
|
|
151
|
+
route: route,
|
|
152
|
+
data: data,
|
|
153
|
+
})];
|
|
154
|
+
case 2:
|
|
155
|
+
result = _a.sent();
|
|
156
|
+
resultList = result.data.list;
|
|
157
|
+
resultFullList = __spreadArray(__spreadArray([], resultFullList, true), resultList.records, true);
|
|
158
|
+
data.variables.params = __assign(__assign({}, data.variables.params), { last: resultList.last });
|
|
159
|
+
_a.label = 3;
|
|
160
|
+
case 3:
|
|
161
|
+
if (resultList.last) return [3, 1];
|
|
162
|
+
_a.label = 4;
|
|
163
|
+
case 4: return [2, resultFullList];
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
};
|
|
37
168
|
return DataHub;
|
|
38
169
|
}(base_1.Base));
|
|
39
170
|
exports.DataHub = DataHub;
|
package/dist/cjs/DataHub.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataHub.js","sourceRoot":"","sources":["../../src/DataHub.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DataHub.js","sourceRoot":"","sources":["../../src/DataHub.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAA2D;AAS3D,yCAAwE;AACxE,6BAAoC;AASpC;IAA6B,2BAAI;IAO/B,iBAAY,MAAqB;QAAjC,iBASC;QARS,IAAA,KAAK,GAAmB,MAAM,MAAzB,EAAE,YAAY,GAAK,MAAM,aAAX,CAAY;QAEvC,QAAA,kBAAM;YACJ,KAAK,OAAA;YACL,YAAY,cAAA;YACZ,UAAU,EAAE,uBAAW;YACvB,gBAAgB,EAAE,IAAI;SACvB,CAAC,SAAC;;IACL,CAAC;IAaM,6BAAW,GAAlB,UAAsB,MAAoB;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAQY,2BAAS,GAAtB,UAAuB,SAAiB;;;;;;wBACtC,IAAI,CAAC,SAAS,EAAE;4BACd,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;yBAC9D;wBAEG,OAAO,GAAG,CAAC,CAAC;;;wBAGd,OAAO,EAAE,CAAC;wBACV,WAAM,IAAA,cAAO,EAAC,IAAI,CAAC,EAAA;;wBAAnB,SAAmB,CAAC;wBAEd,SAAS,GAAG;4BAChB,SAAS,WAAA;4BACT,IAAI,EAAE,IAAA,SAAM,GAAE;yBACf,CAAC;wBAEI,IAAI,GAAG;4BACX,aAAa,EAAE,sBAAsB;4BACrC,KAAK,EAAE,wCAA4B;4BACnC,SAAS,WAAA;yBACV,CAAC;wBAEkE,WAAM,IAAI,CAAC,WAAW,CAAC;gCACzF,MAAM,EAAE,MAAM;gCACd,KAAK,EAAE,UAAU;gCACjB,IAAI,MAAA;6BACL,CAAC,EAAA;;wBAJoC,MAAM,GAAwB,CAAA,SAIlE,CAAA,0BAJ0C;wBAM5C,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE;4BAC/B,IAAI,MAAM,CAAC,KAAK,EAAE;gCAChB,MAAM,MAAM,CAAC,KAAK,CAAC;6BACpB;4BAED,WAAO,MAAM,EAAC;yBACf;;;4BAEM,OAAO,GAAG,GAAG;;4BAEtB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;;;;KAC5D;IAQY,6BAAW,GAAxB,UAA4B,MAA8B,EAAE,KAAa,EAAE,IAAwB;;;;;;wBAE7F,cAAc,GAAQ,EAAE,CAAC;;4BAGZ,WAAM,IAAI,CAAC,WAAW,CAAqB;4BACxD,MAAM,QAAA;4BACN,KAAK,OAAA;4BACL,IAAI,MAAA;yBACL,CAAC,EAAA;;wBAJI,MAAM,GAAG,SAIb;wBAEF,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;wBAC9B,cAAc,mCAAO,cAAc,SAAK,UAAU,CAAC,OAAO,OAAC,CAAC;wBAE5D,IAAI,CAAC,SAAS,CAAC,MAAM,yBAChB,IAAI,CAAC,SAAS,CAAC,MAAM,KACxB,IAAI,EAAE,UAAU,CAAC,IAAI,GACtB,CAAC;;;4BAEK,UAAU,CAAC,IAAI;;4BAExB,WAAO,cAAc,EAAC;;;;KACvB;IAEH,cAAC;AAAD,CAAC,AA9GD,CAA6B,WAAI,GA8GhC;AA9GY,0BAAO"}
|
package/dist/cjs/constants.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SERVICE_KEY = void 0;
|
|
4
|
-
exports.SERVICE_KEY = '
|
|
3
|
+
exports.QUERY_CHECK_EXECUTION_RESULT = exports.SERVICE_KEY = void 0;
|
|
4
|
+
exports.SERVICE_KEY = 'data-hub';
|
|
5
|
+
exports.QUERY_CHECK_EXECUTION_RESULT = "query checkExecutionResult($hash: ID!, $requestId: String!) {\n checkExecutionResult(requestId: $requestId, hash: $hash)\n}";
|
|
5
6
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG,UAAU,CAAC;AAEzB,QAAA,4BAA4B,GAAG,8HAE1C,CAAC"}
|
package/dist/esm/DataHub.js
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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
|
+
import { Base, timeout } from '@or-sdk/base';
|
|
11
|
+
import { SERVICE_KEY, QUERY_CHECK_EXECUTION_RESULT } from './constants';
|
|
12
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
3
13
|
export class DataHub extends Base {
|
|
4
14
|
constructor(params) {
|
|
5
15
|
const { token, discoveryUrl } = params;
|
|
@@ -13,5 +23,55 @@ export class DataHub extends Base {
|
|
|
13
23
|
makeRequest(params) {
|
|
14
24
|
return this.callApi(params);
|
|
15
25
|
}
|
|
26
|
+
subscribe(requestId) {
|
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
if (!requestId) {
|
|
29
|
+
throw new Error('subscription error: requestId is required');
|
|
30
|
+
}
|
|
31
|
+
let counter = 0;
|
|
32
|
+
do {
|
|
33
|
+
counter++;
|
|
34
|
+
yield timeout(1000);
|
|
35
|
+
const variables = {
|
|
36
|
+
requestId,
|
|
37
|
+
hash: uuidv4(),
|
|
38
|
+
};
|
|
39
|
+
const data = {
|
|
40
|
+
operationName: 'checkExecutionResult',
|
|
41
|
+
query: QUERY_CHECK_EXECUTION_RESULT,
|
|
42
|
+
variables,
|
|
43
|
+
};
|
|
44
|
+
const { data: { checkExecutionResult: result } } = yield this.makeRequest({
|
|
45
|
+
method: 'POST',
|
|
46
|
+
route: '/graphql',
|
|
47
|
+
data,
|
|
48
|
+
});
|
|
49
|
+
if (result.status !== 'pending') {
|
|
50
|
+
if (result.error) {
|
|
51
|
+
throw result.error;
|
|
52
|
+
}
|
|
53
|
+
return result;
|
|
54
|
+
}
|
|
55
|
+
} while (counter < 100);
|
|
56
|
+
throw new Error('subscription error: polling is too long');
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
getFullList(method, route, data) {
|
|
60
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
61
|
+
let resultList;
|
|
62
|
+
let resultFullList = [];
|
|
63
|
+
do {
|
|
64
|
+
const result = yield this.makeRequest({
|
|
65
|
+
method,
|
|
66
|
+
route,
|
|
67
|
+
data,
|
|
68
|
+
});
|
|
69
|
+
resultList = result.data.list;
|
|
70
|
+
resultFullList = [...resultFullList, ...resultList.records];
|
|
71
|
+
data.variables.params = Object.assign(Object.assign({}, data.variables.params), { last: resultList.last });
|
|
72
|
+
} while (resultList.last);
|
|
73
|
+
return resultFullList;
|
|
74
|
+
});
|
|
75
|
+
}
|
|
16
76
|
}
|
|
17
77
|
//# sourceMappingURL=DataHub.js.map
|
package/dist/esm/DataHub.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataHub.js","sourceRoot":"","sources":["../../src/DataHub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAgB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"DataHub.js","sourceRoot":"","sources":["../../src/DataHub.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAgB,OAAO,EAAE,MAAM,cAAc,CAAC;AAS3D,OAAO,EAAE,WAAW,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AASpC,MAAM,OAAO,OAAQ,SAAQ,IAAI;IAO/B,YAAY,MAAqB;QAC/B,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;QAEvC,KAAK,CAAC;YACJ,KAAK;YACL,YAAY;YACZ,UAAU,EAAE,WAAW;YACvB,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;IACL,CAAC;IAaM,WAAW,CAAI,MAAoB;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAQY,SAAS,CAAC,SAAiB;;YACtC,IAAI,CAAC,SAAS,EAAE;gBACd,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;aAC9D;YAED,IAAI,OAAO,GAAG,CAAC,CAAC;YAEhB,GAAG;gBACD,OAAO,EAAE,CAAC;gBACV,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;gBAEpB,MAAM,SAAS,GAAG;oBAChB,SAAS;oBACT,IAAI,EAAE,MAAM,EAAE;iBACf,CAAC;gBAEF,MAAM,IAAI,GAAG;oBACX,aAAa,EAAE,sBAAsB;oBACrC,KAAK,EAAE,4BAA4B;oBACnC,SAAS;iBACV,CAAC;gBAEF,MAAM,EAAE,IAAI,EAAE,EAAE,oBAAoB,EAAE,MAAM,EAAE,EAAE,GAAoB,MAAM,IAAI,CAAC,WAAW,CAAC;oBACzF,MAAM,EAAE,MAAM;oBACd,KAAK,EAAE,UAAU;oBACjB,IAAI;iBACL,CAAC,CAAC;gBAEH,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE;oBAC/B,IAAI,MAAM,CAAC,KAAK,EAAE;wBAChB,MAAM,MAAM,CAAC,KAAK,CAAC;qBACpB;oBAED,OAAO,MAAM,CAAC;iBACf;aAEF,QAAQ,OAAO,GAAG,GAAG,EAAE;YAExB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;KAAA;IAQY,WAAW,CAAI,MAA8B,EAAE,KAAa,EAAE,IAAwB;;YACjG,IAAI,UAAkC,CAAC;YACvC,IAAI,cAAc,GAAQ,EAAE,CAAC;YAE7B,GAAG;gBACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAqB;oBACxD,MAAM;oBACN,KAAK;oBACL,IAAI;iBACL,CAAC,CAAC;gBAEH,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC9B,cAAc,GAAG,CAAC,GAAG,cAAc,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;gBAE5D,IAAI,CAAC,SAAS,CAAC,MAAM,mCAChB,IAAI,CAAC,SAAS,CAAC,MAAM,KACxB,IAAI,EAAE,UAAU,CAAC,IAAI,GACtB,CAAC;aAEH,QAAQ,UAAU,CAAC,IAAI,EAAE;YAE1B,OAAO,cAAc,CAAC;QACxB,CAAC;KAAA;CAEF"}
|
package/dist/esm/constants.js
CHANGED
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
export const SERVICE_KEY = '
|
|
1
|
+
export const SERVICE_KEY = 'data-hub';
|
|
2
|
+
export const QUERY_CHECK_EXECUTION_RESULT = `query checkExecutionResult($hash: ID!, $requestId: String!) {
|
|
3
|
+
checkExecutionResult(requestId: $requestId, hash: $hash)
|
|
4
|
+
}`;
|
|
2
5
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC;AAEtC,MAAM,CAAC,MAAM,4BAA4B,GAAG;;EAE1C,CAAC"}
|
package/dist/types/DataHub.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Base, CalApiParams } from '@or-sdk/base';
|
|
2
|
-
import { DataHubConfig } from './types';
|
|
2
|
+
import { DataHubConfig, SubscribeResultData, GraphqlRequestData } from './types';
|
|
3
3
|
export declare class DataHub extends Base {
|
|
4
4
|
constructor(params: DataHubConfig);
|
|
5
5
|
makeRequest<T>(params: CalApiParams): Promise<T>;
|
|
6
|
+
subscribe(requestId: string): Promise<SubscribeResultData>;
|
|
7
|
+
getFullList<T>(method: CalApiParams['method'], route: string, data: GraphqlRequestData): Promise<T[]>;
|
|
6
8
|
}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export declare const SERVICE_KEY = "
|
|
1
|
+
export declare const SERVICE_KEY = "data-hub";
|
|
2
|
+
export declare const QUERY_CHECK_EXECUTION_RESULT = "query checkExecutionResult($hash: ID!, $requestId: String!) {\n checkExecutionResult(requestId: $requestId, hash: $hash)\n}";
|
package/dist/types/types.d.ts
CHANGED
|
@@ -3,3 +3,41 @@ export declare type DataHubConfig = {
|
|
|
3
3
|
token: Token;
|
|
4
4
|
discoveryUrl: string;
|
|
5
5
|
};
|
|
6
|
+
export declare type SubscribeResultData = {
|
|
7
|
+
status?: string;
|
|
8
|
+
__deleted__?: {
|
|
9
|
+
deletedDate: number;
|
|
10
|
+
isCascade: {
|
|
11
|
+
BOOL: boolean;
|
|
12
|
+
};
|
|
13
|
+
isOrphan: {
|
|
14
|
+
BOOL: boolean;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
error?: string;
|
|
18
|
+
stack?: string;
|
|
19
|
+
};
|
|
20
|
+
export declare type SubscribeResult = {
|
|
21
|
+
data: {
|
|
22
|
+
checkExecutionResult: SubscribeResultData;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
export declare type GraphqlRequestData = {
|
|
26
|
+
operationName: string;
|
|
27
|
+
query: string;
|
|
28
|
+
variables: {
|
|
29
|
+
params: {
|
|
30
|
+
[key: string]: unknown;
|
|
31
|
+
};
|
|
32
|
+
[key: string]: unknown;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
export declare type GraphqlResponseList<T> = {
|
|
36
|
+
last?: string;
|
|
37
|
+
records: T[];
|
|
38
|
+
};
|
|
39
|
+
export declare type GraphqlResponse<T> = {
|
|
40
|
+
data: {
|
|
41
|
+
list: GraphqlResponseList<T>;
|
|
42
|
+
};
|
|
43
|
+
};
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
2
|
+
"version": "0.6.0",
|
|
3
3
|
"name": "@or-sdk/data-hub",
|
|
4
4
|
"main": "dist/cjs/index.js",
|
|
5
5
|
"module": "dist/esm/index.js",
|
|
6
6
|
"types": "dist/types/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"build": "npm run clean && concurrently \"npm run build:cjs\" \"npm run build:esm\" \"npm run build:types\"",
|
|
9
|
-
"build:watch": "concurrently \"npm run build:watch:cjs\" \"npm run build:watch:esm\" \"npm run build:watch:types\"",
|
|
9
|
+
"build:watch": "concurrently -r --hide 1,2 \"npm run build:watch:cjs\" \"npm run build:watch:esm\" \"npm run build:watch:types\"",
|
|
10
10
|
"build:cjs": "tsc --project tsconfig.json",
|
|
11
11
|
"build:watch:cjs": "tsc --project tsconfig.json -w",
|
|
12
12
|
"build:esm": "tsc --project tsconfig.esm.json",
|
|
@@ -16,13 +16,16 @@
|
|
|
16
16
|
"clean": "rm -rf ./dist"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
|
+
"@types/uuid": "^8.3.1",
|
|
20
|
+
"concurrently": "^6.4.0",
|
|
19
21
|
"typescript": "^4.4.4"
|
|
20
22
|
},
|
|
21
23
|
"publishConfig": {
|
|
22
24
|
"access": "public"
|
|
23
25
|
},
|
|
24
26
|
"dependencies": {
|
|
25
|
-
"@or-sdk/base": "^0.
|
|
27
|
+
"@or-sdk/base": "^0.6.0",
|
|
28
|
+
"uuid": "^8.3.2"
|
|
26
29
|
},
|
|
27
|
-
"gitHead": "
|
|
30
|
+
"gitHead": "638b7198f7b70373ea8a3248443cfd2d2d13faa2"
|
|
28
31
|
}
|
package/src/DataHub.ts
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
|
-
import { Base, CalApiParams } from '@or-sdk/base';
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import { Base, CalApiParams, timeout } from '@or-sdk/base';
|
|
2
|
+
import {
|
|
3
|
+
DataHubConfig,
|
|
4
|
+
SubscribeResult,
|
|
5
|
+
SubscribeResultData,
|
|
6
|
+
GraphqlRequestData,
|
|
7
|
+
GraphqlResponseList,
|
|
8
|
+
GraphqlResponse,
|
|
9
|
+
} from './types';
|
|
10
|
+
import { SERVICE_KEY, QUERY_CHECK_EXECUTION_RESULT } from './constants';
|
|
11
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
4
12
|
|
|
5
13
|
/**
|
|
6
14
|
* OneReach DataHub service client
|
|
7
|
-
*
|
|
15
|
+
* ## Installation:
|
|
8
16
|
* ```
|
|
9
17
|
* $ npm i @or-sdk/data-hub
|
|
10
18
|
* ```
|
|
@@ -12,10 +20,8 @@ import { SERVICE_KEY } from './constants';
|
|
|
12
20
|
export class DataHub extends Base {
|
|
13
21
|
/**
|
|
14
22
|
* ```typescript
|
|
15
|
-
*
|
|
16
23
|
* import { DataHub } from '@or-sdk/data-hub'
|
|
17
24
|
* const dataHub = new DataHub({token: 'my-account-token-string', discoveryUrl: 'http://example.tables/endpoint'});
|
|
18
|
-
*
|
|
19
25
|
* ```
|
|
20
26
|
*/
|
|
21
27
|
constructor(params: DataHubConfig) {
|
|
@@ -29,7 +35,96 @@ export class DataHub extends Base {
|
|
|
29
35
|
});
|
|
30
36
|
}
|
|
31
37
|
|
|
38
|
+
/**
|
|
39
|
+
* Make request
|
|
40
|
+
* ```typescript
|
|
41
|
+
* const result = await dataHub.makeRequest({
|
|
42
|
+
* route: '/route',
|
|
43
|
+
* method: 'GET',
|
|
44
|
+
* data: requestData,
|
|
45
|
+
* params: queryParams,
|
|
46
|
+
* });
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
32
49
|
public makeRequest<T>(params: CalApiParams): Promise<T> {
|
|
33
50
|
return this.callApi(params);
|
|
34
51
|
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Subscribe for result
|
|
55
|
+
* ```typescript
|
|
56
|
+
* const result = await dataHub.subscribe('request-id');
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
public async subscribe(requestId: string): Promise<SubscribeResultData> {
|
|
60
|
+
if (!requestId) {
|
|
61
|
+
throw new Error('subscription error: requestId is required');
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
let counter = 0;
|
|
65
|
+
|
|
66
|
+
do {
|
|
67
|
+
counter++;
|
|
68
|
+
await timeout(1000);
|
|
69
|
+
|
|
70
|
+
const variables = {
|
|
71
|
+
requestId,
|
|
72
|
+
hash: uuidv4(),
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const data = {
|
|
76
|
+
operationName: 'checkExecutionResult',
|
|
77
|
+
query: QUERY_CHECK_EXECUTION_RESULT,
|
|
78
|
+
variables,
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
const { data: { checkExecutionResult: result } }: SubscribeResult = await this.makeRequest({
|
|
82
|
+
method: 'POST',
|
|
83
|
+
route: '/graphql',
|
|
84
|
+
data,
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
if (result.status !== 'pending') {
|
|
88
|
+
if (result.error) {
|
|
89
|
+
throw result.error;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
return result;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
} while (counter < 100);
|
|
96
|
+
|
|
97
|
+
throw new Error('subscription error: polling is too long');
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Get full list from paginated request
|
|
102
|
+
* ```typescript
|
|
103
|
+
* const result = await dataHub.getFullList('POST', '/route', requestData);
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
public async getFullList<T>(method: CalApiParams['method'], route: string, data: GraphqlRequestData): Promise<T[]> {
|
|
107
|
+
let resultList: GraphqlResponseList<T>;
|
|
108
|
+
let resultFullList: T[] = [];
|
|
109
|
+
|
|
110
|
+
do {
|
|
111
|
+
const result = await this.makeRequest<GraphqlResponse<T>>({
|
|
112
|
+
method,
|
|
113
|
+
route,
|
|
114
|
+
data,
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
resultList = result.data.list;
|
|
118
|
+
resultFullList = [...resultFullList, ...resultList.records];
|
|
119
|
+
|
|
120
|
+
data.variables.params = {
|
|
121
|
+
...data.variables.params,
|
|
122
|
+
last: resultList.last,
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
} while (resultList.last);
|
|
126
|
+
|
|
127
|
+
return resultFullList;
|
|
128
|
+
}
|
|
129
|
+
|
|
35
130
|
}
|
package/src/constants.ts
CHANGED
package/src/types.ts
CHANGED
|
@@ -5,8 +5,52 @@ export type DataHubConfig = {
|
|
|
5
5
|
* token
|
|
6
6
|
*/
|
|
7
7
|
token: Token;
|
|
8
|
+
|
|
8
9
|
/**
|
|
9
|
-
*
|
|
10
|
+
* Url of OneReach service discovery api
|
|
10
11
|
*/
|
|
11
12
|
discoveryUrl: string;
|
|
12
13
|
};
|
|
14
|
+
|
|
15
|
+
export type SubscribeResultData = {
|
|
16
|
+
status?: string;
|
|
17
|
+
__deleted__?: {
|
|
18
|
+
deletedDate: number;
|
|
19
|
+
isCascade: {
|
|
20
|
+
BOOL: boolean;
|
|
21
|
+
};
|
|
22
|
+
isOrphan: {
|
|
23
|
+
BOOL: boolean;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
error?: string;
|
|
27
|
+
stack?: string;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export type SubscribeResult = {
|
|
31
|
+
data: {
|
|
32
|
+
checkExecutionResult: SubscribeResultData;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export type GraphqlRequestData = {
|
|
37
|
+
operationName: string;
|
|
38
|
+
query: string;
|
|
39
|
+
variables: {
|
|
40
|
+
params: {
|
|
41
|
+
[key: string]: unknown;
|
|
42
|
+
};
|
|
43
|
+
[key: string]: unknown;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export type GraphqlResponseList<T> = {
|
|
48
|
+
last?: string;
|
|
49
|
+
records: T[];
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export type GraphqlResponse<T> = {
|
|
53
|
+
data: {
|
|
54
|
+
list: GraphqlResponseList<T>;
|
|
55
|
+
};
|
|
56
|
+
};
|