api-def 0.9.1 → 0.9.3

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.
Files changed (122) hide show
  1. package/README.md +1 -1
  2. package/cjs/Api.d.ts +35 -35
  3. package/cjs/Api.js +140 -144
  4. package/cjs/ApiConstants.d.ts +58 -58
  5. package/cjs/ApiConstants.js +55 -55
  6. package/cjs/ApiTypes.d.ts +103 -103
  7. package/cjs/ApiTypes.js +4 -4
  8. package/cjs/ApiUtils.d.ts +6 -6
  9. package/cjs/ApiUtils.js +51 -53
  10. package/cjs/Endpoint.d.ts +52 -52
  11. package/cjs/Endpoint.js +104 -108
  12. package/cjs/EndpointBuilder.d.ts +14 -14
  13. package/cjs/EndpointBuilder.js +46 -46
  14. package/cjs/MockingTypes.d.ts +30 -30
  15. package/cjs/MockingTypes.js +2 -2
  16. package/cjs/QueryHandling.d.ts +3 -3
  17. package/cjs/QueryHandling.js +24 -24
  18. package/cjs/RequestConfig.d.ts +2 -2
  19. package/cjs/RequestConfig.js +74 -74
  20. package/cjs/RequestContext.d.ts +48 -48
  21. package/cjs/RequestContext.js +235 -238
  22. package/cjs/RequestError.d.ts +30 -30
  23. package/cjs/RequestError.js +47 -47
  24. package/cjs/Requester.d.ts +3 -3
  25. package/cjs/Requester.js +335 -336
  26. package/cjs/TextDecoding.d.ts +1 -1
  27. package/cjs/TextDecoding.js +152 -139
  28. package/cjs/UtilTypes.d.ts +5 -5
  29. package/cjs/UtilTypes.js +2 -2
  30. package/cjs/Utils.d.ts +15 -15
  31. package/cjs/Utils.js +79 -77
  32. package/cjs/Validation.d.ts +8 -8
  33. package/cjs/Validation.js +2 -2
  34. package/cjs/backend/AxiosRequestBackend.d.ts +13 -13
  35. package/cjs/backend/AxiosRequestBackend.js +99 -99
  36. package/cjs/backend/FetchRequestBackend.d.ts +15 -15
  37. package/cjs/backend/FetchRequestBackend.js +203 -202
  38. package/cjs/backend/MockRequestBackend.d.ts +11 -11
  39. package/cjs/backend/MockRequestBackend.js +164 -164
  40. package/cjs/backend/RequestBackend.d.ts +19 -19
  41. package/cjs/backend/RequestBackend.js +2 -2
  42. package/cjs/cache/CacheBackend.d.ts +6 -6
  43. package/cjs/cache/CacheBackend.js +2 -2
  44. package/cjs/cache/Caching.d.ts +10 -10
  45. package/cjs/cache/Caching.js +88 -88
  46. package/cjs/cache/LocalForageCacheBackend.d.ts +9 -9
  47. package/cjs/cache/LocalForageCacheBackend.js +24 -24
  48. package/cjs/cache/LocalStorageCacheBackend.d.ts +7 -7
  49. package/cjs/cache/LocalStorageCacheBackend.js +77 -77
  50. package/cjs/index.d.ts +13 -13
  51. package/cjs/index.js +41 -41
  52. package/cjs/middleware/CacheMiddleware.d.ts +7 -7
  53. package/cjs/middleware/CacheMiddleware.js +107 -107
  54. package/cjs/middleware/LoggingMiddleware.d.ts +6 -6
  55. package/cjs/middleware/LoggingMiddleware.js +82 -88
  56. package/cjs/util/retry/index.d.ts +3 -3
  57. package/cjs/util/retry/index.js +52 -52
  58. package/cjs/util/retry/lib/retry.d.ts +3 -3
  59. package/cjs/util/retry/lib/retry.js +50 -54
  60. package/cjs/util/retry/lib/retryOperation.d.ts +27 -27
  61. package/cjs/util/retry/lib/retryOperation.js +130 -134
  62. package/esm/Api.d.ts +35 -35
  63. package/esm/Api.js +92 -98
  64. package/esm/ApiConstants.d.ts +58 -58
  65. package/esm/ApiConstants.js +52 -52
  66. package/esm/ApiTypes.d.ts +103 -103
  67. package/esm/ApiTypes.js +1 -1
  68. package/esm/ApiUtils.d.ts +6 -6
  69. package/esm/ApiUtils.js +43 -45
  70. package/esm/Endpoint.d.ts +52 -52
  71. package/esm/Endpoint.js +66 -70
  72. package/esm/EndpointBuilder.d.ts +14 -14
  73. package/esm/EndpointBuilder.js +31 -31
  74. package/esm/MockingTypes.d.ts +30 -30
  75. package/esm/MockingTypes.js +1 -1
  76. package/esm/QueryHandling.d.ts +3 -3
  77. package/esm/QueryHandling.js +19 -19
  78. package/esm/RequestConfig.d.ts +2 -2
  79. package/esm/RequestConfig.js +56 -56
  80. package/esm/RequestContext.d.ts +48 -48
  81. package/esm/RequestContext.js +167 -170
  82. package/esm/RequestError.d.ts +30 -30
  83. package/esm/RequestError.js +42 -42
  84. package/esm/Requester.d.ts +3 -3
  85. package/esm/Requester.js +252 -253
  86. package/esm/TextDecoding.d.ts +1 -1
  87. package/esm/TextDecoding.js +148 -135
  88. package/esm/UtilTypes.d.ts +5 -5
  89. package/esm/UtilTypes.js +1 -1
  90. package/esm/Utils.d.ts +15 -15
  91. package/esm/Utils.js +66 -68
  92. package/esm/Validation.d.ts +8 -8
  93. package/esm/Validation.js +1 -1
  94. package/esm/backend/AxiosRequestBackend.d.ts +13 -13
  95. package/esm/backend/AxiosRequestBackend.js +62 -62
  96. package/esm/backend/FetchRequestBackend.d.ts +15 -15
  97. package/esm/backend/FetchRequestBackend.js +136 -136
  98. package/esm/backend/MockRequestBackend.d.ts +11 -11
  99. package/esm/backend/MockRequestBackend.js +116 -116
  100. package/esm/backend/RequestBackend.d.ts +19 -19
  101. package/esm/backend/RequestBackend.js +1 -1
  102. package/esm/cache/CacheBackend.d.ts +6 -6
  103. package/esm/cache/CacheBackend.js +1 -1
  104. package/esm/cache/Caching.d.ts +10 -10
  105. package/esm/cache/Caching.js +39 -39
  106. package/esm/cache/LocalForageCacheBackend.d.ts +9 -9
  107. package/esm/cache/LocalForageCacheBackend.js +20 -20
  108. package/esm/cache/LocalStorageCacheBackend.d.ts +7 -7
  109. package/esm/cache/LocalStorageCacheBackend.js +32 -32
  110. package/esm/index.d.ts +13 -13
  111. package/esm/index.js +14 -15
  112. package/esm/middleware/CacheMiddleware.d.ts +7 -7
  113. package/esm/middleware/CacheMiddleware.js +58 -58
  114. package/esm/middleware/LoggingMiddleware.d.ts +6 -6
  115. package/esm/middleware/LoggingMiddleware.js +77 -83
  116. package/esm/util/retry/index.d.ts +3 -3
  117. package/esm/util/retry/index.js +50 -50
  118. package/esm/util/retry/lib/retry.d.ts +3 -3
  119. package/esm/util/retry/lib/retry.js +35 -39
  120. package/esm/util/retry/lib/retryOperation.d.ts +27 -27
  121. package/esm/util/retry/lib/retryOperation.js +126 -132
  122. package/package.json +19 -34
