api-def 0.9.0 → 0.9.2

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 (121) hide show
  1. package/cjs/Api.d.ts +35 -35
  2. package/cjs/Api.js +140 -144
  3. package/cjs/ApiConstants.d.ts +58 -58
  4. package/cjs/ApiConstants.js +55 -55
  5. package/cjs/ApiTypes.d.ts +103 -103
  6. package/cjs/ApiTypes.js +4 -4
  7. package/cjs/ApiUtils.d.ts +6 -6
  8. package/cjs/ApiUtils.js +51 -53
  9. package/cjs/Endpoint.d.ts +52 -52
  10. package/cjs/Endpoint.js +104 -108
  11. package/cjs/EndpointBuilder.d.ts +14 -14
  12. package/cjs/EndpointBuilder.js +46 -46
  13. package/cjs/MockingTypes.d.ts +30 -30
  14. package/cjs/MockingTypes.js +2 -2
  15. package/cjs/QueryHandling.d.ts +3 -3
  16. package/cjs/QueryHandling.js +24 -24
  17. package/cjs/RequestConfig.d.ts +2 -2
  18. package/cjs/RequestConfig.js +74 -74
  19. package/cjs/RequestContext.d.ts +48 -48
  20. package/cjs/RequestContext.js +235 -238
  21. package/cjs/RequestError.d.ts +30 -30
  22. package/cjs/RequestError.js +47 -47
  23. package/cjs/Requester.d.ts +3 -3
  24. package/cjs/Requester.js +335 -336
  25. package/cjs/TextDecoding.d.ts +1 -1
  26. package/cjs/TextDecoding.js +152 -139
  27. package/cjs/UtilTypes.d.ts +5 -5
  28. package/cjs/UtilTypes.js +2 -2
  29. package/cjs/Utils.d.ts +15 -15
  30. package/cjs/Utils.js +79 -77
  31. package/cjs/Validation.d.ts +8 -8
  32. package/cjs/Validation.js +2 -2
  33. package/cjs/backend/AxiosRequestBackend.d.ts +13 -13
  34. package/cjs/backend/AxiosRequestBackend.js +99 -99
  35. package/cjs/backend/FetchRequestBackend.d.ts +15 -15
  36. package/cjs/backend/FetchRequestBackend.js +202 -197
  37. package/cjs/backend/MockRequestBackend.d.ts +11 -11
  38. package/cjs/backend/MockRequestBackend.js +164 -164
  39. package/cjs/backend/RequestBackend.d.ts +19 -19
  40. package/cjs/backend/RequestBackend.js +2 -2
  41. package/cjs/cache/CacheBackend.d.ts +6 -6
  42. package/cjs/cache/CacheBackend.js +2 -2
  43. package/cjs/cache/Caching.d.ts +10 -10
  44. package/cjs/cache/Caching.js +88 -88
  45. package/cjs/cache/LocalForageCacheBackend.d.ts +9 -9
  46. package/cjs/cache/LocalForageCacheBackend.js +24 -24
  47. package/cjs/cache/LocalStorageCacheBackend.d.ts +7 -7
  48. package/cjs/cache/LocalStorageCacheBackend.js +77 -77
  49. package/cjs/index.d.ts +13 -13
  50. package/cjs/index.js +41 -41
  51. package/cjs/middleware/CacheMiddleware.d.ts +7 -7
  52. package/cjs/middleware/CacheMiddleware.js +107 -107
  53. package/cjs/middleware/LoggingMiddleware.d.ts +6 -6
  54. package/cjs/middleware/LoggingMiddleware.js +82 -88
  55. package/cjs/util/retry/index.d.ts +3 -3
  56. package/cjs/util/retry/index.js +52 -52
  57. package/cjs/util/retry/lib/retry.d.ts +3 -3
  58. package/cjs/util/retry/lib/retry.js +50 -54
  59. package/cjs/util/retry/lib/retryOperation.d.ts +27 -27
  60. package/cjs/util/retry/lib/retryOperation.js +130 -134
  61. package/esm/Api.d.ts +35 -35
  62. package/esm/Api.js +92 -98
  63. package/esm/ApiConstants.d.ts +58 -58
  64. package/esm/ApiConstants.js +52 -52
  65. package/esm/ApiTypes.d.ts +103 -103
  66. package/esm/ApiTypes.js +1 -1
  67. package/esm/ApiUtils.d.ts +6 -6
  68. package/esm/ApiUtils.js +43 -45
  69. package/esm/Endpoint.d.ts +52 -52
  70. package/esm/Endpoint.js +66 -70
  71. package/esm/EndpointBuilder.d.ts +14 -14
  72. package/esm/EndpointBuilder.js +31 -31
  73. package/esm/MockingTypes.d.ts +30 -30
  74. package/esm/MockingTypes.js +1 -1
  75. package/esm/QueryHandling.d.ts +3 -3
  76. package/esm/QueryHandling.js +19 -19
  77. package/esm/RequestConfig.d.ts +2 -2
  78. package/esm/RequestConfig.js +56 -56
  79. package/esm/RequestContext.d.ts +48 -48
  80. package/esm/RequestContext.js +167 -170
  81. package/esm/RequestError.d.ts +30 -30
  82. package/esm/RequestError.js +42 -42
  83. package/esm/Requester.d.ts +3 -3
  84. package/esm/Requester.js +252 -253
  85. package/esm/TextDecoding.d.ts +1 -1
  86. package/esm/TextDecoding.js +148 -135
  87. package/esm/UtilTypes.d.ts +5 -5
  88. package/esm/UtilTypes.js +1 -1
  89. package/esm/Utils.d.ts +15 -15
  90. package/esm/Utils.js +66 -68
  91. package/esm/Validation.d.ts +8 -8
  92. package/esm/Validation.js +1 -1
  93. package/esm/backend/AxiosRequestBackend.d.ts +13 -13
  94. package/esm/backend/AxiosRequestBackend.js +62 -62
  95. package/esm/backend/FetchRequestBackend.d.ts +15 -15
  96. package/esm/backend/FetchRequestBackend.js +136 -126
  97. package/esm/backend/MockRequestBackend.d.ts +11 -11
  98. package/esm/backend/MockRequestBackend.js +116 -116
  99. package/esm/backend/RequestBackend.d.ts +19 -19
  100. package/esm/backend/RequestBackend.js +1 -1
  101. package/esm/cache/CacheBackend.d.ts +6 -6
  102. package/esm/cache/CacheBackend.js +1 -1
  103. package/esm/cache/Caching.d.ts +10 -10
  104. package/esm/cache/Caching.js +39 -39
  105. package/esm/cache/LocalForageCacheBackend.d.ts +9 -9
  106. package/esm/cache/LocalForageCacheBackend.js +20 -20
  107. package/esm/cache/LocalStorageCacheBackend.d.ts +7 -7
  108. package/esm/cache/LocalStorageCacheBackend.js +32 -32
  109. package/esm/index.d.ts +13 -13
  110. package/esm/index.js +14 -15
  111. package/esm/middleware/CacheMiddleware.d.ts +7 -7
  112. package/esm/middleware/CacheMiddleware.js +58 -58
  113. package/esm/middleware/LoggingMiddleware.d.ts +6 -6
  114. package/esm/middleware/LoggingMiddleware.js +77 -83
  115. package/esm/util/retry/index.d.ts +3 -3
  116. package/esm/util/retry/index.js +50 -50
  117. package/esm/util/retry/lib/retry.d.ts +3 -3
  118. package/esm/util/retry/lib/retry.js +35 -39
  119. package/esm/util/retry/lib/retryOperation.d.ts +27 -27
  120. package/esm/util/retry/lib/retryOperation.js +126 -132
  121. package/package.json +12 -32
