@duplojs/http 0.1.0 → 0.4.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/client/getBody.cjs +22 -0
- package/dist/client/getBody.d.ts +1 -0
- package/dist/client/getBody.mjs +20 -0
- package/dist/client/hooks.cjs +79 -0
- package/dist/client/hooks.d.ts +33 -0
- package/dist/client/hooks.mjs +70 -0
- package/dist/client/httpClient.cjs +153 -0
- package/dist/client/httpClient.d.ts +60 -0
- package/dist/client/httpClient.mjs +130 -0
- package/dist/client/index.cjs +33 -0
- package/dist/client/index.d.ts +9 -0
- package/dist/client/index.mjs +9 -0
- package/dist/client/insertParamsInPath.cjs +12 -0
- package/dist/client/insertParamsInPath.d.ts +2 -0
- package/dist/client/insertParamsInPath.mjs +10 -0
- package/dist/client/kind.cjs +9 -0
- package/dist/client/kind.d.ts +6 -0
- package/dist/client/kind.mjs +7 -0
- package/dist/client/promiseRequest.cjs +355 -0
- package/dist/client/promiseRequest.d.ts +98 -0
- package/dist/client/promiseRequest.mjs +332 -0
- package/dist/client/queryToString.cjs +25 -0
- package/dist/client/queryToString.d.ts +2 -0
- package/dist/client/queryToString.mjs +23 -0
- package/dist/client/types/ObjectCanBeEmpty.cjs +2 -0
- package/dist/client/types/ObjectCanBeEmpty.d.ts +4 -0
- package/dist/client/types/ObjectCanBeEmpty.mjs +1 -0
- package/dist/client/types/clientRequestParams.cjs +2 -0
- package/dist/client/types/clientRequestParams.d.ts +51 -0
- package/dist/client/types/clientRequestParams.mjs +1 -0
- package/dist/client/types/clientResponse.cjs +2 -0
- package/dist/client/types/clientResponse.d.ts +34 -0
- package/dist/client/types/clientResponse.mjs +1 -0
- package/dist/client/types/index.cjs +7 -0
- package/dist/client/types/index.d.ts +4 -0
- package/dist/client/types/index.mjs +4 -0
- package/dist/client/types/serverRoute.cjs +2 -0
- package/dist/client/types/serverRoute.d.ts +22 -0
- package/dist/client/types/serverRoute.mjs +1 -0
- package/dist/client/unexpectedResponseError.cjs +44 -0
- package/dist/client/unexpectedResponseError.d.ts +38 -0
- package/dist/client/unexpectedResponseError.mjs +39 -0
- package/dist/core/builders/index.cjs +11 -0
- package/dist/core/builders/index.mjs +4 -0
- package/dist/core/builders/preflight/index.cjs +10 -0
- package/dist/core/builders/preflight/index.mjs +3 -0
- package/dist/core/builders/preflight/process.cjs +2 -8
- package/dist/core/builders/preflight/process.mjs +2 -8
- package/dist/core/builders/preflight/route.cjs +2 -8
- package/dist/core/builders/preflight/route.mjs +2 -8
- package/dist/core/builders/process/checker.cjs +2 -8
- package/dist/core/builders/process/checker.mjs +2 -8
- package/dist/core/builders/process/cut.cjs +2 -8
- package/dist/core/builders/process/cut.mjs +2 -8
- package/dist/core/builders/process/extract.cjs +2 -8
- package/dist/core/builders/process/extract.mjs +2 -8
- package/dist/core/builders/process/index.cjs +14 -0
- package/dist/core/builders/process/index.mjs +7 -0
- package/dist/core/builders/process/presetChecker.cjs +2 -8
- package/dist/core/builders/process/presetChecker.mjs +2 -8
- package/dist/core/builders/process/process.cjs +2 -8
- package/dist/core/builders/process/process.mjs +2 -8
- package/dist/core/builders/route/checker.cjs +2 -8
- package/dist/core/builders/route/checker.mjs +2 -8
- package/dist/core/builders/route/cut.cjs +2 -8
- package/dist/core/builders/route/cut.mjs +2 -8
- package/dist/core/builders/route/extract.cjs +2 -8
- package/dist/core/builders/route/extract.mjs +2 -8
- package/dist/core/builders/route/handler.cjs +2 -8
- package/dist/core/builders/route/handler.mjs +2 -8
- package/dist/core/builders/route/index.cjs +16 -0
- package/dist/core/builders/route/index.mjs +8 -0
- package/dist/core/builders/route/presetChecker.cjs +2 -8
- package/dist/core/builders/route/presetChecker.mjs +2 -8
- package/dist/core/builders/route/process.cjs +2 -8
- package/dist/core/builders/route/process.mjs +2 -8
- package/dist/core/floor.cjs +2 -0
- package/dist/core/floor.mjs +1 -0
- package/dist/core/functionsBuilders/index.cjs +5 -0
- package/dist/core/functionsBuilders/index.mjs +2 -0
- package/dist/core/functionsBuilders/route/build.cjs +5 -14
- package/dist/core/functionsBuilders/route/build.d.ts +3 -1
- package/dist/core/functionsBuilders/route/build.mjs +6 -15
- package/dist/core/functionsBuilders/route/create.d.ts +2 -0
- package/dist/core/functionsBuilders/route/default.cjs +11 -21
- package/dist/core/functionsBuilders/route/default.mjs +5 -15
- package/dist/core/functionsBuilders/route/hook.cjs +22 -22
- package/dist/core/functionsBuilders/route/hook.d.ts +2 -2
- package/dist/core/functionsBuilders/route/hook.mjs +2 -2
- package/dist/core/functionsBuilders/route/index.cjs +18 -0
- package/dist/core/functionsBuilders/route/index.mjs +4 -0
- package/dist/core/functionsBuilders/steps/build.cjs +4 -0
- package/dist/core/functionsBuilders/steps/build.d.ts +2 -0
- package/dist/core/functionsBuilders/steps/build.mjs +5 -1
- package/dist/core/functionsBuilders/steps/create.d.ts +3 -2
- package/dist/core/functionsBuilders/steps/defaults/checkerStep.cjs +5 -9
- package/dist/core/functionsBuilders/steps/defaults/checkerStep.mjs +5 -9
- package/dist/core/functionsBuilders/steps/defaults/cutStep.cjs +6 -11
- package/dist/core/functionsBuilders/steps/defaults/cutStep.mjs +7 -12
- package/dist/core/functionsBuilders/steps/defaults/extractStep.cjs +10 -17
- package/dist/core/functionsBuilders/steps/defaults/extractStep.mjs +9 -16
- package/dist/core/functionsBuilders/steps/defaults/handlerStep.cjs +6 -11
- package/dist/core/functionsBuilders/steps/defaults/handlerStep.mjs +6 -11
- package/dist/core/functionsBuilders/steps/defaults/index.cjs +16 -0
- package/dist/core/functionsBuilders/steps/defaults/index.mjs +5 -0
- package/dist/core/functionsBuilders/steps/defaults/processStep.cjs +7 -12
- package/dist/core/functionsBuilders/steps/defaults/processStep.mjs +6 -11
- package/dist/core/functionsBuilders/steps/index.cjs +10 -0
- package/dist/core/functionsBuilders/steps/index.mjs +3 -0
- package/dist/core/hub/defaultNotfoundHandler.cjs +2 -8
- package/dist/core/hub/defaultNotfoundHandler.d.ts +1 -1
- package/dist/core/hub/defaultNotfoundHandler.mjs +2 -8
- package/dist/core/hub/hooks.d.ts +3 -3
- package/dist/core/hub/index.cjs +3 -9
- package/dist/core/hub/index.mjs +3 -9
- package/dist/core/index.cjs +64 -70
- package/dist/core/index.mjs +23 -30
- package/dist/core/process/index.cjs +1 -0
- package/dist/core/process/index.mjs +1 -0
- package/dist/core/process/types/index.cjs +2 -0
- package/dist/core/process/types/index.mjs +1 -0
- package/dist/core/response/base.cjs +40 -0
- package/dist/core/response/base.d.ts +21 -0
- package/dist/core/response/base.mjs +38 -0
- package/dist/core/response/contract.cjs +13 -13
- package/dist/core/response/contract.d.ts +121 -119
- package/dist/core/response/contract.mjs +14 -14
- package/dist/core/{route/hooks/response.cjs → response/hook.cjs} +5 -4
- package/dist/core/{route/hooks/response.d.ts → response/hook.d.ts} +3 -3
- package/dist/core/{route/hooks/response.mjs → response/hook.mjs} +4 -3
- package/dist/core/response/index.cjs +9 -38
- package/dist/core/response/index.d.ts +3 -20
- package/dist/core/response/index.mjs +3 -38
- package/dist/core/response/predicted.cjs +22 -0
- package/dist/core/response/predicted.d.ts +11 -0
- package/dist/core/response/predicted.mjs +20 -0
- package/dist/core/route/{hooks/index.cjs → hooks.cjs} +2 -3
- package/dist/core/route/{hooks/index.d.ts → hooks.d.ts} +4 -4
- package/dist/core/route/{hooks/index.mjs → hooks.mjs} +2 -2
- package/dist/core/route/index.cjs +5 -4
- package/dist/core/route/index.mjs +2 -1
- package/dist/core/route/types/buildedRoute.cjs +2 -0
- package/dist/core/route/types/buildedRoute.mjs +1 -0
- package/dist/core/route/types/index.cjs +4 -0
- package/dist/core/route/types/index.mjs +1 -0
- package/dist/core/router/buildError.cjs +3 -1
- package/dist/core/router/buildError.d.ts +4 -2
- package/dist/core/router/buildError.mjs +3 -1
- package/dist/core/router/index.cjs +13 -7
- package/dist/core/router/index.mjs +14 -8
- package/dist/core/router/types/buildedRouter.cjs +2 -0
- package/dist/core/router/types/buildedRouter.mjs +1 -0
- package/dist/core/router/types/index.cjs +4 -0
- package/dist/core/router/types/index.mjs +1 -0
- package/dist/core/steps/cut.d.ts +3 -3
- package/dist/core/steps/handler.d.ts +3 -3
- package/dist/core/steps/identifier.d.ts +2 -2
- package/dist/core/steps/index.cjs +29 -0
- package/dist/core/steps/index.mjs +9 -0
- package/dist/core/steps/types/buildedStep.cjs +2 -0
- package/dist/core/steps/types/buildedStep.mjs +1 -0
- package/dist/core/steps/types/index.cjs +6 -0
- package/dist/core/steps/types/index.mjs +3 -0
- package/dist/core/steps/types/stepFunctionParams.cjs +2 -0
- package/dist/core/steps/types/stepFunctionParams.d.ts +2 -2
- package/dist/core/steps/types/stepFunctionParams.mjs +1 -0
- package/dist/core/steps/types/steps.cjs +2 -0
- package/dist/core/steps/types/steps.mjs +1 -0
- package/dist/core/types/environment.cjs +2 -0
- package/dist/core/types/environment.d.ts +1 -1
- package/dist/core/types/environment.mjs +1 -0
- package/dist/core/types/forbiddenBigintDataParser.cjs +2 -0
- package/dist/core/types/forbiddenBigintDataParser.d.ts +6 -0
- package/dist/core/types/forbiddenBigintDataParser.mjs +1 -0
- package/dist/core/types/index.cjs +5 -0
- package/dist/core/types/index.d.ts +1 -0
- package/dist/core/types/index.mjs +2 -0
- package/dist/interfaces/bun/index.cjs +1 -9
- package/dist/interfaces/bun/index.mjs +1 -9
- package/dist/interfaces/bun/types/index.cjs +4 -0
- package/dist/interfaces/bun/types/index.mjs +1 -0
- package/dist/interfaces/bun/types/request.cjs +5 -0
- package/dist/interfaces/bun/types/request.mjs +2 -0
- package/dist/interfaces/deno/index.cjs +1 -0
- package/dist/interfaces/deno/index.mjs +1 -0
- package/dist/interfaces/deno/types/index.cjs +2 -0
- package/dist/interfaces/deno/types/index.mjs +1 -0
- package/dist/interfaces/node/createHttpServer.cjs +11 -3
- package/dist/interfaces/node/createHttpServer.d.ts +2 -1
- package/dist/interfaces/node/createHttpServer.mjs +11 -3
- package/dist/interfaces/node/error/index.cjs +11 -0
- package/dist/interfaces/node/error/index.mjs +3 -0
- package/dist/interfaces/node/hooks.cjs +17 -13
- package/dist/interfaces/node/hooks.mjs +16 -12
- package/dist/interfaces/node/index.cjs +6 -13
- package/dist/interfaces/node/index.mjs +4 -11
- package/dist/interfaces/node/types/host.cjs +2 -0
- package/dist/interfaces/node/types/host.mjs +1 -0
- package/dist/interfaces/node/types/index.cjs +5 -0
- package/dist/interfaces/node/types/index.mjs +2 -0
- package/dist/interfaces/node/types/request.cjs +5 -0
- package/dist/interfaces/node/types/request.mjs +2 -0
- package/dist/plugins/codeGenerator/index.cjs +13 -0
- package/dist/plugins/codeGenerator/index.d.ts +5 -0
- package/dist/plugins/codeGenerator/index.mjs +5 -0
- package/dist/plugins/codeGenerator/plugin.cjs +51 -0
- package/dist/plugins/codeGenerator/plugin.d.ts +5 -0
- package/dist/plugins/codeGenerator/plugin.mjs +30 -0
- package/dist/plugins/codeGenerator/routeToDataParser.cjs +28 -0
- package/dist/plugins/codeGenerator/routeToDataParser.d.ts +7 -0
- package/dist/plugins/codeGenerator/routeToDataParser.mjs +26 -0
- package/dist/plugins/codeGenerator/stepsToDataParser.cjs +66 -0
- package/dist/plugins/codeGenerator/stepsToDataParser.d.ts +14 -0
- package/dist/plugins/codeGenerator/stepsToDataParser.mjs +64 -0
- package/dist/plugins/codeGenerator/types/entrypointKey.cjs +2 -0
- package/dist/plugins/codeGenerator/types/entrypointKey.d.ts +1 -0
- package/dist/plugins/codeGenerator/types/entrypointKey.mjs +1 -0
- package/dist/plugins/codeGenerator/types/index.cjs +4 -0
- package/dist/plugins/codeGenerator/types/index.d.ts +1 -0
- package/dist/plugins/codeGenerator/types/index.mjs +1 -0
- package/dist/plugins/openApiGenerator/aggregateStepContract.cjs +62 -0
- package/dist/plugins/openApiGenerator/aggregateStepContract.d.ts +18 -0
- package/dist/plugins/openApiGenerator/aggregateStepContract.mjs +60 -0
- package/dist/plugins/openApiGenerator/index.cjs +17 -0
- package/dist/plugins/openApiGenerator/index.d.ts +7 -0
- package/dist/plugins/openApiGenerator/index.mjs +7 -0
- package/dist/plugins/openApiGenerator/makeOpenApiPage.cjs +30 -0
- package/dist/plugins/openApiGenerator/makeOpenApiPage.d.ts +7 -0
- package/dist/plugins/openApiGenerator/makeOpenApiPage.mjs +28 -0
- package/dist/plugins/openApiGenerator/makeOpenApiRoute.cjs +15 -0
- package/dist/plugins/openApiGenerator/makeOpenApiRoute.d.ts +18 -0
- package/dist/plugins/openApiGenerator/makeOpenApiRoute.mjs +13 -0
- package/dist/plugins/openApiGenerator/plugin.cjs +90 -0
- package/dist/plugins/openApiGenerator/plugin.d.ts +49 -0
- package/dist/plugins/openApiGenerator/plugin.mjs +88 -0
- package/dist/plugins/openApiGenerator/routeToOpenApi.cjs +163 -0
- package/dist/plugins/openApiGenerator/routeToOpenApi.d.ts +35 -0
- package/dist/plugins/openApiGenerator/routeToOpenApi.mjs +161 -0
- package/dist/plugins/openApiGenerator/types/endpointResponse.cjs +2 -0
- package/dist/plugins/openApiGenerator/types/endpointResponse.d.ts +19 -0
- package/dist/plugins/openApiGenerator/types/endpointResponse.mjs +1 -0
- package/dist/plugins/openApiGenerator/types/entrypoint.cjs +2 -0
- package/dist/plugins/openApiGenerator/types/entrypoint.d.ts +22 -0
- package/dist/plugins/openApiGenerator/types/entrypoint.mjs +1 -0
- package/dist/plugins/openApiGenerator/types/entrypointKey.cjs +2 -0
- package/dist/plugins/openApiGenerator/types/entrypointKey.d.ts +1 -0
- package/dist/plugins/openApiGenerator/types/entrypointKey.mjs +1 -0
- package/dist/plugins/openApiGenerator/types/index.cjs +11 -0
- package/dist/plugins/openApiGenerator/types/index.d.ts +8 -0
- package/dist/plugins/openApiGenerator/types/index.mjs +8 -0
- package/dist/plugins/openApiGenerator/types/openApiDocument.cjs +2 -0
- package/dist/plugins/openApiGenerator/types/openApiDocument.d.ts +31 -0
- package/dist/plugins/openApiGenerator/types/openApiDocument.mjs +1 -0
- package/dist/plugins/openApiGenerator/types/openApiMethod.cjs +2 -0
- package/dist/plugins/openApiGenerator/types/openApiMethod.d.ts +1 -0
- package/dist/plugins/openApiGenerator/types/openApiMethod.mjs +1 -0
- package/dist/plugins/openApiGenerator/types/openApiOperation.cjs +2 -0
- package/dist/plugins/openApiGenerator/types/openApiOperation.d.ts +8 -0
- package/dist/plugins/openApiGenerator/types/openApiOperation.mjs +1 -0
- package/dist/plugins/openApiGenerator/types/openApiPath.cjs +2 -0
- package/dist/plugins/openApiGenerator/types/openApiPath.d.ts +4 -0
- package/dist/plugins/openApiGenerator/types/openApiPath.mjs +1 -0
- package/dist/plugins/openApiGenerator/types/openApiSecuritySchema.cjs +2 -0
- package/dist/plugins/openApiGenerator/types/openApiSecuritySchema.d.ts +8 -0
- package/dist/plugins/openApiGenerator/types/openApiSecuritySchema.mjs +1 -0
- package/package.json +22 -3
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
declare module "@duplojs/utils" {
|
|
2
|
+
interface ReservedKindNamespace {
|
|
3
|
+
DuplojsHttpClient: true;
|
|
4
|
+
}
|
|
5
|
+
}
|
|
6
|
+
export declare const createClientKind: <GenericName extends string, GenericKindValue extends unknown = unknown>(name: GenericName & import("@duplojs/utils/string").ForbiddenString<GenericName, "@" | "/">) => import("@duplojs/utils").KindHandler<import("@duplojs/utils").KindDefinition<`@DuplojsHttpClient/${GenericName}`, GenericKindValue>>;
|
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utils = require('@duplojs/utils');
|
|
4
|
+
var getBody = require('./getBody.cjs');
|
|
5
|
+
var insertParamsInPath = require('./insertParamsInPath.cjs');
|
|
6
|
+
var queryToString = require('./queryToString.cjs');
|
|
7
|
+
var hooks = require('./hooks.cjs');
|
|
8
|
+
var EE = require('@duplojs/utils/either');
|
|
9
|
+
var SS = require('@duplojs/utils/string');
|
|
10
|
+
var AA = require('@duplojs/utils/array');
|
|
11
|
+
var unexpectedResponseError = require('./unexpectedResponseError.cjs');
|
|
12
|
+
|
|
13
|
+
function _interopNamespaceDefault(e) {
|
|
14
|
+
var n = Object.create(null);
|
|
15
|
+
if (e) {
|
|
16
|
+
Object.keys(e).forEach(function (k) {
|
|
17
|
+
if (k !== 'default') {
|
|
18
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
19
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () { return e[k]; }
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
n.default = e;
|
|
27
|
+
return Object.freeze(n);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
var EE__namespace = /*#__PURE__*/_interopNamespaceDefault(EE);
|
|
31
|
+
var SS__namespace = /*#__PURE__*/_interopNamespaceDefault(SS);
|
|
32
|
+
var AA__namespace = /*#__PURE__*/_interopNamespaceDefault(AA);
|
|
33
|
+
|
|
34
|
+
class PromiseRequest extends Promise {
|
|
35
|
+
params;
|
|
36
|
+
hooks = {};
|
|
37
|
+
constructor(params) {
|
|
38
|
+
super((resolve) => void EE__namespace
|
|
39
|
+
.rightAsyncPipe(Promise.resolve(params), (params) => hooks.launchRequestHook(params.hooks.request, this.hooks.request ?? [], params), PromiseRequest.fetch, (response) => hooks.launchResponseHook(params.hooks.response, this.hooks.response ?? [], response), async (response) => {
|
|
40
|
+
if (params.disabledPredicateMode === false && response.predicted === false) {
|
|
41
|
+
await hooks.launchNotPredictedHook(params.hooks.notPredictedResponse, this.hooks.notPredictedResponse ?? [], response);
|
|
42
|
+
return EE__namespace.right("response", response);
|
|
43
|
+
}
|
|
44
|
+
if (SS__namespace.startsWith(response.code, "1")) {
|
|
45
|
+
await hooks.launchResponseTypeHook(params.hooks.informationalResponseType, this.hooks.informationalResponseType ?? [], response);
|
|
46
|
+
}
|
|
47
|
+
else if (SS__namespace.startsWith(response.code, "2")) {
|
|
48
|
+
await hooks.launchResponseTypeHook(params.hooks.successfulResponseType, this.hooks.successfulResponseType ?? [], response);
|
|
49
|
+
await hooks.launchExpectedResponseHook(params.hooks.expectedResponse, this.hooks.expectedResponse ?? [], response);
|
|
50
|
+
}
|
|
51
|
+
else if (SS__namespace.startsWith(response.code, "3")) {
|
|
52
|
+
await hooks.launchResponseTypeHook(params.hooks.redirectionResponseType, this.hooks.redirectionResponseType ?? [], response);
|
|
53
|
+
}
|
|
54
|
+
else if (SS__namespace.startsWith(response.code, "4")) {
|
|
55
|
+
await hooks.launchResponseTypeHook(params.hooks.clientErrorResponseType, this.hooks.clientErrorResponseType ?? [], response);
|
|
56
|
+
await hooks.launchExpectedResponseHook(params.hooks.expectedResponse, this.hooks.expectedResponse ?? [], response);
|
|
57
|
+
}
|
|
58
|
+
else if (SS__namespace.startsWith(response.code, "5")) {
|
|
59
|
+
await hooks.launchResponseTypeHook(params.hooks.serverErrorResponseType, this.hooks.serverErrorResponseType ?? [], response);
|
|
60
|
+
}
|
|
61
|
+
if (response.information !== undefined) {
|
|
62
|
+
await hooks.launchInformationHook(params.hooks.information[response.information] ?? [], this.hooks.information?.[response.information] ?? [], response);
|
|
63
|
+
}
|
|
64
|
+
await hooks.launchCodeHook(params.hooks.code[response.code] ?? [], this.hooks.code?.[response.code] ?? [], response);
|
|
65
|
+
return EE__namespace.right("response", response);
|
|
66
|
+
})
|
|
67
|
+
.then(async (result) => {
|
|
68
|
+
if (EE__namespace.eitherFutureErrorKind.has(result)) {
|
|
69
|
+
const error = utils.unwrap(result);
|
|
70
|
+
await hooks.launchErrorHook(params.hooks.error, this.hooks.error ?? [], error, params);
|
|
71
|
+
return EE__namespace.left("request-error", {
|
|
72
|
+
error,
|
|
73
|
+
requestParams: params,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
return result;
|
|
77
|
+
})
|
|
78
|
+
.then(resolve));
|
|
79
|
+
this.params = params;
|
|
80
|
+
}
|
|
81
|
+
addRequestInterceptor(callback) {
|
|
82
|
+
this.hooks.request ??= [];
|
|
83
|
+
this.hooks.request.push(callback);
|
|
84
|
+
return this;
|
|
85
|
+
}
|
|
86
|
+
addResponseInterceptor(callback) {
|
|
87
|
+
this.hooks.response ??= [];
|
|
88
|
+
this.hooks.response.push(callback);
|
|
89
|
+
return this;
|
|
90
|
+
}
|
|
91
|
+
whenNotPredictedResponse(callback) {
|
|
92
|
+
this.hooks.notPredictedResponse ??= [];
|
|
93
|
+
this.hooks.notPredictedResponse.push(callback);
|
|
94
|
+
return this;
|
|
95
|
+
}
|
|
96
|
+
whenInformation(information, callback) {
|
|
97
|
+
const formattedInformation = AA__namespace.coalescing(information);
|
|
98
|
+
formattedInformation.forEach((information) => {
|
|
99
|
+
this.hooks.information ??= {};
|
|
100
|
+
this.hooks.information[information] ??= [];
|
|
101
|
+
this.hooks.information[information].push(callback);
|
|
102
|
+
});
|
|
103
|
+
return this;
|
|
104
|
+
}
|
|
105
|
+
whenCode(code, callback) {
|
|
106
|
+
const formattedCode = AA__namespace.coalescing(code);
|
|
107
|
+
formattedCode.forEach((code) => {
|
|
108
|
+
this.hooks.code ??= {};
|
|
109
|
+
this.hooks.code[code] ??= [];
|
|
110
|
+
this.hooks.code[code].push(callback);
|
|
111
|
+
});
|
|
112
|
+
return this;
|
|
113
|
+
}
|
|
114
|
+
whenInformationalResponse(callback) {
|
|
115
|
+
this.hooks.informationalResponseType ??= [];
|
|
116
|
+
this.hooks.informationalResponseType.push(callback);
|
|
117
|
+
return this;
|
|
118
|
+
}
|
|
119
|
+
whenSuccessfulResponse(callback) {
|
|
120
|
+
this.hooks.successfulResponseType ??= [];
|
|
121
|
+
this.hooks.successfulResponseType.push(callback);
|
|
122
|
+
return this;
|
|
123
|
+
}
|
|
124
|
+
whenRedirectionResponse(callback) {
|
|
125
|
+
this.hooks.redirectionResponseType ??= [];
|
|
126
|
+
this.hooks.redirectionResponseType.push(callback);
|
|
127
|
+
return this;
|
|
128
|
+
}
|
|
129
|
+
whenClientErrorResponse(callback) {
|
|
130
|
+
this.hooks.clientErrorResponseType ??= [];
|
|
131
|
+
this.hooks.clientErrorResponseType.push(callback);
|
|
132
|
+
return this;
|
|
133
|
+
}
|
|
134
|
+
whenServerErrorResponse(callback) {
|
|
135
|
+
this.hooks.serverErrorResponseType ??= [];
|
|
136
|
+
this.hooks.serverErrorResponseType.push(callback);
|
|
137
|
+
return this;
|
|
138
|
+
}
|
|
139
|
+
whenExpectedResponse(callback) {
|
|
140
|
+
this.hooks.expectedResponse ??= [];
|
|
141
|
+
this.hooks.expectedResponse.push(callback);
|
|
142
|
+
return this;
|
|
143
|
+
}
|
|
144
|
+
whenError(callback) {
|
|
145
|
+
this.hooks.error ??= [];
|
|
146
|
+
this.hooks.error.push(callback);
|
|
147
|
+
return this;
|
|
148
|
+
}
|
|
149
|
+
iWantInformation(information) {
|
|
150
|
+
const formattedInformation = AA__namespace.coalescing(information);
|
|
151
|
+
return this.then(EE__namespace.whenIsRight((response) => {
|
|
152
|
+
if (response.information !== undefined
|
|
153
|
+
&& AA__namespace.includes(formattedInformation, response.information)) {
|
|
154
|
+
return EE__namespace.right("response", response);
|
|
155
|
+
}
|
|
156
|
+
return EE__namespace.left("unexpect-response", response);
|
|
157
|
+
}));
|
|
158
|
+
}
|
|
159
|
+
iWantCode(code) {
|
|
160
|
+
const formattedCode = AA__namespace.coalescing(code);
|
|
161
|
+
return this.then(EE__namespace.whenIsRight((response) => {
|
|
162
|
+
if (AA__namespace.includes(formattedCode, response.code)) {
|
|
163
|
+
return EE__namespace.right("response", response);
|
|
164
|
+
}
|
|
165
|
+
return EE__namespace.left("unexpect-response", response);
|
|
166
|
+
}));
|
|
167
|
+
}
|
|
168
|
+
iWantInformationalResponse() {
|
|
169
|
+
return this.then(EE__namespace.whenIsRight((response) => {
|
|
170
|
+
if (SS__namespace.startsWith(response.code, "1")) {
|
|
171
|
+
return EE__namespace.right("response", response);
|
|
172
|
+
}
|
|
173
|
+
return EE__namespace.left("unexpect-response", response);
|
|
174
|
+
}));
|
|
175
|
+
}
|
|
176
|
+
iWantSuccessfulResponse() {
|
|
177
|
+
return this.then(EE__namespace.whenIsRight((response) => {
|
|
178
|
+
if (SS__namespace.startsWith(response.code, "2")) {
|
|
179
|
+
return EE__namespace.right("response", response);
|
|
180
|
+
}
|
|
181
|
+
return EE__namespace.left("unexpect-response", response);
|
|
182
|
+
}));
|
|
183
|
+
}
|
|
184
|
+
iWantRedirectionResponse() {
|
|
185
|
+
return this.then(EE__namespace.whenIsRight((response) => {
|
|
186
|
+
if (SS__namespace.startsWith(response.code, "3")) {
|
|
187
|
+
return EE__namespace.right("response", response);
|
|
188
|
+
}
|
|
189
|
+
return EE__namespace.left("unexpect-response", response);
|
|
190
|
+
}));
|
|
191
|
+
}
|
|
192
|
+
iWantClientErrorResponse() {
|
|
193
|
+
return this.then(EE__namespace.whenIsRight((response) => {
|
|
194
|
+
if (SS__namespace.startsWith(response.code, "4")) {
|
|
195
|
+
return EE__namespace.right("response", response);
|
|
196
|
+
}
|
|
197
|
+
return EE__namespace.left("unexpect-response", response);
|
|
198
|
+
}));
|
|
199
|
+
}
|
|
200
|
+
iWantServerErrorResponse() {
|
|
201
|
+
return this.then(EE__namespace.whenIsRight((response) => {
|
|
202
|
+
if (SS__namespace.startsWith(response.code, "5")) {
|
|
203
|
+
return EE__namespace.right("response", response);
|
|
204
|
+
}
|
|
205
|
+
return EE__namespace.left("unexpect-response", response);
|
|
206
|
+
}));
|
|
207
|
+
}
|
|
208
|
+
iWantExpectedResponse() {
|
|
209
|
+
return this.then(EE__namespace.whenIsRight((response) => {
|
|
210
|
+
if (SS__namespace.startsWith(response.code, "2") || SS__namespace.startsWith(response.code, "4")) {
|
|
211
|
+
return EE__namespace.right("response", response);
|
|
212
|
+
}
|
|
213
|
+
return EE__namespace.left("unexpect-response", response);
|
|
214
|
+
}));
|
|
215
|
+
}
|
|
216
|
+
iWantInformationOrThrow(information) {
|
|
217
|
+
return this
|
|
218
|
+
.iWantInformation(information)
|
|
219
|
+
.then((maybeResponse) => {
|
|
220
|
+
if (EE__namespace.isRight(maybeResponse)) {
|
|
221
|
+
return utils.unwrap(maybeResponse);
|
|
222
|
+
}
|
|
223
|
+
throw new unexpectedResponseError.UnexpectedInformationResponseError(information, utils.unwrap(maybeResponse));
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
iWantCodeOrThrow(code) {
|
|
227
|
+
return this
|
|
228
|
+
.iWantCode(code)
|
|
229
|
+
.then((maybeResponse) => {
|
|
230
|
+
if (EE__namespace.isRight(maybeResponse)) {
|
|
231
|
+
return utils.unwrap(maybeResponse);
|
|
232
|
+
}
|
|
233
|
+
throw new unexpectedResponseError.UnexpectedCodeResponseError(code, utils.unwrap(maybeResponse));
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
iWantInformationalResponseOrThrow() {
|
|
237
|
+
return this
|
|
238
|
+
.iWantInformationalResponse()
|
|
239
|
+
.then((maybeResponse) => {
|
|
240
|
+
if (EE__namespace.isRight(maybeResponse)) {
|
|
241
|
+
return utils.unwrap(maybeResponse);
|
|
242
|
+
}
|
|
243
|
+
throw new unexpectedResponseError.UnexpectedResponseTypeError("informational", utils.unwrap(maybeResponse));
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
iWantSuccessfulResponseOrThrow() {
|
|
247
|
+
return this
|
|
248
|
+
.iWantSuccessfulResponse()
|
|
249
|
+
.then((maybeResponse) => {
|
|
250
|
+
if (EE__namespace.isRight(maybeResponse)) {
|
|
251
|
+
return utils.unwrap(maybeResponse);
|
|
252
|
+
}
|
|
253
|
+
throw new unexpectedResponseError.UnexpectedResponseTypeError("successful", utils.unwrap(maybeResponse));
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
iWantRedirectionResponseOrThrow() {
|
|
257
|
+
return this
|
|
258
|
+
.iWantRedirectionResponse()
|
|
259
|
+
.then((maybeResponse) => {
|
|
260
|
+
if (EE__namespace.isRight(maybeResponse)) {
|
|
261
|
+
return utils.unwrap(maybeResponse);
|
|
262
|
+
}
|
|
263
|
+
throw new unexpectedResponseError.UnexpectedResponseTypeError("redirection", utils.unwrap(maybeResponse));
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
iWantClientErrorResponseOrThrow() {
|
|
267
|
+
return this
|
|
268
|
+
.iWantClientErrorResponse()
|
|
269
|
+
.then((maybeResponse) => {
|
|
270
|
+
if (EE__namespace.isRight(maybeResponse)) {
|
|
271
|
+
return utils.unwrap(maybeResponse);
|
|
272
|
+
}
|
|
273
|
+
throw new unexpectedResponseError.UnexpectedResponseTypeError("clientError", utils.unwrap(maybeResponse));
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
iWantServerErrorResponseOrThrow() {
|
|
277
|
+
return this
|
|
278
|
+
.iWantServerErrorResponse()
|
|
279
|
+
.then((maybeResponse) => {
|
|
280
|
+
if (EE__namespace.isRight(maybeResponse)) {
|
|
281
|
+
return utils.unwrap(maybeResponse);
|
|
282
|
+
}
|
|
283
|
+
throw new unexpectedResponseError.UnexpectedResponseTypeError("informational", utils.unwrap(maybeResponse));
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
iWantExpectedResponseOrThrow() {
|
|
287
|
+
return this
|
|
288
|
+
.iWantExpectedResponse()
|
|
289
|
+
.then((maybeResponse) => {
|
|
290
|
+
if (EE__namespace.isRight(maybeResponse)) {
|
|
291
|
+
return utils.unwrap(maybeResponse);
|
|
292
|
+
}
|
|
293
|
+
throw new unexpectedResponseError.UnexpectedResponseError(utils.unwrap(maybeResponse));
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
static get [Symbol.species]() {
|
|
297
|
+
return Promise;
|
|
298
|
+
}
|
|
299
|
+
static fetch(requestParams) {
|
|
300
|
+
const path = insertParamsInPath.insertParamsInPath(requestParams.path, requestParams.params);
|
|
301
|
+
const query = queryToString.queryToString(requestParams.query);
|
|
302
|
+
const url = query
|
|
303
|
+
? `${path}?${query}`
|
|
304
|
+
: path;
|
|
305
|
+
const headers = { ...requestParams.headers };
|
|
306
|
+
let body = requestParams.body;
|
|
307
|
+
if (body) {
|
|
308
|
+
if (!headers["content-type"]) {
|
|
309
|
+
if (typeof body === "string") {
|
|
310
|
+
headers["content-type"] = "text/plain; charset=utf-8";
|
|
311
|
+
body = body.toString();
|
|
312
|
+
}
|
|
313
|
+
else if ((body
|
|
314
|
+
&& typeof body === "object"
|
|
315
|
+
&& body?.constructor?.name === "Object")
|
|
316
|
+
|| (body instanceof Array
|
|
317
|
+
&& body?.constructor?.name === "Array")
|
|
318
|
+
|| body === null
|
|
319
|
+
|| typeof body === "boolean"
|
|
320
|
+
|| typeof body === "number") {
|
|
321
|
+
headers["content-type"] = "application/json; charset=utf-8";
|
|
322
|
+
body = JSON.stringify(body);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
return fetch(`${requestParams.baseUrl}${url}`, {
|
|
327
|
+
...requestParams.initParams,
|
|
328
|
+
headers: headers,
|
|
329
|
+
method: requestParams.method,
|
|
330
|
+
body: body,
|
|
331
|
+
})
|
|
332
|
+
.then((response) => getBody.getBody(response)
|
|
333
|
+
.then((body) => EE__namespace.right("response", {
|
|
334
|
+
body,
|
|
335
|
+
information: response.headers.get(requestParams.informationHeaderKey) || undefined,
|
|
336
|
+
code: response.status.toString(),
|
|
337
|
+
ok: (response.status < 500)
|
|
338
|
+
? response.ok
|
|
339
|
+
: null,
|
|
340
|
+
headers: response.headers,
|
|
341
|
+
type: response.type,
|
|
342
|
+
url: response.url,
|
|
343
|
+
redirected: response.redirected,
|
|
344
|
+
raw: response,
|
|
345
|
+
requestParams,
|
|
346
|
+
predicted: response.headers.get(requestParams.predictedHeaderKey) !== null,
|
|
347
|
+
})))
|
|
348
|
+
.catch((error) => EE__namespace.left("request-error", {
|
|
349
|
+
error,
|
|
350
|
+
requestParams,
|
|
351
|
+
}));
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
exports.PromiseRequest = PromiseRequest;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { type NeverCoalescing, type MaybePromise } from "@duplojs/utils";
|
|
2
|
+
import { type Hooks, type ErrorHook, type NotPredictedResponseHook } from "./hooks";
|
|
3
|
+
import * as EE from "@duplojs/utils/either";
|
|
4
|
+
import { type RequestErrorContent } from "./unexpectedResponseError";
|
|
5
|
+
import { type NotPredictedClientResponse, type ClientRequestParams, type ClientResponse } from "./types";
|
|
6
|
+
type MaybeResponse<GenericClientResponse extends ClientResponse = ClientResponse> = (EE.EitherRight<"response", GenericClientResponse> | EE.EitherLeft<"request-error", RequestErrorContent>);
|
|
7
|
+
type MaybeWantedResponse<GenericWantedClientResponse extends ClientResponse = ClientResponse, GenericUnexpectClientResponse extends ClientResponse = ClientResponse> = (EE.EitherRight<"response", GenericWantedClientResponse> | EE.EitherLeft<"unexpect-response", GenericUnexpectClientResponse> | EE.EitherLeft<"request-error", RequestErrorContent>);
|
|
8
|
+
export interface PromiseRequestParams<GenericHookParams extends Record<string, unknown> = Record<string, unknown>> extends ClientRequestParams<GenericHookParams> {
|
|
9
|
+
baseUrl: string;
|
|
10
|
+
hooks: Hooks;
|
|
11
|
+
informationHeaderKey: string;
|
|
12
|
+
predictedHeaderKey: string;
|
|
13
|
+
disabledPredicateMode: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare class PromiseRequest<GenericPromiseRequestParams extends PromiseRequestParams = PromiseRequestParams, GenericClientResponse extends ClientResponse = ClientResponse> extends Promise<MaybeResponse<GenericClientResponse | NotPredictedClientResponse<GenericPromiseRequestParams>>> {
|
|
16
|
+
params: PromiseRequestParams;
|
|
17
|
+
readonly hooks: Partial<Hooks>;
|
|
18
|
+
constructor(params: PromiseRequestParams);
|
|
19
|
+
addRequestInterceptor(callback: (requestParams: GenericPromiseRequestParams) => MaybePromise<GenericPromiseRequestParams>): this;
|
|
20
|
+
addResponseInterceptor(callback: (response: GenericClientResponse) => MaybePromise<GenericClientResponse>): this;
|
|
21
|
+
whenNotPredictedResponse(callback: NotPredictedResponseHook<GenericPromiseRequestParams>): this;
|
|
22
|
+
whenInformation<GenericInformation extends Extract<GenericClientResponse["information"], string>>(information: GenericInformation | GenericInformation[], callback: (response: NeverCoalescing<Extract<GenericClientResponse, GenericInformation extends any ? {
|
|
23
|
+
information: GenericInformation;
|
|
24
|
+
} : never>, ClientResponse<GenericPromiseRequestParams>>) => MaybePromise<void>): this;
|
|
25
|
+
whenCode<GenericCode extends GenericClientResponse["code"]>(code: GenericCode | GenericCode[], callback: (response: NeverCoalescing<Extract<GenericClientResponse, GenericCode extends any ? {
|
|
26
|
+
code: GenericCode;
|
|
27
|
+
} : never>, ClientResponse<GenericPromiseRequestParams>>) => MaybePromise<void>): this;
|
|
28
|
+
whenInformationalResponse(callback: (response: NeverCoalescing<Extract<GenericClientResponse, {
|
|
29
|
+
code: `1${number}`;
|
|
30
|
+
}>, ClientResponse<GenericPromiseRequestParams>>) => MaybePromise<void>): this;
|
|
31
|
+
whenSuccessfulResponse(callback: (response: NeverCoalescing<Extract<GenericClientResponse, {
|
|
32
|
+
code: `2${number}`;
|
|
33
|
+
}>, ClientResponse<GenericPromiseRequestParams>>) => MaybePromise<void>): this;
|
|
34
|
+
whenRedirectionResponse(callback: (response: NeverCoalescing<Extract<GenericClientResponse, {
|
|
35
|
+
code: `3${number}`;
|
|
36
|
+
}>, ClientResponse<GenericPromiseRequestParams>>) => MaybePromise<void>): this;
|
|
37
|
+
whenClientErrorResponse(callback: (response: NeverCoalescing<Extract<GenericClientResponse, {
|
|
38
|
+
code: `4${number}`;
|
|
39
|
+
}>, ClientResponse<GenericPromiseRequestParams>>) => MaybePromise<void>): this;
|
|
40
|
+
whenServerErrorResponse(callback: (response: NeverCoalescing<Extract<GenericClientResponse, {
|
|
41
|
+
code: `5${number}`;
|
|
42
|
+
}>, ClientResponse<GenericPromiseRequestParams>>) => MaybePromise<void>): this;
|
|
43
|
+
whenExpectedResponse(callback: (response: NeverCoalescing<Extract<GenericClientResponse, {
|
|
44
|
+
code: `2${number}` | `4${number}`;
|
|
45
|
+
}>, ClientResponse<GenericPromiseRequestParams>>) => MaybePromise<void>): this;
|
|
46
|
+
whenError(callback: ErrorHook<GenericPromiseRequestParams>): this;
|
|
47
|
+
iWantInformation<GenericInformation extends Extract<GenericClientResponse["information"], string>, GenericResponse extends NeverCoalescing<Extract<GenericClientResponse, GenericInformation extends any ? {
|
|
48
|
+
information: GenericInformation;
|
|
49
|
+
} : never>, ClientResponse<GenericPromiseRequestParams>>>(information: GenericInformation | GenericInformation[]): Promise<MaybeWantedResponse<GenericResponse, NeverCoalescing<Exclude<GenericClientResponse, GenericResponse>, ClientResponse<GenericPromiseRequestParams>>>>;
|
|
50
|
+
iWantCode<GenericCode extends GenericClientResponse["code"], GenericResponse extends NeverCoalescing<Extract<GenericClientResponse, GenericCode extends any ? {
|
|
51
|
+
code: GenericCode;
|
|
52
|
+
} : never>, ClientResponse<GenericPromiseRequestParams>>>(code: GenericCode | GenericCode[]): Promise<MaybeWantedResponse<GenericResponse, NeverCoalescing<Exclude<GenericClientResponse, GenericResponse>, ClientResponse<GenericPromiseRequestParams>>>>;
|
|
53
|
+
iWantInformationalResponse<GenericResponse extends NeverCoalescing<Extract<GenericClientResponse, {
|
|
54
|
+
code: `1${number}`;
|
|
55
|
+
}>, ClientResponse<GenericPromiseRequestParams>>>(): Promise<MaybeWantedResponse<GenericResponse, NeverCoalescing<Exclude<GenericClientResponse, GenericResponse>, ClientResponse<GenericPromiseRequestParams>>>>;
|
|
56
|
+
iWantSuccessfulResponse<GenericResponse extends NeverCoalescing<Extract<GenericClientResponse, {
|
|
57
|
+
code: `2${number}`;
|
|
58
|
+
}>, ClientResponse<GenericPromiseRequestParams>>>(): Promise<MaybeWantedResponse<GenericResponse, NeverCoalescing<Exclude<GenericClientResponse, GenericResponse>, ClientResponse<GenericPromiseRequestParams>>>>;
|
|
59
|
+
iWantRedirectionResponse<GenericResponse extends NeverCoalescing<Extract<GenericClientResponse, {
|
|
60
|
+
code: `3${number}`;
|
|
61
|
+
}>, ClientResponse<GenericPromiseRequestParams>>>(): Promise<MaybeWantedResponse<GenericResponse, NeverCoalescing<Exclude<GenericClientResponse, GenericResponse>, ClientResponse<GenericPromiseRequestParams>>>>;
|
|
62
|
+
iWantClientErrorResponse<GenericResponse extends NeverCoalescing<Extract<GenericClientResponse, {
|
|
63
|
+
code: `4${number}`;
|
|
64
|
+
}>, ClientResponse<GenericPromiseRequestParams>>>(): Promise<MaybeWantedResponse<GenericResponse, NeverCoalescing<Exclude<GenericClientResponse, GenericResponse>, ClientResponse<GenericPromiseRequestParams>>>>;
|
|
65
|
+
iWantServerErrorResponse<GenericResponse extends NeverCoalescing<Extract<GenericClientResponse, {
|
|
66
|
+
code: `5${number}`;
|
|
67
|
+
}>, ClientResponse<GenericPromiseRequestParams>>>(): Promise<MaybeWantedResponse<GenericResponse, NeverCoalescing<Exclude<GenericClientResponse, GenericResponse>, ClientResponse<GenericPromiseRequestParams>>>>;
|
|
68
|
+
iWantExpectedResponse<GenericResponse extends NeverCoalescing<Extract<GenericClientResponse, {
|
|
69
|
+
code: `2${number}` | `4${number}`;
|
|
70
|
+
}>, ClientResponse<GenericPromiseRequestParams>>>(): Promise<MaybeWantedResponse<GenericResponse, NeverCoalescing<Exclude<GenericClientResponse, GenericResponse>, ClientResponse<GenericPromiseRequestParams>>>>;
|
|
71
|
+
iWantInformationOrThrow<GenericInformation extends Extract<GenericClientResponse["information"], string>>(information: GenericInformation | GenericInformation[]): Promise<NeverCoalescing<Extract<GenericClientResponse, GenericInformation extends any ? {
|
|
72
|
+
information: GenericInformation;
|
|
73
|
+
} : never>, ClientResponse<GenericPromiseRequestParams>>>;
|
|
74
|
+
iWantCodeOrThrow<GenericCode extends GenericClientResponse["code"]>(code: GenericCode | GenericCode[]): Promise<NeverCoalescing<Extract<GenericClientResponse, GenericCode extends any ? {
|
|
75
|
+
code: GenericCode;
|
|
76
|
+
} : never>, ClientResponse<GenericPromiseRequestParams>>>;
|
|
77
|
+
iWantInformationalResponseOrThrow(): Promise<NeverCoalescing<Extract<GenericClientResponse, {
|
|
78
|
+
code: `1${number}`;
|
|
79
|
+
}>, ClientResponse<GenericPromiseRequestParams>>>;
|
|
80
|
+
iWantSuccessfulResponseOrThrow(): Promise<NeverCoalescing<Extract<GenericClientResponse, {
|
|
81
|
+
code: `2${number}`;
|
|
82
|
+
}>, ClientResponse<GenericPromiseRequestParams>>>;
|
|
83
|
+
iWantRedirectionResponseOrThrow(): Promise<NeverCoalescing<Extract<GenericClientResponse, {
|
|
84
|
+
code: `3${number}`;
|
|
85
|
+
}>, ClientResponse<GenericPromiseRequestParams>>>;
|
|
86
|
+
iWantClientErrorResponseOrThrow(): Promise<NeverCoalescing<Extract<GenericClientResponse, {
|
|
87
|
+
code: `4${number}`;
|
|
88
|
+
}>, ClientResponse<GenericPromiseRequestParams>>>;
|
|
89
|
+
iWantServerErrorResponseOrThrow(): Promise<NeverCoalescing<Extract<GenericClientResponse, {
|
|
90
|
+
code: `5${number}`;
|
|
91
|
+
}>, ClientResponse<GenericPromiseRequestParams>>>;
|
|
92
|
+
iWantExpectedResponseOrThrow(): Promise<NeverCoalescing<Extract<GenericClientResponse, {
|
|
93
|
+
code: `2${number}` | `4${number}`;
|
|
94
|
+
}>, ClientResponse<GenericPromiseRequestParams>>>;
|
|
95
|
+
static get [Symbol.species](): PromiseConstructor;
|
|
96
|
+
static fetch<GenericPromiseRequestParams extends PromiseRequestParams>(requestParams: GenericPromiseRequestParams): Promise<MaybeResponse>;
|
|
97
|
+
}
|
|
98
|
+
export {};
|