@@ -1,164 +1,164 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- 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;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- var Utils = require("../Utils");
40
- var Utils_1 = require("../Utils");
41
- var RequestError_1 = require("../RequestError");
42
- var MockRequestBackend = /** @class */ (function () {
43
- function MockRequestBackend() {
44
- this.id = "mock";
45
- }
46
- MockRequestBackend.prototype.convertResponse = function (context, response, error) {
47
- return __awaiter(this, void 0, void 0, function () {
48
- return __generator(this, function (_a) {
49
- return [2 /*return*/, response];
50
- });
51
- });
52
- };
53
- MockRequestBackend.prototype.extractResponseFromError = function (error) {
54
- return __awaiter(this, void 0, void 0, function () {
55
- var fetchError;
56
- return __generator(this, function (_a) {
57
- if ("response" in error) {
58
- fetchError = error;
59
- return [2 /*return*/, fetchError.response ? fetchError.response : null];
60
- }
61
- return [2 /*return*/, undefined];
62
- });
63
- });
64
- };
65
- MockRequestBackend.prototype.runRequest = function (context) {
66
- var _a, _b, _c, _d;
67
- return __awaiter(this, void 0, void 0, function () {
68
- var mockingFunc, req, res, delay, delayMs, min, max, _e, parsedHeaders;
69
- return __generator(this, function (_f) {
70
- switch (_f.label) {
71
- case 0:
72
- mockingFunc = (_a = context.mocking) === null || _a === void 0 ? void 0 : _a.handler;
73
- if (!mockingFunc) {
74
- throw (0, RequestError_1.convertToRequestError)({
75
- error: new Error("[api-def] Attempted to run mocked request without mocking function"),
76
- code: RequestError_1.RequestErrorCode.REQUEST_INVALID_CONFIG,
77
- context: context,
78
- });
79
- }
80
- req = {
81
- body: context.getParsedBody(),
82
- params: (_b = context.computedConfig.params) !== null && _b !== void 0 ? _b : {},
83
- query: context.computedConfig.queryObject,
84
- headers: (_c = context.computedConfig.headers) !== null && _c !== void 0 ? _c : {},
85
- url: context.requestUrl.toString(),
86
- };
87
- res = {
88
- statusCode: -1,
89
- headers: {},
90
- response: undefined,
91
- status: function (statusCode) {
92
- res.statusCode = statusCode;
93
- return res;
94
- },
95
- send: function (response) {
96
- res.response = response;
97
- if (response && typeof response === "object") {
98
- res.headers["Content-Type"] = "application/json";
99
- }
100
- return res;
101
- },
102
- };
103
- if (!((_d = context.mocking) === null || _d === void 0 ? void 0 : _d.delay)) return [3 /*break*/, 3];
104
- delay = context.mocking.delay;
105
- delayMs = void 0;
106
- if (typeof delay === "number") {
107
- delayMs = delay;
108
- }
109
- else {
110
- min = delay[0], max = delay[1];
111
- if (min > max) {
112
- throw (0, RequestError_1.convertToRequestError)({
113
- error: new Error("[api-def] Min delay cannot be greater than max delay"),
114
- code: RequestError_1.RequestErrorCode.REQUEST_INVALID_CONFIG,
115
- context: context,
116
- });
117
- }
118
- delayMs = (0, Utils_1.randInt)(min, max);
119
- }
120
- _e = Utils_1.delayThenReturn;
121
- return [4 /*yield*/, mockingFunc(req, res)];
122
- case 1: return [4 /*yield*/, _e.apply(void 0, [_f.sent(), delayMs])];
123
- case 2:
124
- _f.sent();
125
- return [3 /*break*/, 5];
126
- case 3: return [4 /*yield*/, mockingFunc(req, res)];
127
- case 4:
128
- _f.sent();
129
- _f.label = 5;
130
- case 5:
131
- if (res.response === undefined) {
132
- throw (0, RequestError_1.convertToRequestError)({
133
- error: new Error("[api-def] Mocked API did not respond"),
134
- code: RequestError_1.RequestErrorCode.REQUEST_INVALID_CONFIG,
135
- context: context,
136
- });
137
- }
138
- parsedHeaders = Object.keys(res.headers).reduce(function (parsedHeaders, key) {
139
- parsedHeaders[key] = res.headers[key].toString();
140
- return parsedHeaders;
141
- }, {});
142
- return [2 /*return*/, {
143
- url: context.requestUrl.href,
144
- method: context.method,
145
- headers: parsedHeaders,
146
- data: res.response,
147
- status: res.statusCode,
148
- }];
149
- }
150
- });
151
- });
152
- };
153
- MockRequestBackend.prototype.makeRequest = function (context) {
154
- return {
155
- canceler: Utils.noop,
156
- promise: this.runRequest(context),
157
- };
158
- };
159
- MockRequestBackend.prototype.getErrorInfo = function (error, response) {
160
- return undefined;
161
- };
162
- return MockRequestBackend;
163
- }());
164
- exports.default = MockRequestBackend;
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ 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;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var RequestError_1 = require("../RequestError");
40
+ var Utils = require("../Utils");
41
+ var Utils_1 = require("../Utils");
42
+ var MockRequestBackend = /** @class */ (function () {
43
+ function MockRequestBackend() {
44
+ this.id = "mock";
45
+ }
46
+ MockRequestBackend.prototype.convertResponse = function (context, response, error) {
47
+ return __awaiter(this, void 0, void 0, function () {
48
+ return __generator(this, function (_a) {
49
+ return [2 /*return*/, response];
50
+ });
51
+ });
52
+ };
53
+ MockRequestBackend.prototype.extractResponseFromError = function (error) {
54
+ return __awaiter(this, void 0, void 0, function () {
55
+ var fetchError;
56
+ return __generator(this, function (_a) {
57
+ if ("response" in error) {
58
+ fetchError = error;
59
+ return [2 /*return*/, fetchError.response ? fetchError.response : null];
60
+ }
61
+ return [2 /*return*/, undefined];
62
+ });
63
+ });
64
+ };
65
+ MockRequestBackend.prototype.runRequest = function (context) {
66
+ var _a, _b, _c, _d;
67
+ return __awaiter(this, void 0, void 0, function () {
68
+ var mockingFunc, req, res, delay, delayMs, min, max, _e, parsedHeaders;
69
+ return __generator(this, function (_f) {
70
+ switch (_f.label) {
71
+ case 0:
72
+ mockingFunc = (_a = context.mocking) === null || _a === void 0 ? void 0 : _a.handler;
73
+ if (!mockingFunc) {
74
+ throw (0, RequestError_1.convertToRequestError)({
75
+ error: new Error("[api-def] Attempted to run mocked request without mocking function"),
76
+ code: RequestError_1.RequestErrorCode.REQUEST_INVALID_CONFIG,
77
+ context: context,
78
+ });
79
+ }
80
+ req = {
81
+ body: context.getParsedBody(),
82
+ params: (_b = context.computedConfig.params) !== null && _b !== void 0 ? _b : {},
83
+ query: context.computedConfig.queryObject,
84
+ headers: (_c = context.computedConfig.headers) !== null && _c !== void 0 ? _c : {},
85
+ url: context.requestUrl.toString(),
86
+ };
87
+ res = {
88
+ statusCode: -1,
89
+ headers: {},
90
+ response: undefined,
91
+ status: function (statusCode) {
92
+ res.statusCode = statusCode;
93
+ return res;
94
+ },
95
+ send: function (response) {
96
+ res.response = response;
97
+ if (response && typeof response === "object") {
98
+ res.headers["Content-Type"] = "application/json";
99
+ }
100
+ return res;
101
+ },
102
+ };
103
+ if (!((_d = context.mocking) === null || _d === void 0 ? void 0 : _d.delay)) return [3 /*break*/, 3];
104
+ delay = context.mocking.delay;
105
+ delayMs = void 0;
106
+ if (typeof delay === "number") {
107
+ delayMs = delay;
108
+ }
109
+ else {
110
+ min = delay[0], max = delay[1];
111
+ if (min > max) {
112
+ throw (0, RequestError_1.convertToRequestError)({
113
+ error: new Error("[api-def] Min delay cannot be greater than max delay"),
114
+ code: RequestError_1.RequestErrorCode.REQUEST_INVALID_CONFIG,
115
+ context: context,
116
+ });
117
+ }
118
+ delayMs = (0, Utils_1.randInt)(min, max);
119
+ }
120
+ _e = Utils_1.delayThenReturn;
121
+ return [4 /*yield*/, mockingFunc(req, res)];
122
+ case 1: return [4 /*yield*/, _e.apply(void 0, [_f.sent(), delayMs])];
123
+ case 2:
124
+ _f.sent();
125
+ return [3 /*break*/, 5];
126
+ case 3: return [4 /*yield*/, mockingFunc(req, res)];
127
+ case 4:
128
+ _f.sent();
129
+ _f.label = 5;
130
+ case 5:
131
+ if (res.response === undefined) {
132
+ throw (0, RequestError_1.convertToRequestError)({
133
+ error: new Error("[api-def] Mocked API did not respond"),
134
+ code: RequestError_1.RequestErrorCode.REQUEST_INVALID_CONFIG,
135
+ context: context,
136
+ });
137
+ }
138
+ parsedHeaders = Object.keys(res.headers).reduce(function (parsedHeaders, key) {
139
+ parsedHeaders[key] = res.headers[key].toString();
140
+ return parsedHeaders;
141
+ }, {});
142
+ return [2 /*return*/, {
143
+ url: context.requestUrl.href,
144
+ method: context.method,
145
+ headers: parsedHeaders,
146
+ data: res.response,
147
+ status: res.statusCode,
148
+ }];
149
+ }
150
+ });
151
+ });
152
+ };
153
+ MockRequestBackend.prototype.makeRequest = function (context) {
154
+ return {
155
+ canceler: Utils.noop,
156
+ promise: this.runRequest(context),
157
+ };
158
+ };
159
+ MockRequestBackend.prototype.getErrorInfo = function (error, response) {
160
+ return undefined;
161
+ };
162
+ return MockRequestBackend;
163
+ }());
164
+ exports.default = MockRequestBackend;
@@ -1,19 +1,19 @@
1
- import RequestContext from "../RequestContext";
2
- import { ApiResponse } from "../ApiTypes";
3
- export interface RequestOperation<R> {
4
- promise: Promise<R>;
5
- canceler: () => void;
6
- }
7
- export interface RequestBackendErrorInfo {
8
- code: string;
9
- }
10
- export declare type ConvertedApiResponse<T> = ApiResponse<T> & {
11
- __lowercaseHeaders?: any;
12
- };
13
- export default interface RequestBackend<R = any> {
14
- readonly id: string;
15
- makeRequest(context: RequestContext): RequestOperation<R>;
16
- convertResponse<T>(context: RequestContext, response: R): Promise<ConvertedApiResponse<T>>;
17
- extractResponseFromError(error: Error): Promise<R | null | undefined>;
18
- getErrorInfo(error: Error, response: ApiResponse | undefined | null): RequestBackendErrorInfo | undefined;
19
- }
1
+ import { ApiResponse } from "../ApiTypes";
2
+ import RequestContext from "../RequestContext";
3
+ export interface RequestOperation<R> {
4
+ promise: Promise<R>;
5
+ canceler: () => void;
6
+ }
7
+ export interface RequestBackendErrorInfo {
8
+ code: string;
9
+ }
10
+ export type ConvertedApiResponse<T> = ApiResponse<T> & {
11
+ __lowercaseHeaders?: any;
12
+ };
13
+ export default interface RequestBackend<R = any> {
14
+ readonly id: string;
15
+ makeRequest(context: RequestContext): RequestOperation<R>;
16
+ convertResponse<T>(context: RequestContext, response: R): Promise<ConvertedApiResponse<T>>;
17
+ extractResponseFromError(error: Error): Promise<R | null | undefined>;
18
+ getErrorInfo(error: Error, response: ApiResponse | undefined | null): RequestBackendErrorInfo | undefined;
19
+ }
@@ -1,2 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,6 +1,6 @@
1
- export interface CacheBackend {
2
- removeItem(key: string): Promise<void>;
3
- setItem<T>(key: string, value: T): Promise<void>;
4
- getItem<T>(key: string): Promise<T | null>;
5
- clear(): Promise<void>;
6
- }
1
+ export interface CacheBackend {
2
+ removeItem(key: string): Promise<void>;
3
+ setItem<T>(key: string, value: T): Promise<void>;
4
+ getItem<T>(key: string): Promise<T | null>;
5
+ clear(): Promise<void>;
6
+ }
@@ -1,2 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,10 +1,10 @@
1
- import { CacheBackend } from "./CacheBackend";
2
- export declare const setCacheBackend: (backend: CacheBackend) => void;
3
- export declare const DEFAULT_CACHE_EXPIRY: number;
4
- export declare const clearCache: () => Promise<void>;
5
- export interface CacheEntry {
6
- data: any;
7
- expiry: number | null;
8
- }
9
- export declare const setCachedItem: <T>(key: string, value: T, expiry?: number) => Promise<T>;
10
- export declare const getCachedItem: <T = any>(key: string) => Promise<T | undefined>;
1
+ import { CacheBackend } from "./CacheBackend";
2
+ export declare const setCacheBackend: (backend: CacheBackend) => void;
3
+ export declare const DEFAULT_CACHE_EXPIRY: number;
4
+ export declare const clearCache: () => Promise<void>;
5
+ export interface CacheEntry {
6
+ data: any;
7
+ expiry: number | null;
8
+ }
9
+ export declare const setCachedItem: <T>(key: string, value: T, expiry?: number) => Promise<T>;
10
+ export declare const getCachedItem: <T = any>(key: string) => Promise<T | undefined>;
@@ -1,88 +1,88 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- 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;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.getCachedItem = exports.setCachedItem = exports.clearCache = exports.DEFAULT_CACHE_EXPIRY = exports.setCacheBackend = void 0;
40
- var LocalStorageCacheBackend_1 = require("./LocalStorageCacheBackend");
41
- var cacheBackend = new LocalStorageCacheBackend_1.default();
42
- var setCacheBackend = function (backend) {
43
- cacheBackend = backend;
44
- };
45
- exports.setCacheBackend = setCacheBackend;
46
- exports.DEFAULT_CACHE_EXPIRY = 60 * 1000 * 15;
47
- var clearCache = function () {
48
- return cacheBackend.clear();
49
- };
50
- exports.clearCache = clearCache;
51
- var setCachedItem = function (key, value, expiry) { return __awaiter(void 0, void 0, void 0, function () {
52
- var entry;
53
- return __generator(this, function (_a) {
54
- switch (_a.label) {
55
- case 0:
56
- entry = {
57
- data: value,
58
- expiry: expiry === undefined || isNaN(expiry) ? null : expiry,
59
- };
60
- return [4 /*yield*/, cacheBackend.setItem(key, entry)];
61
- case 1:
62
- _a.sent();
63
- return [2 /*return*/, value];
64
- }
65
- });
66
- }); };
67
- exports.setCachedItem = setCachedItem;
68
- var getCachedItem = function (key) { return __awaiter(void 0, void 0, void 0, function () {
69
- var entry;
70
- return __generator(this, function (_a) {
71
- switch (_a.label) {
72
- case 0: return [4 /*yield*/, cacheBackend.getItem(key)];
73
- case 1:
74
- entry = _a.sent();
75
- if (!entry) {
76
- return [2 /*return*/, undefined];
77
- }
78
- if (!(typeof entry.expiry === "number")) return [3 /*break*/, 3];
79
- if (!(Date.now() >= entry.expiry)) return [3 /*break*/, 3];
80
- return [4 /*yield*/, cacheBackend.removeItem(key)];
81
- case 2:
82
- _a.sent();
83
- return [2 /*return*/, undefined];
84
- case 3: return [2 /*return*/, entry.data];
85
- }
86
- });
87
- }); };
88
- exports.getCachedItem = getCachedItem;
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ 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;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.getCachedItem = exports.setCachedItem = exports.clearCache = exports.DEFAULT_CACHE_EXPIRY = exports.setCacheBackend = void 0;
40
+ var LocalStorageCacheBackend_1 = require("./LocalStorageCacheBackend");
41
+ var cacheBackend = new LocalStorageCacheBackend_1.default();
42
+ var setCacheBackend = function (backend) {
43
+ cacheBackend = backend;
44
+ };
45
+ exports.setCacheBackend = setCacheBackend;
46
+ exports.DEFAULT_CACHE_EXPIRY = 60 * 1000 * 15;
47
+ var clearCache = function () {
48
+ return cacheBackend.clear();
49
+ };
50
+ exports.clearCache = clearCache;
51
+ var setCachedItem = function (key, value, expiry) { return __awaiter(void 0, void 0, void 0, function () {
52
+ var entry;
53
+ return __generator(this, function (_a) {
54
+ switch (_a.label) {
55
+ case 0:
56
+ entry = {
57
+ data: value,
58
+ expiry: expiry === undefined || Number.isNaN(expiry) ? null : expiry,
59
+ };
60
+ return [4 /*yield*/, cacheBackend.setItem(key, entry)];
61
+ case 1:
62
+ _a.sent();
63
+ return [2 /*return*/, value];
64
+ }
65
+ });
66
+ }); };
67
+ exports.setCachedItem = setCachedItem;
68
+ var getCachedItem = function (key) { return __awaiter(void 0, void 0, void 0, function () {
69
+ var entry;
70
+ return __generator(this, function (_a) {
71
+ switch (_a.label) {
72
+ case 0: return [4 /*yield*/, cacheBackend.getItem(key)];
73
+ case 1:
74
+ entry = _a.sent();
75
+ if (!entry) {
76
+ return [2 /*return*/, undefined];
77
+ }
78
+ if (!(typeof entry.expiry === "number")) return [3 /*break*/, 3];
79
+ if (!(Date.now() >= entry.expiry)) return [3 /*break*/, 3];
80
+ return [4 /*yield*/, cacheBackend.removeItem(key)];
81
+ case 2:
82
+ _a.sent();
83
+ return [2 /*return*/, undefined];
84
+ case 3: return [2 /*return*/, entry.data];
85
+ }
86
+ });
87
+ }); };
88
+ exports.getCachedItem = getCachedItem;
@@ -1,9 +1,9 @@
1
- import { CacheBackend } from "./CacheBackend";
2
- export default class LocalForageCacheBackend implements CacheBackend {
3
- private readonly store;
4
- constructor(localforage: any);
5
- clear(): Promise<void>;
6
- getItem<T>(key: string): Promise<T | null>;
7
- removeItem(key: string): Promise<void>;
8
- setItem<T>(key: string, value: T): Promise<void>;
9
- }
1
+ import { CacheBackend } from "./CacheBackend";
2
+ export default class LocalForageCacheBackend implements CacheBackend {
3
+ private readonly store;
4
+ constructor(localforage: any);
5
+ clear(): Promise<void>;
6
+ getItem<T>(key: string): Promise<T | null>;
7
+ removeItem(key: string): Promise<void>;
8
+ setItem<T>(key: string, value: T): Promise<void>;
9
+ }