@compassdigital/sdk.typescript 3.0.0-beta.8 → 3.0.0-rc.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/README.md +121 -8
- package/bin/gen.js +484 -0
- package/bin/index.js +3 -0
- package/gen.ts +99 -41
- package/lib/base.d.ts +134 -9
- package/lib/base.d.ts.map +1 -1
- package/lib/base.js +293 -48
- package/lib/base.js.map +1 -1
- package/lib/index.d.ts +592 -337
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +544 -245
- package/lib/index.js.map +1 -1
- package/lib/interface/announcement.d.ts.map +1 -0
- package/lib/interface/announcement.js +4 -0
- package/lib/interface/announcement.js.map +1 -0
- package/lib/interface/brand.d.ts.map +1 -0
- package/lib/interface/brand.js +4 -0
- package/lib/interface/brand.js.map +1 -0
- package/lib/{calendar.d.ts → interface/calendar.d.ts} +4 -1
- package/lib/interface/calendar.d.ts.map +1 -0
- package/lib/interface/calendar.js +4 -0
- package/lib/interface/calendar.js.map +1 -0
- package/lib/interface/config.d.ts.map +1 -0
- package/lib/interface/config.js +4 -0
- package/lib/interface/config.js.map +1 -0
- package/lib/interface/datalake.d.ts.map +1 -0
- package/lib/interface/datalake.js +4 -0
- package/lib/interface/datalake.js.map +1 -0
- package/lib/interface/delivery.d.ts.map +1 -0
- package/lib/interface/delivery.js +4 -0
- package/lib/interface/delivery.js.map +1 -0
- package/lib/interface/dh.d.ts.map +1 -0
- package/lib/interface/dh.js +4 -0
- package/lib/interface/dh.js.map +1 -0
- package/lib/interface/email.d.ts +21 -0
- package/lib/interface/email.d.ts.map +1 -0
- package/lib/interface/email.js +4 -0
- package/lib/interface/email.js.map +1 -0
- package/lib/interface/file.d.ts.map +1 -0
- package/lib/interface/file.js +4 -0
- package/lib/interface/file.js.map +1 -0
- package/lib/{kds.d.ts → interface/kds.d.ts} +1 -0
- package/lib/interface/kds.d.ts.map +1 -0
- package/lib/interface/kds.js +4 -0
- package/lib/interface/kds.js.map +1 -0
- package/lib/{location.d.ts → interface/location.d.ts} +50 -20
- package/lib/interface/location.d.ts.map +1 -0
- package/lib/interface/location.js +4 -0
- package/lib/interface/location.js.map +1 -0
- package/lib/interface/logger.d.ts.map +1 -0
- package/lib/interface/logger.js +4 -0
- package/lib/interface/logger.js.map +1 -0
- package/lib/interface/loyalty.d.ts.map +1 -0
- package/lib/interface/loyalty.js +4 -0
- package/lib/interface/loyalty.js.map +1 -0
- package/lib/interface/mealplan.d.ts.map +1 -0
- package/lib/interface/mealplan.js +4 -0
- package/lib/interface/mealplan.js.map +1 -0
- package/lib/interface/menu.d.ts +448 -0
- package/lib/interface/menu.d.ts.map +1 -0
- package/lib/interface/menu.js +4 -0
- package/lib/interface/menu.js.map +1 -0
- package/lib/interface/message.d.ts.map +1 -0
- package/lib/interface/message.js +4 -0
- package/lib/interface/message.js.map +1 -0
- package/lib/{order.d.ts → interface/order.d.ts} +11 -4
- package/lib/interface/order.d.ts.map +1 -0
- package/lib/interface/order.js +4 -0
- package/lib/interface/order.js.map +1 -0
- package/lib/{partner.d.ts → interface/partner.d.ts} +243 -4
- package/lib/interface/partner.d.ts.map +1 -0
- package/lib/interface/partner.js +4 -0
- package/lib/interface/partner.js.map +1 -0
- package/lib/{payment.d.ts → interface/payment.d.ts} +1 -0
- package/lib/interface/payment.d.ts.map +1 -0
- package/lib/interface/payment.js +4 -0
- package/lib/interface/payment.js.map +1 -0
- package/lib/{promo.d.ts → interface/promo.d.ts} +1 -0
- package/lib/interface/promo.d.ts.map +1 -0
- package/lib/interface/promo.js +4 -0
- package/lib/interface/promo.js.map +1 -0
- package/lib/{report.d.ts → interface/report.d.ts} +2 -0
- package/lib/interface/report.d.ts.map +1 -0
- package/lib/interface/report.js +4 -0
- package/lib/interface/report.js.map +1 -0
- package/lib/interface/schedule.d.ts.map +1 -0
- package/lib/interface/schedule.js +4 -0
- package/lib/interface/schedule.js.map +1 -0
- package/lib/{shoppingcart.d.ts → interface/shoppingcart.d.ts} +10 -1
- package/lib/interface/shoppingcart.d.ts.map +1 -0
- package/lib/interface/shoppingcart.js +4 -0
- package/lib/interface/shoppingcart.js.map +1 -0
- package/lib/interface/task.d.ts.map +1 -0
- package/lib/interface/task.js +4 -0
- package/lib/interface/task.js.map +1 -0
- package/lib/{user.d.ts → interface/user.d.ts} +19 -0
- package/lib/interface/user.d.ts.map +1 -0
- package/lib/interface/user.js +4 -0
- package/lib/interface/user.js.map +1 -0
- package/lib/interface/vote.d.ts.map +1 -0
- package/lib/interface/vote.js +4 -0
- package/lib/interface/vote.js.map +1 -0
- package/manifest.json +4 -0
- package/package.json +15 -5
- package/src/base.ts +315 -35
- package/src/index.ts +2630 -988
- package/src/{announcement.ts → interface/announcement.ts} +2 -0
- package/src/{brand.ts → interface/brand.ts} +2 -0
- package/src/{calendar.ts → interface/calendar.ts} +7 -1
- package/src/{config.ts → interface/config.ts} +2 -0
- package/src/{datalake.ts → interface/datalake.ts} +2 -0
- package/src/{delivery.ts → interface/delivery.ts} +2 -0
- package/src/{dh.ts → interface/dh.ts} +2 -0
- package/src/interface/email.ts +30 -0
- package/src/{file.ts → interface/file.ts} +2 -0
- package/src/{kds.ts → interface/kds.ts} +4 -0
- package/src/{location.ts → interface/location.ts} +76 -35
- package/src/{logger.ts → interface/logger.ts} +2 -0
- package/src/{loyalty.ts → interface/loyalty.ts} +2 -0
- package/src/{mealplan.ts → interface/mealplan.ts} +2 -0
- package/src/interface/menu.ts +649 -0
- package/src/{message.ts → interface/message.ts} +2 -0
- package/src/{order.ts → interface/order.ts} +21 -6
- package/src/{partner.ts → interface/partner.ts} +291 -5
- package/src/{payment.ts → interface/payment.ts} +4 -0
- package/src/{promo.ts → interface/promo.ts} +3 -0
- package/src/{report.ts → interface/report.ts} +4 -0
- package/src/{schedule.ts → interface/schedule.ts} +2 -0
- package/src/{shoppingcart.ts → interface/shoppingcart.ts} +14 -1
- package/src/{task.ts → interface/task.ts} +2 -0
- package/src/{user.ts → interface/user.ts} +34 -1
- package/src/{vote.ts → interface/vote.ts} +2 -0
- package/template.ejs +3 -3
- package/test/client.test.ts +192 -0
- package/test/gen.test.ts +22 -0
- package/lib/announcement.d.ts.map +0 -1
- package/lib/announcement.js +0 -3
- package/lib/announcement.js.map +0 -1
- package/lib/brand.d.ts.map +0 -1
- package/lib/brand.js +0 -3
- package/lib/brand.js.map +0 -1
- package/lib/calendar.d.ts.map +0 -1
- package/lib/calendar.js +0 -3
- package/lib/calendar.js.map +0 -1
- package/lib/config.d.ts.map +0 -1
- package/lib/config.js +0 -3
- package/lib/config.js.map +0 -1
- package/lib/datalake.d.ts.map +0 -1
- package/lib/datalake.js +0 -3
- package/lib/datalake.js.map +0 -1
- package/lib/delivery.d.ts.map +0 -1
- package/lib/delivery.js +0 -3
- package/lib/delivery.js.map +0 -1
- package/lib/dh.d.ts.map +0 -1
- package/lib/dh.js +0 -3
- package/lib/dh.js.map +0 -1
- package/lib/email.d.ts +0 -5
- package/lib/email.d.ts.map +0 -1
- package/lib/email.js +0 -3
- package/lib/email.js.map +0 -1
- package/lib/file.d.ts.map +0 -1
- package/lib/file.js +0 -3
- package/lib/file.js.map +0 -1
- package/lib/kds.d.ts.map +0 -1
- package/lib/kds.js +0 -3
- package/lib/kds.js.map +0 -1
- package/lib/location.d.ts.map +0 -1
- package/lib/location.js +0 -3
- package/lib/location.js.map +0 -1
- package/lib/logger.d.ts.map +0 -1
- package/lib/logger.js +0 -3
- package/lib/logger.js.map +0 -1
- package/lib/loyalty.d.ts.map +0 -1
- package/lib/loyalty.js +0 -3
- package/lib/loyalty.js.map +0 -1
- package/lib/mealplan.d.ts.map +0 -1
- package/lib/mealplan.js +0 -3
- package/lib/mealplan.js.map +0 -1
- package/lib/message.d.ts.map +0 -1
- package/lib/message.js +0 -3
- package/lib/message.js.map +0 -1
- package/lib/order.d.ts.map +0 -1
- package/lib/order.js +0 -3
- package/lib/order.js.map +0 -1
- package/lib/partner.d.ts.map +0 -1
- package/lib/partner.js +0 -3
- package/lib/partner.js.map +0 -1
- package/lib/payment.d.ts.map +0 -1
- package/lib/payment.js +0 -3
- package/lib/payment.js.map +0 -1
- package/lib/promo.d.ts.map +0 -1
- package/lib/promo.js +0 -3
- package/lib/promo.js.map +0 -1
- package/lib/report.d.ts.map +0 -1
- package/lib/report.js +0 -3
- package/lib/report.js.map +0 -1
- package/lib/schedule.d.ts.map +0 -1
- package/lib/schedule.js +0 -3
- package/lib/schedule.js.map +0 -1
- package/lib/shoppingcart.d.ts.map +0 -1
- package/lib/shoppingcart.js +0 -3
- package/lib/shoppingcart.js.map +0 -1
- package/lib/task.d.ts.map +0 -1
- package/lib/task.js +0 -3
- package/lib/task.js.map +0 -1
- package/lib/user.d.ts.map +0 -1
- package/lib/user.js +0 -3
- package/lib/user.js.map +0 -1
- package/lib/vote.d.ts.map +0 -1
- package/lib/vote.js +0 -3
- package/lib/vote.js.map +0 -1
- package/src/email.ts +0 -4
- /package/lib/{announcement.d.ts → interface/announcement.d.ts} +0 -0
- /package/lib/{brand.d.ts → interface/brand.d.ts} +0 -0
- /package/lib/{config.d.ts → interface/config.d.ts} +0 -0
- /package/lib/{datalake.d.ts → interface/datalake.d.ts} +0 -0
- /package/lib/{delivery.d.ts → interface/delivery.d.ts} +0 -0
- /package/lib/{dh.d.ts → interface/dh.d.ts} +0 -0
- /package/lib/{file.d.ts → interface/file.d.ts} +0 -0
- /package/lib/{logger.d.ts → interface/logger.d.ts} +0 -0
- /package/lib/{loyalty.d.ts → interface/loyalty.d.ts} +0 -0
- /package/lib/{mealplan.d.ts → interface/mealplan.d.ts} +0 -0
- /package/lib/{message.d.ts → interface/message.d.ts} +0 -0
- /package/lib/{schedule.d.ts → interface/schedule.d.ts} +0 -0
- /package/lib/{task.d.ts → interface/task.d.ts} +0 -0
- /package/lib/{vote.d.ts → interface/vote.d.ts} +0 -0
package/lib/base.js
CHANGED
|
@@ -64,9 +64,70 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
64
64
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
65
65
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
66
66
|
};
|
|
67
|
+
var _a;
|
|
67
68
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
68
|
-
exports.BaseServiceClient = exports.ServiceError = void 0;
|
|
69
|
+
exports.BaseServiceClient = exports.ServiceError = exports.ResponsePromise = void 0;
|
|
69
70
|
var cross_fetch_1 = __importDefault(require("cross-fetch"));
|
|
71
|
+
/**
|
|
72
|
+
* We have to re-implement the promise methods instead of just existing
|
|
73
|
+
* the existing Promise class due to: https://github.com/microsoft/TypeScript/issues/15202
|
|
74
|
+
*/
|
|
75
|
+
var ResponsePromise = /** @class */ (function () {
|
|
76
|
+
function ResponsePromise(promise) {
|
|
77
|
+
this.promise = promise;
|
|
78
|
+
/**
|
|
79
|
+
* Implements Promise interface.
|
|
80
|
+
*/
|
|
81
|
+
this[_a] = "[object ResponsePromise]";
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Implements Promise interface.
|
|
85
|
+
*/
|
|
86
|
+
ResponsePromise.prototype.then = function (onfulfilled, onrejected) {
|
|
87
|
+
return new ResponsePromise(this.promise.then(onfulfilled, onrejected));
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* Implements Promise interface.
|
|
91
|
+
*/
|
|
92
|
+
ResponsePromise.prototype.catch = function (onrejected) {
|
|
93
|
+
return new ResponsePromise(this.promise.catch(onrejected));
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Implements Promise interface.
|
|
97
|
+
*/
|
|
98
|
+
ResponsePromise.prototype.finally = function (onfinally) {
|
|
99
|
+
return new ResponsePromise(this.promise.finally(onfinally));
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* Returns a promise that resolves to null if http status code
|
|
103
|
+
* or service error code matches one of the provided codes.
|
|
104
|
+
* If no codes are specified, all codes are ignored.
|
|
105
|
+
*/
|
|
106
|
+
ResponsePromise.prototype.ignore = function () {
|
|
107
|
+
var codes = [];
|
|
108
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
109
|
+
codes[_i] = arguments[_i];
|
|
110
|
+
}
|
|
111
|
+
return new ResponsePromise(ServiceError.ignore(codes, this.promise));
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* Returns a promise that resolves to either the response body
|
|
115
|
+
* or a ServiceError.
|
|
116
|
+
*/
|
|
117
|
+
ResponsePromise.prototype.combine = function () {
|
|
118
|
+
var codes = [];
|
|
119
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
120
|
+
codes[_i] = arguments[_i];
|
|
121
|
+
}
|
|
122
|
+
return new ResponsePromise(ServiceError.combine(codes, this.promise));
|
|
123
|
+
};
|
|
124
|
+
return ResponsePromise;
|
|
125
|
+
}());
|
|
126
|
+
exports.ResponsePromise = ResponsePromise;
|
|
127
|
+
_a = Symbol.toStringTag;
|
|
128
|
+
/**
|
|
129
|
+
* An error returned from an api service.
|
|
130
|
+
*/
|
|
70
131
|
var ServiceError = /** @class */ (function (_super) {
|
|
71
132
|
__extends(ServiceError, _super);
|
|
72
133
|
function ServiceError(status, // http status
|
|
@@ -77,23 +138,136 @@ var ServiceError = /** @class */ (function (_super) {
|
|
|
77
138
|
_this.status = status;
|
|
78
139
|
_this.code = code;
|
|
79
140
|
_this.name = "ServiceError(" + code + ")";
|
|
141
|
+
// TODO: remove this if we change compilation target > es5
|
|
142
|
+
Object.setPrototypeOf(_this, ServiceError.prototype);
|
|
80
143
|
return _this;
|
|
81
144
|
}
|
|
82
|
-
|
|
145
|
+
/**
|
|
146
|
+
* Returns the http status code from err.
|
|
147
|
+
* If err isn't an instance of ServiceError, -1 is returned.
|
|
148
|
+
*/
|
|
149
|
+
ServiceError.status = function (err) {
|
|
150
|
+
if (err instanceof ServiceError) {
|
|
151
|
+
return err.status;
|
|
152
|
+
}
|
|
153
|
+
return -1;
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* Returns the service error code from err.
|
|
157
|
+
* If err isn't an instance of ServiceError, -1 is returned.
|
|
158
|
+
*/
|
|
159
|
+
ServiceError.code = function (err) {
|
|
160
|
+
if (err instanceof ServiceError) {
|
|
161
|
+
return err.code;
|
|
162
|
+
}
|
|
163
|
+
return -1;
|
|
164
|
+
};
|
|
165
|
+
/**
|
|
166
|
+
* Returns a promise that resolves to null if http status code
|
|
167
|
+
* or service error code matches one of the provided codes.
|
|
168
|
+
* If no codes are specified, all codes are ignored.
|
|
169
|
+
*/
|
|
170
|
+
ServiceError.ignore = function (codes, response) {
|
|
171
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
172
|
+
var err_1, _i, codes_1, code;
|
|
173
|
+
return __generator(this, function (_b) {
|
|
174
|
+
switch (_b.label) {
|
|
175
|
+
case 0:
|
|
176
|
+
_b.trys.push([0, 2, , 3]);
|
|
177
|
+
return [4 /*yield*/, response];
|
|
178
|
+
case 1: return [2 /*return*/, _b.sent()];
|
|
179
|
+
case 2:
|
|
180
|
+
err_1 = _b.sent();
|
|
181
|
+
if (err_1 instanceof ServiceError) {
|
|
182
|
+
if (codes.length === 0) {
|
|
183
|
+
return [2 /*return*/, null];
|
|
184
|
+
}
|
|
185
|
+
for (_i = 0, codes_1 = codes; _i < codes_1.length; _i++) {
|
|
186
|
+
code = codes_1[_i];
|
|
187
|
+
if (err_1.status === code || err_1.code === code) {
|
|
188
|
+
return [2 /*return*/, null];
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
throw err_1;
|
|
193
|
+
case 3: return [2 /*return*/];
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
};
|
|
198
|
+
/**
|
|
199
|
+
* Returns a promise that resolves to either T or a ServiceError.
|
|
200
|
+
*/
|
|
201
|
+
ServiceError.combine = function (codes, response) {
|
|
202
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
203
|
+
var data, err_2, _i, codes_2, code;
|
|
204
|
+
return __generator(this, function (_b) {
|
|
205
|
+
switch (_b.label) {
|
|
206
|
+
case 0:
|
|
207
|
+
_b.trys.push([0, 2, , 3]);
|
|
208
|
+
return [4 /*yield*/, response];
|
|
209
|
+
case 1:
|
|
210
|
+
data = _b.sent();
|
|
211
|
+
return [2 /*return*/, { ok: true, data: data, err: null }];
|
|
212
|
+
case 2:
|
|
213
|
+
err_2 = _b.sent();
|
|
214
|
+
if (err_2 instanceof ServiceError) {
|
|
215
|
+
if (codes.length === 0) {
|
|
216
|
+
return [2 /*return*/, { ok: false, data: null, err: err_2 }];
|
|
217
|
+
}
|
|
218
|
+
for (_i = 0, codes_2 = codes; _i < codes_2.length; _i++) {
|
|
219
|
+
code = codes_2[_i];
|
|
220
|
+
if (err_2.status === code || err_2.code === code) {
|
|
221
|
+
return [2 /*return*/, { ok: false, data: null, err: err_2 }];
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
throw err_2;
|
|
226
|
+
case 3: return [2 /*return*/];
|
|
227
|
+
}
|
|
228
|
+
});
|
|
229
|
+
});
|
|
230
|
+
};
|
|
231
|
+
/**
|
|
232
|
+
* Constructs a ServiceError from the provided response data.
|
|
233
|
+
*/
|
|
234
|
+
ServiceError.from_res = function (res) {
|
|
235
|
+
var message = res.body;
|
|
83
236
|
var code = res.status;
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
if (
|
|
87
|
-
|
|
88
|
-
|
|
237
|
+
if (res.err) {
|
|
238
|
+
// network error
|
|
239
|
+
if (res.err instanceof Error) {
|
|
240
|
+
message = res.err.message;
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
message = "Network Error";
|
|
244
|
+
}
|
|
245
|
+
code = 0;
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
try {
|
|
249
|
+
var data = JSON.parse(res.body);
|
|
250
|
+
if (data.code && (data.message || data.error)) {
|
|
251
|
+
code = data.code;
|
|
252
|
+
message = data.message || data.error;
|
|
253
|
+
}
|
|
89
254
|
}
|
|
255
|
+
catch (_) { }
|
|
256
|
+
}
|
|
257
|
+
var err = new ServiceError(res.status, code, message);
|
|
258
|
+
// override the stack trace so that it doesn't include the from_res helper.
|
|
259
|
+
if (Error.captureStackTrace) {
|
|
260
|
+
Error.captureStackTrace(err, ServiceError.from_res);
|
|
90
261
|
}
|
|
91
|
-
|
|
92
|
-
return new ServiceError(res.status, code, message);
|
|
262
|
+
return err;
|
|
93
263
|
};
|
|
94
264
|
return ServiceError;
|
|
95
265
|
}(Error));
|
|
96
266
|
exports.ServiceError = ServiceError;
|
|
267
|
+
/**
|
|
268
|
+
* BaseServiceClient contains the logic for executing http requests.
|
|
269
|
+
* This class is meant to be extended by the generated code.
|
|
270
|
+
*/
|
|
97
271
|
var BaseServiceClient = /** @class */ (function () {
|
|
98
272
|
function BaseServiceClient(options) {
|
|
99
273
|
this.options = options !== null && options !== void 0 ? options : {};
|
|
@@ -101,8 +275,8 @@ var BaseServiceClient = /** @class */ (function () {
|
|
|
101
275
|
/**
|
|
102
276
|
* Combine the route and query parameters into a full url.
|
|
103
277
|
*/
|
|
104
|
-
BaseServiceClient.prototype.build_url = function (route,
|
|
105
|
-
var base_url =
|
|
278
|
+
BaseServiceClient.prototype.build_url = function (route, _b, params) {
|
|
279
|
+
var base_url = _b.base_url, _c = _b.stage, stage = _c === void 0 ? "dev" : _c;
|
|
106
280
|
var url = "https://api.compassdigital.org/" + stage + route;
|
|
107
281
|
// use the base url if one was provided.
|
|
108
282
|
if (base_url) {
|
|
@@ -113,8 +287,8 @@ var BaseServiceClient = /** @class */ (function () {
|
|
|
113
287
|
}
|
|
114
288
|
// add query parameters.
|
|
115
289
|
var query = [];
|
|
116
|
-
for (var _i = 0,
|
|
117
|
-
var
|
|
290
|
+
for (var _i = 0, _d = Object.entries(params); _i < _d.length; _i++) {
|
|
291
|
+
var _e = _d[_i], name_1 = _e[0], value = _e[1];
|
|
118
292
|
query.push(encodeURIComponent(name_1) + "=" + encodeURIComponent(value));
|
|
119
293
|
}
|
|
120
294
|
if (query.length > 0) {
|
|
@@ -122,57 +296,128 @@ var BaseServiceClient = /** @class */ (function () {
|
|
|
122
296
|
}
|
|
123
297
|
return url;
|
|
124
298
|
};
|
|
125
|
-
|
|
126
|
-
|
|
299
|
+
/**
|
|
300
|
+
* Perform the http request or pass it to the intercept function
|
|
301
|
+
* if one was configured.
|
|
302
|
+
*/
|
|
303
|
+
BaseServiceClient.prototype.fetch = function (req, options) {
|
|
304
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
305
|
+
var res, err_3;
|
|
306
|
+
var _b;
|
|
307
|
+
return __generator(this, function (_c) {
|
|
308
|
+
switch (_c.label) {
|
|
309
|
+
case 0:
|
|
310
|
+
if (options === null || options === void 0 ? void 0 : options.intercept) {
|
|
311
|
+
return [2 /*return*/, options.intercept(req, this.fetch.bind(this))];
|
|
312
|
+
}
|
|
313
|
+
_c.label = 1;
|
|
314
|
+
case 1:
|
|
315
|
+
_c.trys.push([1, 4, , 5]);
|
|
316
|
+
return [4 /*yield*/, (0, cross_fetch_1.default)(req.url, {
|
|
317
|
+
method: req.method,
|
|
318
|
+
body: req.body,
|
|
319
|
+
headers: req.headers,
|
|
320
|
+
})];
|
|
321
|
+
case 2:
|
|
322
|
+
res = _c.sent();
|
|
323
|
+
_b = {
|
|
324
|
+
ok: res.ok,
|
|
325
|
+
status: res.status
|
|
326
|
+
};
|
|
327
|
+
return [4 /*yield*/, res.text()];
|
|
328
|
+
case 3: return [2 /*return*/, (_b.body = _c.sent(),
|
|
329
|
+
_b)];
|
|
330
|
+
case 4:
|
|
331
|
+
err_3 = _c.sent();
|
|
332
|
+
return [2 /*return*/, {
|
|
333
|
+
ok: false,
|
|
334
|
+
status: 0,
|
|
335
|
+
body: "",
|
|
336
|
+
err: err_3,
|
|
337
|
+
}];
|
|
338
|
+
case 5: return [2 /*return*/];
|
|
339
|
+
}
|
|
340
|
+
});
|
|
341
|
+
});
|
|
342
|
+
};
|
|
343
|
+
/**
|
|
344
|
+
* Returns true if the status code represents a transient error
|
|
345
|
+
* or it's a network error.
|
|
346
|
+
*/
|
|
347
|
+
BaseServiceClient.prototype.should_retry = function (res) {
|
|
348
|
+
if (res.err) {
|
|
349
|
+
return true;
|
|
350
|
+
}
|
|
351
|
+
switch (res.status) {
|
|
352
|
+
case 408: // timeout
|
|
353
|
+
case 413: // too large
|
|
354
|
+
case 429: // too many requests
|
|
355
|
+
case 500: // generic error response
|
|
356
|
+
case 502: // invalid upstream response
|
|
357
|
+
case 503: // service unavailable
|
|
358
|
+
case 504: // gateway timeout
|
|
359
|
+
case 522: // tcp connection timeout
|
|
360
|
+
return true;
|
|
361
|
+
default:
|
|
362
|
+
return false;
|
|
363
|
+
}
|
|
364
|
+
};
|
|
365
|
+
/**
|
|
366
|
+
* Returns the merged options.
|
|
367
|
+
*/
|
|
368
|
+
BaseServiceClient.prototype.get_options = function (options) {
|
|
369
|
+
return __assign(__assign(__assign({}, this.options), options), { headers: __assign(__assign({}, this.options.headers), options.headers) });
|
|
370
|
+
};
|
|
371
|
+
/**
|
|
372
|
+
* A delegate to _request that wraps the response in a ResponsePromise.
|
|
373
|
+
*/
|
|
374
|
+
BaseServiceClient.prototype.request = function (service, name, method, route, body, options) {
|
|
375
|
+
if (options === void 0) { options = {}; }
|
|
376
|
+
var promise = this._request(service, name, method, route, body, options);
|
|
377
|
+
return new ResponsePromise(promise);
|
|
127
378
|
};
|
|
128
|
-
|
|
129
|
-
|
|
379
|
+
/**
|
|
380
|
+
* The main logic for fulfilling a request as perscribed by
|
|
381
|
+
* the request options.
|
|
382
|
+
*/
|
|
383
|
+
BaseServiceClient.prototype._request = function (service, name, method, route, body, options) {
|
|
384
|
+
var _b;
|
|
130
385
|
if (options === void 0) { options = {}; }
|
|
131
386
|
return __awaiter(this, void 0, void 0, function () {
|
|
132
|
-
var url, headers, req, res,
|
|
133
|
-
return __generator(this, function (
|
|
134
|
-
switch (
|
|
387
|
+
var url, headers, req, res, err, data;
|
|
388
|
+
return __generator(this, function (_c) {
|
|
389
|
+
switch (_c.label) {
|
|
135
390
|
case 0:
|
|
136
|
-
options =
|
|
137
|
-
url = this.build_url(route, options, (
|
|
138
|
-
headers = Object.assign({
|
|
391
|
+
options = this.get_options(options);
|
|
392
|
+
url = this.build_url(route, options, (_b = options.query) !== null && _b !== void 0 ? _b : {});
|
|
393
|
+
headers = Object.assign({
|
|
394
|
+
"User-Agent": "CDL/ServiceClient"
|
|
395
|
+
}, options.headers);
|
|
139
396
|
if (options.token) {
|
|
140
397
|
headers["Authorization"] = "Bearer " + options.token;
|
|
141
398
|
}
|
|
142
|
-
req = {
|
|
143
|
-
method: method,
|
|
144
|
-
headers: headers,
|
|
145
|
-
};
|
|
399
|
+
req = { name: name, service: service, url: url, method: method, headers: headers };
|
|
146
400
|
if (body) {
|
|
147
401
|
req.body = JSON.stringify(body);
|
|
148
402
|
}
|
|
149
403
|
if (options.debug) {
|
|
150
404
|
console.log("REQ(" + method.toUpperCase() + ")", url, JSON.stringify(req, null, 2));
|
|
151
405
|
}
|
|
152
|
-
return [4 /*yield*/,
|
|
406
|
+
return [4 /*yield*/, this.fetch(req, options)];
|
|
153
407
|
case 1:
|
|
154
|
-
res =
|
|
155
|
-
if (
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
return [2 /*return*/, null];
|
|
408
|
+
res = _c.sent();
|
|
409
|
+
if (!res.ok) {
|
|
410
|
+
err = ServiceError.from_res(res);
|
|
411
|
+
if (options.debug) {
|
|
412
|
+
console.log("ERR(" + res.status + ")", url, err.message);
|
|
160
413
|
}
|
|
414
|
+
if (typeof options.retry === "number" && options.retry > 0 && this.should_retry(res)) {
|
|
415
|
+
options.retry--;
|
|
416
|
+
return [2 /*return*/, this.request(service, name, method, route, body, options)];
|
|
417
|
+
}
|
|
418
|
+
throw err;
|
|
161
419
|
}
|
|
162
|
-
|
|
163
|
-
case 2:
|
|
164
|
-
text = _d.sent();
|
|
165
|
-
if (options.debug) {
|
|
166
|
-
console.log("ERR(" + res.status + ")", url, text);
|
|
167
|
-
}
|
|
168
|
-
if (typeof options.retry === "number" && options.retry > 0 && !this.is_4xx(res)) {
|
|
169
|
-
options.retry--;
|
|
170
|
-
return [2 /*return*/, this.request(method, route, body, options)];
|
|
171
|
-
}
|
|
172
|
-
throw ServiceError.from_res(res, text);
|
|
173
|
-
case 3: return [4 /*yield*/, res.json()];
|
|
174
|
-
case 4:
|
|
175
|
-
data = _d.sent();
|
|
420
|
+
data = res.body ? JSON.parse(res.body) : res.body;
|
|
176
421
|
if (options.debug) {
|
|
177
422
|
console.log("RES(" + res.status + ")", url, JSON.stringify(data, null, 2));
|
|
178
423
|
}
|
package/lib/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"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"}
|