@@ -1,62 +1,62 @@
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
- let axios;
11
- export const isAxiosError = (error) => {
12
- return "isAxiosError" in error;
13
- };
14
- export default class AxiosRequestBackend {
15
- // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
16
- constructor(axiosLibrary) {
17
- this.id = "axios";
18
- axios = axiosLibrary;
19
- }
20
- extractResponseFromError(error) {
21
- return __awaiter(this, void 0, void 0, function* () {
22
- if (isAxiosError(error)) {
23
- return error.response ? error.response : null;
24
- }
25
- return undefined;
26
- });
27
- }
28
- convertResponse(context, response) {
29
- return __awaiter(this, void 0, void 0, function* () {
30
- return {
31
- method: context.method,
32
- url: response.request.res.responseUrl,
33
- data: response.data,
34
- headers: response.headers,
35
- status: response.status,
36
- __lowercaseHeaders: response._lowerCaseResponseHeaders,
37
- };
38
- });
39
- }
40
- makeRequest(context) {
41
- const { computedConfig } = context;
42
- const url = context.requestUrl;
43
- let canceler = null;
44
- const promise = axios({
45
- method: context.method,
46
- url: url.href,
47
- data: context.getParsedBody(),
48
- headers: computedConfig.headers || {},
49
- responseType: context.responseType,
50
- cancelToken: new axios.CancelToken((cancellerFunc) => {
51
- canceler = cancellerFunc;
52
- }),
53
- });
54
- return {
55
- promise: promise,
56
- canceler: () => canceler && canceler(),
57
- };
58
- }
59
- getErrorInfo(error, response) {
60
- return undefined;
61
- }
62
- }
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
+ let axios;
11
+ export const isAxiosError = (error) => {
12
+ return "isAxiosError" in error;
13
+ };
14
+ export default class AxiosRequestBackend {
15
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
16
+ constructor(axiosLibrary) {
17
+ this.id = "axios";
18
+ axios = axiosLibrary;
19
+ }
20
+ extractResponseFromError(error) {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ if (isAxiosError(error)) {
23
+ return error.response ? error.response : null;
24
+ }
25
+ return undefined;
26
+ });
27
+ }
28
+ convertResponse(context, response) {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ return {
31
+ method: context.method,
32
+ url: response.request.res.responseUrl,
33
+ data: response.data,
34
+ headers: response.headers,
35
+ status: response.status,
36
+ __lowercaseHeaders: response._lowerCaseResponseHeaders,
37
+ };
38
+ });
39
+ }
40
+ makeRequest(context) {
41
+ const { computedConfig } = context;
42
+ const url = context.requestUrl;
43
+ let canceler = null;
44
+ const promise = axios({
45
+ method: context.method,
46
+ url: url.href,
47
+ data: context.getParsedBody(),
48
+ headers: computedConfig.headers || {},
49
+ responseType: context.responseType,
50
+ cancelToken: new axios.CancelToken((cancellerFunc) => {
51
+ canceler = cancellerFunc;
52
+ }),
53
+ });
54
+ return {
55
+ promise: promise,
56
+ canceler: () => canceler === null || canceler === void 0 ? void 0 : canceler(),
57
+ };
58
+ }
59
+ getErrorInfo(error, response) {
60
+ return undefined;
61
+ }
62
+ }
@@ -1,15 +1,15 @@
1
- import RequestBackend, { ConvertedApiResponse, RequestBackendErrorInfo, RequestOperation } from "./RequestBackend";
2
- import { ApiResponse } from "../ApiTypes";
3
- import RequestContext from "../RequestContext";
4
- import { Fetch } from "../Utils";
5
- export default class FetchRequestBackend implements RequestBackend<Response> {
6
- fetch: (((input: RequestInfo | URL, init?: RequestInit | undefined) => Promise<Response>) & typeof fetch) | undefined;
7
- readonly id = "fetch";
8
- constructor(fetchLibrary?: Fetch);
9
- extractResponseFromError(error: Error): Promise<Response | null | undefined>;
10
- convertResponse<T>(context: RequestContext, response: Response & {
11
- __text?: string;
12
- }): Promise<ConvertedApiResponse<T>>;
13
- makeRequest(context: RequestContext): RequestOperation<Response>;
14
- getErrorInfo(error: Error, response: ApiResponse | undefined | null): RequestBackendErrorInfo | undefined;
15
- }
1
+ import { ApiResponse } from "../ApiTypes";
2
+ import RequestContext from "../RequestContext";
3
+ import { Fetch } from "../Utils";
4
+ import RequestBackend, { ConvertedApiResponse, RequestBackendErrorInfo, RequestOperation } from "./RequestBackend";
5
+ export default class FetchRequestBackend implements RequestBackend<Response> {
6
+ fetch: (((input: RequestInfo | URL, init?: RequestInit | undefined) => Promise<Response>) & typeof fetch) | undefined;
7
+ readonly id = "fetch";
8
+ constructor(fetchLibrary?: Fetch);
9
+ extractResponseFromError(error: Error): Promise<Response | null | undefined>;
10
+ convertResponse<T>(context: RequestContext, response: Response & {
11
+ __text?: string;
12
+ }): Promise<ConvertedApiResponse<T>>;
13
+ makeRequest(context: RequestContext): RequestOperation<Response>;
14
+ getErrorInfo(error: Error, response: ApiResponse | undefined | null): RequestBackendErrorInfo | undefined;
15
+ }
@@ -1,126 +1,136 @@
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 * as Utils from "../Utils";
11
- import { getGlobal, getGlobalFetch } from "../Utils";
12
- import { inferResponseType } from "../ApiUtils";
13
- class FetchError extends Error {
14
- }
15
- export default class FetchRequestBackend {
16
- constructor(fetchLibrary) {
17
- this.fetch = getGlobalFetch();
18
- this.id = "fetch";
19
- if (fetchLibrary !== undefined) {
20
- this.fetch = fetchLibrary;
21
- // otherwise window throws illegal invocation
22
- if (fetchLibrary === getGlobalFetch()) {
23
- this.fetch = fetchLibrary.bind(getGlobal());
24
- }
25
- }
26
- }
27
- extractResponseFromError(error) {
28
- return __awaiter(this, void 0, void 0, function* () {
29
- if ("response" in error) {
30
- const fetchError = error;
31
- return fetchError.response ? fetchError.response : null;
32
- }
33
- return undefined;
34
- });
35
- }
36
- convertResponse(context, response) {
37
- return __awaiter(this, void 0, void 0, function* () {
38
- const contentType = response.headers.get("Content-Type");
39
- const responseType = inferResponseType(contentType);
40
- if (!response.__text) {
41
- response.__text = yield response.clone().text();
42
- }
43
- let data = response.__text;
44
- const { status, headers } = response;
45
- try {
46
- if (responseType === "arraybuffer") {
47
- data = yield response.clone().arrayBuffer();
48
- }
49
- else if (responseType === "json") {
50
- data = JSON.parse(response.__text);
51
- }
52
- }
53
- catch (error) {
54
- throw Object.assign(new Error(`[api-def] Invalid '${context.responseType}' response, got: '${response.__text}'`), {
55
- response,
56
- });
57
- }
58
- const processedHeaders = {};
59
- headers.forEach((value, key) => {
60
- processedHeaders[key] = value;
61
- });
62
- return {
63
- __lowercaseHeaders: processedHeaders,
64
- method: context.method,
65
- url: response.url,
66
- data: data,
67
- status: status,
68
- headers: processedHeaders,
69
- };
70
- });
71
- }
72
- makeRequest(context) {
73
- if (!this.fetch) {
74
- throw new Error("[api-def] No fetch impl was provided to FetchRequestBackend");
75
- }
76
- const { computedConfig } = context;
77
- // abort controller is a newer feature than fetch
78
- const abortController = AbortController && new AbortController();
79
- const abortSignal = abortController ? abortController.signal : undefined;
80
- let softAbort = false;
81
- let responded = false;
82
- const body = context.getParsedBody();
83
- const bodyJsonify = body !== null && typeof body === "object";
84
- const headers = Utils.assign({
85
- // logic from axios
86
- "Content-Type": bodyJsonify ? "application/json;charset=utf-8" : "application/x-www-form-urlencoded",
87
- }, computedConfig.headers);
88
- const parsedHeaders = Object.keys(headers).reduce((parsedHeaders, key) => {
89
- const value = headers[key];
90
- if (value !== undefined) {
91
- parsedHeaders[key] = value;
92
- }
93
- return parsedHeaders;
94
- }, {});
95
- const url = context.requestUrl;
96
- const promise = this.fetch(url.href, {
97
- method: context.method.toUpperCase(),
98
- body: bodyJsonify ? JSON.stringify(body) : body,
99
- headers: parsedHeaders,
100
- mode: "cors",
101
- signal: abortSignal,
102
- }).then((response) => {
103
- responded = true;
104
- if (!response.ok) {
105
- const error = new FetchError("Fetch failed");
106
- error.response = response;
107
- throw error;
108
- }
109
- if (softAbort) {
110
- throw new Error("[api-def] Request was aborted");
111
- }
112
- return response;
113
- });
114
- return {
115
- promise: promise,
116
- canceler: abortSignal
117
- ? () => !responded && abortController.abort()
118
- : () => {
119
- softAbort = true;
120
- },
121
- };
122
- }
123
- getErrorInfo(error, response) {
124
- return undefined;
125
- }
126
- }
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 { inferResponseType } from "../ApiUtils";
11
+ import { RequestErrorCode, convertToRequestError } from "../RequestError";
12
+ import * as Utils from "../Utils";
13
+ import { getGlobal, getGlobalFetch } from "../Utils";
14
+ class FetchError extends Error {
15
+ }
16
+ export default class FetchRequestBackend {
17
+ constructor(fetchLibrary) {
18
+ this.fetch = getGlobalFetch();
19
+ this.id = "fetch";
20
+ if (fetchLibrary !== undefined) {
21
+ this.fetch = fetchLibrary;
22
+ // otherwise window throws illegal invocation
23
+ if (fetchLibrary === getGlobalFetch()) {
24
+ this.fetch = fetchLibrary.bind(getGlobal());
25
+ }
26
+ }
27
+ }
28
+ extractResponseFromError(error) {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ if ("response" in error) {
31
+ const fetchError = error;
32
+ return fetchError.response ? fetchError.response : null;
33
+ }
34
+ return undefined;
35
+ });
36
+ }
37
+ convertResponse(context, response) {
38
+ var _a;
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ const { status, headers } = response;
41
+ const processedHeaders = {};
42
+ headers.forEach((value, key) => {
43
+ processedHeaders[key] = value;
44
+ });
45
+ const convertedResponse = {
46
+ __lowercaseHeaders: processedHeaders,
47
+ method: context.method,
48
+ url: response.url,
49
+ data: undefined,
50
+ status: status,
51
+ headers: processedHeaders,
52
+ };
53
+ const responseType = (_a = context.responseType) !== null && _a !== void 0 ? _a : inferResponseType(response.headers.get("Content-Type"));
54
+ let text;
55
+ let data;
56
+ try {
57
+ if (responseType === "arraybuffer") {
58
+ data = yield response.arrayBuffer();
59
+ }
60
+ else if (responseType === "json") {
61
+ text = yield response.text();
62
+ data = JSON.parse(text);
63
+ }
64
+ else {
65
+ data = response.text();
66
+ }
67
+ }
68
+ catch (error) {
69
+ throw convertToRequestError({
70
+ error: Object.assign(new Error(`[api-def] Failed to parse response as '${responseType}'${text ? `, got: ${text}` : ""}`), {
71
+ cause: error,
72
+ }),
73
+ code: RequestErrorCode.REQUEST_MISMATCH_RESPONSE_TYPE,
74
+ context: context,
75
+ response: convertedResponse,
76
+ });
77
+ }
78
+ convertedResponse.data = data;
79
+ return convertedResponse;
80
+ });
81
+ }
82
+ makeRequest(context) {
83
+ if (!this.fetch) {
84
+ throw new Error("[api-def] No fetch impl was provided to FetchRequestBackend");
85
+ }
86
+ const { computedConfig } = context;
87
+ // abort controller is a newer feature than fetch
88
+ const abortController = AbortController && new AbortController();
89
+ const abortSignal = abortController ? abortController.signal : undefined;
90
+ let softAbort = false;
91
+ let responded = false;
92
+ const body = context.getParsedBody();
93
+ const bodyJsonify = body !== null && typeof body === "object";
94
+ const headers = Utils.assign({
95
+ // logic from axios
96
+ "Content-Type": bodyJsonify ? "application/json;charset=utf-8" : "application/x-www-form-urlencoded",
97
+ }, computedConfig.headers);
98
+ const parsedHeaders = Object.keys(headers).reduce((parsedHeaders, key) => {
99
+ const value = headers[key];
100
+ if (value !== undefined) {
101
+ parsedHeaders[key] = value;
102
+ }
103
+ return parsedHeaders;
104
+ }, {});
105
+ const url = context.requestUrl;
106
+ const promise = this.fetch(url.href, {
107
+ method: context.method.toUpperCase(),
108
+ body: bodyJsonify ? JSON.stringify(body) : body,
109
+ headers: parsedHeaders,
110
+ mode: "cors",
111
+ signal: abortSignal,
112
+ }).then((response) => {
113
+ responded = true;
114
+ if (!response.ok) {
115
+ const error = new FetchError("Fetch failed");
116
+ error.response = response;
117
+ throw error;
118
+ }
119
+ if (softAbort) {
120
+ throw new Error("[api-def] Request was aborted");
121
+ }
122
+ return response;
123
+ });
124
+ return {
125
+ promise: promise,
126
+ canceler: abortSignal
127
+ ? () => !responded && abortController.abort()
128
+ : () => {
129
+ softAbort = true;
130
+ },
131
+ };
132
+ }
133
+ getErrorInfo(error, response) {
134
+ return undefined;
135
+ }
136
+ }
@@ -1,11 +1,11 @@
1
- import RequestBackend, { RequestBackendErrorInfo, RequestOperation } from "./RequestBackend";
2
- import { ApiResponse } from "../ApiTypes";
3
- import RequestContext from "../RequestContext";
4
- export default class MockRequestBackend implements RequestBackend<ApiResponse> {
5
- readonly id = "mock";
6
- convertResponse<T>(context: RequestContext, response: ApiResponse, error?: boolean): Promise<ApiResponse<T>>;
7
- extractResponseFromError(error: Error): Promise<ApiResponse | null | undefined>;
8
- private runRequest;
9
- makeRequest(context: RequestContext): RequestOperation<ApiResponse>;
10
- getErrorInfo(error: Error, response: ApiResponse | undefined | null): RequestBackendErrorInfo | undefined;
11
- }
1
+ import { ApiResponse } from "../ApiTypes";
2
+ import RequestContext from "../RequestContext";
3
+ import RequestBackend, { RequestBackendErrorInfo, RequestOperation } from "./RequestBackend";
4
+ export default class MockRequestBackend implements RequestBackend<ApiResponse> {
5
+ readonly id = "mock";
6
+ convertResponse<T>(context: RequestContext, response: ApiResponse, error?: boolean): Promise<ApiResponse<T>>;
7
+ extractResponseFromError(error: Error): Promise<ApiResponse | null | undefined>;
8
+ private runRequest;
9
+ makeRequest(context: RequestContext): RequestOperation<ApiResponse>;
10
+ getErrorInfo(error: Error, response: ApiResponse | undefined | null): RequestBackendErrorInfo | undefined;
11
+ }