@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,22 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
function getBody(response) {
|
|
4
|
+
const responseContentType = response.headers.get("content-type") ?? undefined;
|
|
5
|
+
if (!responseContentType) {
|
|
6
|
+
return Promise.resolve(undefined);
|
|
7
|
+
}
|
|
8
|
+
else if (responseContentType.includes("json")) {
|
|
9
|
+
return response.json();
|
|
10
|
+
}
|
|
11
|
+
else if (responseContentType.includes("text")) {
|
|
12
|
+
return response.text();
|
|
13
|
+
}
|
|
14
|
+
else if (responseContentType.includes("form-data")) {
|
|
15
|
+
return response.formData();
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
return response.blob();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
exports.getBody = getBody;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getBody(response: Response): Promise<unknown>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
function getBody(response) {
|
|
2
|
+
const responseContentType = response.headers.get("content-type") ?? undefined;
|
|
3
|
+
if (!responseContentType) {
|
|
4
|
+
return Promise.resolve(undefined);
|
|
5
|
+
}
|
|
6
|
+
else if (responseContentType.includes("json")) {
|
|
7
|
+
return response.json();
|
|
8
|
+
}
|
|
9
|
+
else if (responseContentType.includes("text")) {
|
|
10
|
+
return response.text();
|
|
11
|
+
}
|
|
12
|
+
else if (responseContentType.includes("form-data")) {
|
|
13
|
+
return response.formData();
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
return response.blob();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export { getBody };
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
async function launchRequestHook(clientHook, promiseRequestHook, requestParams) {
|
|
4
|
+
let resultRequestParams = requestParams;
|
|
5
|
+
for (let index = 0; index < promiseRequestHook.length; index++) {
|
|
6
|
+
resultRequestParams = await promiseRequestHook[index](resultRequestParams);
|
|
7
|
+
}
|
|
8
|
+
for (let index = 0; index < clientHook.length; index++) {
|
|
9
|
+
resultRequestParams = await clientHook[index](resultRequestParams);
|
|
10
|
+
}
|
|
11
|
+
return resultRequestParams;
|
|
12
|
+
}
|
|
13
|
+
async function launchResponseHook(clientHook, promiseRequestHook, response) {
|
|
14
|
+
let resultResponse = response;
|
|
15
|
+
for (let index = 0; index < promiseRequestHook.length; index++) {
|
|
16
|
+
resultResponse = await promiseRequestHook[index](resultResponse);
|
|
17
|
+
}
|
|
18
|
+
for (let index = 0; index < clientHook.length; index++) {
|
|
19
|
+
resultResponse = await clientHook[index](resultResponse);
|
|
20
|
+
}
|
|
21
|
+
return resultResponse;
|
|
22
|
+
}
|
|
23
|
+
async function launchInformationHook(clientHook, promiseRequestHook, response) {
|
|
24
|
+
for (let index = 0; index < promiseRequestHook.length; index++) {
|
|
25
|
+
await promiseRequestHook[index](response);
|
|
26
|
+
}
|
|
27
|
+
for (let index = 0; index < clientHook.length; index++) {
|
|
28
|
+
await clientHook[index](response);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
async function launchCodeHook(clientHook, promiseRequestHook, response) {
|
|
32
|
+
for (let index = 0; index < promiseRequestHook.length; index++) {
|
|
33
|
+
await promiseRequestHook[index](response);
|
|
34
|
+
}
|
|
35
|
+
for (let index = 0; index < clientHook.length; index++) {
|
|
36
|
+
await clientHook[index](response);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
async function launchResponseTypeHook(clientHook, promiseRequestHook, response) {
|
|
40
|
+
for (let index = 0; index < promiseRequestHook.length; index++) {
|
|
41
|
+
await promiseRequestHook[index](response);
|
|
42
|
+
}
|
|
43
|
+
for (let index = 0; index < clientHook.length; index++) {
|
|
44
|
+
await clientHook[index](response);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
async function launchExpectedResponseHook(clientHook, promiseRequestHook, response) {
|
|
48
|
+
for (let index = 0; index < promiseRequestHook.length; index++) {
|
|
49
|
+
await promiseRequestHook[index](response);
|
|
50
|
+
}
|
|
51
|
+
for (let index = 0; index < clientHook.length; index++) {
|
|
52
|
+
await clientHook[index](response);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async function launchNotPredictedHook(clientHook, promiseRequestHook, response) {
|
|
56
|
+
for (let index = 0; index < promiseRequestHook.length; index++) {
|
|
57
|
+
await promiseRequestHook[index](response);
|
|
58
|
+
}
|
|
59
|
+
for (let index = 0; index < clientHook.length; index++) {
|
|
60
|
+
await clientHook[index](response);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async function launchErrorHook(clientHook, promiseRequestHook, error, requestParams) {
|
|
64
|
+
for (let index = 0; index < promiseRequestHook.length; index++) {
|
|
65
|
+
await promiseRequestHook[index](error, requestParams);
|
|
66
|
+
}
|
|
67
|
+
for (let index = 0; index < clientHook.length; index++) {
|
|
68
|
+
await clientHook[index](error, requestParams);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
exports.launchCodeHook = launchCodeHook;
|
|
73
|
+
exports.launchErrorHook = launchErrorHook;
|
|
74
|
+
exports.launchExpectedResponseHook = launchExpectedResponseHook;
|
|
75
|
+
exports.launchInformationHook = launchInformationHook;
|
|
76
|
+
exports.launchNotPredictedHook = launchNotPredictedHook;
|
|
77
|
+
exports.launchRequestHook = launchRequestHook;
|
|
78
|
+
exports.launchResponseHook = launchResponseHook;
|
|
79
|
+
exports.launchResponseTypeHook = launchResponseTypeHook;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type MaybePromise } from "@duplojs/utils";
|
|
2
|
+
import { type NotPredictedClientResponse, type ClientResponse } from "./types/clientResponse";
|
|
3
|
+
import { type PromiseRequestParams } from "./promiseRequest";
|
|
4
|
+
export type RequestHook<GenericPromiseRequestParams extends PromiseRequestParams = PromiseRequestParams> = (requestParams: GenericPromiseRequestParams) => MaybePromise<PromiseRequestParams>;
|
|
5
|
+
export type ResponseHook<GenericPromiseRequestParams extends PromiseRequestParams = PromiseRequestParams> = (response: ClientResponse<GenericPromiseRequestParams>) => MaybePromise<ClientResponse<GenericPromiseRequestParams>>;
|
|
6
|
+
export type InformationHook<GenericPromiseRequestParams extends PromiseRequestParams = PromiseRequestParams> = (response: ClientResponse<GenericPromiseRequestParams>) => MaybePromise<void>;
|
|
7
|
+
export type ResponseTypeHook<GenericPromiseRequestParams extends PromiseRequestParams = PromiseRequestParams> = (response: ClientResponse<GenericPromiseRequestParams>) => MaybePromise<void>;
|
|
8
|
+
export type ExpectedResponseHook<GenericPromiseRequestParams extends PromiseRequestParams = PromiseRequestParams> = (response: ClientResponse<GenericPromiseRequestParams>) => MaybePromise<void>;
|
|
9
|
+
export type CodeHook<GenericPromiseRequestParams extends PromiseRequestParams = PromiseRequestParams> = (response: ClientResponse<GenericPromiseRequestParams>) => MaybePromise<void>;
|
|
10
|
+
export type NotPredictedResponseHook<GenericPromiseRequestParams extends PromiseRequestParams = PromiseRequestParams> = (response: NotPredictedClientResponse<GenericPromiseRequestParams>) => MaybePromise<void>;
|
|
11
|
+
export type ErrorHook<GenericPromiseRequestParams extends PromiseRequestParams = PromiseRequestParams> = (error: unknown, requestParams: GenericPromiseRequestParams) => MaybePromise<void>;
|
|
12
|
+
export interface Hooks {
|
|
13
|
+
request: RequestHook[];
|
|
14
|
+
response: ResponseHook[];
|
|
15
|
+
information: Record<string, InformationHook[]>;
|
|
16
|
+
code: Record<string, CodeHook[]>;
|
|
17
|
+
informationalResponseType: ResponseTypeHook[];
|
|
18
|
+
successfulResponseType: ResponseTypeHook[];
|
|
19
|
+
redirectionResponseType: ResponseTypeHook[];
|
|
20
|
+
clientErrorResponseType: ResponseTypeHook[];
|
|
21
|
+
serverErrorResponseType: ResponseTypeHook[];
|
|
22
|
+
expectedResponse: ExpectedResponseHook[];
|
|
23
|
+
notPredictedResponse: NotPredictedResponseHook[];
|
|
24
|
+
error: ErrorHook[];
|
|
25
|
+
}
|
|
26
|
+
export declare function launchRequestHook(clientHook: readonly RequestHook[], promiseRequestHook: readonly RequestHook[], requestParams: PromiseRequestParams): Promise<PromiseRequestParams>;
|
|
27
|
+
export declare function launchResponseHook(clientHook: readonly ResponseHook[], promiseRequestHook: readonly ResponseHook[], response: ClientResponse): Promise<ClientResponse>;
|
|
28
|
+
export declare function launchInformationHook(clientHook: readonly InformationHook[], promiseRequestHook: readonly InformationHook[], response: ClientResponse): Promise<void>;
|
|
29
|
+
export declare function launchCodeHook(clientHook: readonly CodeHook[], promiseRequestHook: readonly CodeHook[], response: ClientResponse): Promise<void>;
|
|
30
|
+
export declare function launchResponseTypeHook(clientHook: readonly ResponseTypeHook[], promiseRequestHook: readonly ResponseTypeHook[], response: ClientResponse): Promise<void>;
|
|
31
|
+
export declare function launchExpectedResponseHook(clientHook: readonly ResponseTypeHook[], promiseRequestHook: readonly ResponseTypeHook[], response: ClientResponse): Promise<void>;
|
|
32
|
+
export declare function launchNotPredictedHook(clientHook: readonly NotPredictedResponseHook[], promiseRequestHook: readonly NotPredictedResponseHook[], response: NotPredictedClientResponse): Promise<void>;
|
|
33
|
+
export declare function launchErrorHook(clientHook: readonly ErrorHook[], promiseRequestHook: readonly ErrorHook[], error: unknown, requestParams: PromiseRequestParams): Promise<void>;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
async function launchRequestHook(clientHook, promiseRequestHook, requestParams) {
|
|
2
|
+
let resultRequestParams = requestParams;
|
|
3
|
+
for (let index = 0; index < promiseRequestHook.length; index++) {
|
|
4
|
+
resultRequestParams = await promiseRequestHook[index](resultRequestParams);
|
|
5
|
+
}
|
|
6
|
+
for (let index = 0; index < clientHook.length; index++) {
|
|
7
|
+
resultRequestParams = await clientHook[index](resultRequestParams);
|
|
8
|
+
}
|
|
9
|
+
return resultRequestParams;
|
|
10
|
+
}
|
|
11
|
+
async function launchResponseHook(clientHook, promiseRequestHook, response) {
|
|
12
|
+
let resultResponse = response;
|
|
13
|
+
for (let index = 0; index < promiseRequestHook.length; index++) {
|
|
14
|
+
resultResponse = await promiseRequestHook[index](resultResponse);
|
|
15
|
+
}
|
|
16
|
+
for (let index = 0; index < clientHook.length; index++) {
|
|
17
|
+
resultResponse = await clientHook[index](resultResponse);
|
|
18
|
+
}
|
|
19
|
+
return resultResponse;
|
|
20
|
+
}
|
|
21
|
+
async function launchInformationHook(clientHook, promiseRequestHook, response) {
|
|
22
|
+
for (let index = 0; index < promiseRequestHook.length; index++) {
|
|
23
|
+
await promiseRequestHook[index](response);
|
|
24
|
+
}
|
|
25
|
+
for (let index = 0; index < clientHook.length; index++) {
|
|
26
|
+
await clientHook[index](response);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
async function launchCodeHook(clientHook, promiseRequestHook, response) {
|
|
30
|
+
for (let index = 0; index < promiseRequestHook.length; index++) {
|
|
31
|
+
await promiseRequestHook[index](response);
|
|
32
|
+
}
|
|
33
|
+
for (let index = 0; index < clientHook.length; index++) {
|
|
34
|
+
await clientHook[index](response);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
async function launchResponseTypeHook(clientHook, promiseRequestHook, response) {
|
|
38
|
+
for (let index = 0; index < promiseRequestHook.length; index++) {
|
|
39
|
+
await promiseRequestHook[index](response);
|
|
40
|
+
}
|
|
41
|
+
for (let index = 0; index < clientHook.length; index++) {
|
|
42
|
+
await clientHook[index](response);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
async function launchExpectedResponseHook(clientHook, promiseRequestHook, response) {
|
|
46
|
+
for (let index = 0; index < promiseRequestHook.length; index++) {
|
|
47
|
+
await promiseRequestHook[index](response);
|
|
48
|
+
}
|
|
49
|
+
for (let index = 0; index < clientHook.length; index++) {
|
|
50
|
+
await clientHook[index](response);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async function launchNotPredictedHook(clientHook, promiseRequestHook, response) {
|
|
54
|
+
for (let index = 0; index < promiseRequestHook.length; index++) {
|
|
55
|
+
await promiseRequestHook[index](response);
|
|
56
|
+
}
|
|
57
|
+
for (let index = 0; index < clientHook.length; index++) {
|
|
58
|
+
await clientHook[index](response);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
async function launchErrorHook(clientHook, promiseRequestHook, error, requestParams) {
|
|
62
|
+
for (let index = 0; index < promiseRequestHook.length; index++) {
|
|
63
|
+
await promiseRequestHook[index](error, requestParams);
|
|
64
|
+
}
|
|
65
|
+
for (let index = 0; index < clientHook.length; index++) {
|
|
66
|
+
await clientHook[index](error, requestParams);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export { launchCodeHook, launchErrorHook, launchExpectedResponseHook, launchInformationHook, launchNotPredictedHook, launchRequestHook, launchResponseHook, launchResponseTypeHook };
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var OO = require('@duplojs/utils/object');
|
|
4
|
+
var GG = require('@duplojs/utils/generator');
|
|
5
|
+
var kind = require('./kind.cjs');
|
|
6
|
+
var promiseRequest = require('./promiseRequest.cjs');
|
|
7
|
+
|
|
8
|
+
function _interopNamespaceDefault(e) {
|
|
9
|
+
var n = Object.create(null);
|
|
10
|
+
if (e) {
|
|
11
|
+
Object.keys(e).forEach(function (k) {
|
|
12
|
+
if (k !== 'default') {
|
|
13
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
14
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function () { return e[k]; }
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
n.default = e;
|
|
22
|
+
return Object.freeze(n);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
var OO__namespace = /*#__PURE__*/_interopNamespaceDefault(OO);
|
|
26
|
+
var GG__namespace = /*#__PURE__*/_interopNamespaceDefault(GG);
|
|
27
|
+
|
|
28
|
+
const httpClientKind = kind.createClientKind("http-client");
|
|
29
|
+
function createHttpClient(clientParams) {
|
|
30
|
+
const hooks = OO__namespace.override({
|
|
31
|
+
request: [],
|
|
32
|
+
response: [],
|
|
33
|
+
information: {},
|
|
34
|
+
code: {},
|
|
35
|
+
informationalResponseType: [],
|
|
36
|
+
successfulResponseType: [],
|
|
37
|
+
redirectionResponseType: [],
|
|
38
|
+
clientErrorResponseType: [],
|
|
39
|
+
serverErrorResponseType: [],
|
|
40
|
+
expectedResponse: [],
|
|
41
|
+
error: [],
|
|
42
|
+
notPredictedResponse: [],
|
|
43
|
+
}, clientParams.hooks ?? {});
|
|
44
|
+
const config = {
|
|
45
|
+
baseUrl: clientParams.baseUrl,
|
|
46
|
+
disabledPredictedMode: clientParams.disabledPredictedMode ?? false,
|
|
47
|
+
informationHeaderKey: clientParams.informationHeaderKey ?? "information",
|
|
48
|
+
predictedHeaderKey: clientParams.predictedHeaderKey ?? "predicted",
|
|
49
|
+
cache: clientParams.cache,
|
|
50
|
+
credentials: clientParams.credentials,
|
|
51
|
+
};
|
|
52
|
+
const defaultHeaders = new Map();
|
|
53
|
+
const self = httpClientKind.setTo({
|
|
54
|
+
config,
|
|
55
|
+
hooks,
|
|
56
|
+
defaultHeaders,
|
|
57
|
+
addDefaultHeader(headerName, headerValue) {
|
|
58
|
+
defaultHeaders.set(headerName, typeof headerValue === "function"
|
|
59
|
+
? headerValue
|
|
60
|
+
: () => headerValue);
|
|
61
|
+
},
|
|
62
|
+
addDefaultHeaders(headers) {
|
|
63
|
+
for (const [header, headerValue] of OO__namespace.entries(headers)) {
|
|
64
|
+
self.addDefaultHeader(header, headerValue);
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
addRequestHook(hook) {
|
|
68
|
+
hooks.request.push(hook);
|
|
69
|
+
},
|
|
70
|
+
addResponseHook(hook) {
|
|
71
|
+
hooks.response.push(hook);
|
|
72
|
+
},
|
|
73
|
+
addInformationHook(information, hook) {
|
|
74
|
+
hooks.information[information] ??= [];
|
|
75
|
+
hooks.information[information].push(hook);
|
|
76
|
+
},
|
|
77
|
+
addCodeHook(code, hook) {
|
|
78
|
+
hooks.code[code] ??= [];
|
|
79
|
+
hooks.code[code].push(hook);
|
|
80
|
+
},
|
|
81
|
+
addInformationalResponseTypeHook(hook) {
|
|
82
|
+
hooks.informationalResponseType.push(hook);
|
|
83
|
+
},
|
|
84
|
+
addSuccessfulResponseTypeHook(hook) {
|
|
85
|
+
hooks.successfulResponseType.push(hook);
|
|
86
|
+
},
|
|
87
|
+
addRedirectionResponseTypeHook(hook) {
|
|
88
|
+
hooks.redirectionResponseType.push(hook);
|
|
89
|
+
},
|
|
90
|
+
addClientErrorResponseTypeHook(hook) {
|
|
91
|
+
hooks.clientErrorResponseType.push(hook);
|
|
92
|
+
},
|
|
93
|
+
addServerErrorResponseTypeHook(hook) {
|
|
94
|
+
hooks.serverErrorResponseType.push(hook);
|
|
95
|
+
},
|
|
96
|
+
addExpectedResponseHook(hook) {
|
|
97
|
+
hooks.expectedResponse.push(hook);
|
|
98
|
+
},
|
|
99
|
+
addNotPredictedResponseHook(hook) {
|
|
100
|
+
hooks.notPredictedResponse.push(hook);
|
|
101
|
+
},
|
|
102
|
+
addErrorHook(hook) {
|
|
103
|
+
hooks.error.push(hook);
|
|
104
|
+
},
|
|
105
|
+
request(params) {
|
|
106
|
+
const headers = GG__namespace.reduce(defaultHeaders.entries(), GG__namespace.reduceFrom({}), ({ element, lastValue, next }) => {
|
|
107
|
+
lastValue[element[0]] = `${element[1]()}`;
|
|
108
|
+
return next(lastValue);
|
|
109
|
+
});
|
|
110
|
+
return new promiseRequest.PromiseRequest({
|
|
111
|
+
hooks,
|
|
112
|
+
baseUrl: config.baseUrl,
|
|
113
|
+
...params,
|
|
114
|
+
headers: {
|
|
115
|
+
...params.headers,
|
|
116
|
+
...headers,
|
|
117
|
+
},
|
|
118
|
+
initParams: {
|
|
119
|
+
...params.initParams,
|
|
120
|
+
credentials: params.initParams?.credentials ?? clientParams.credentials,
|
|
121
|
+
cache: params.initParams?.cache ?? clientParams.cache,
|
|
122
|
+
},
|
|
123
|
+
predictedHeaderKey: config.predictedHeaderKey,
|
|
124
|
+
informationHeaderKey: config.informationHeaderKey,
|
|
125
|
+
disabledPredicateMode: config.disabledPredictedMode,
|
|
126
|
+
});
|
|
127
|
+
},
|
|
128
|
+
get: ((path, params) => self.request({
|
|
129
|
+
method: "GET",
|
|
130
|
+
path,
|
|
131
|
+
...params,
|
|
132
|
+
})),
|
|
133
|
+
post: ((path, params) => self.request({
|
|
134
|
+
method: "POST",
|
|
135
|
+
path,
|
|
136
|
+
...params,
|
|
137
|
+
})),
|
|
138
|
+
put: ((path, params) => self.request({
|
|
139
|
+
method: "PUT",
|
|
140
|
+
path,
|
|
141
|
+
...params,
|
|
142
|
+
})),
|
|
143
|
+
delete: ((path, params) => self.request({
|
|
144
|
+
method: "DELETE",
|
|
145
|
+
path,
|
|
146
|
+
...params,
|
|
147
|
+
})),
|
|
148
|
+
});
|
|
149
|
+
return self;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
exports.createHttpClient = createHttpClient;
|
|
153
|
+
exports.httpClientKind = httpClientKind;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { type Kind, type MayBeGetter, type NeverCoalescing, type SimplifyTopLevel } from "@duplojs/utils";
|
|
2
|
+
import { type ClientRequestInitParams, type ServerRoute, type ServerRouteToClientRequestParams, type ServerRouteToClientResponse, type ClientRequestParams } from "./types";
|
|
3
|
+
import { PromiseRequest, type PromiseRequestParams } from "./promiseRequest";
|
|
4
|
+
import { type Hooks, type RequestHook, type ResponseHook, type InformationHook, type CodeHook, type ResponseTypeHook, type ExpectedResponseHook, type ErrorHook, type NotPredictedResponseHook } from "./hooks";
|
|
5
|
+
export declare const httpClientKind: import("@duplojs/utils").KindHandler<import("@duplojs/utils").KindDefinition<"@DuplojsHttpClient/http-client", unknown>>;
|
|
6
|
+
type MaybeRequestParams<GenericRequestParams extends object> = {} extends GenericRequestParams ? [params?: GenericRequestParams] : [params: GenericRequestParams];
|
|
7
|
+
type HttpClientRequestMethod<GenericServerRoute extends ServerRoute, GenericHookParams extends Record<string, unknown>, GenericMethod extends string> = <GenericClientRequestParams extends NeverCoalescing<ServerRouteToClientRequestParams<Extract<GenericServerRoute, {
|
|
8
|
+
method: GenericMethod;
|
|
9
|
+
}>, GenericHookParams>, ClientRequestParams<GenericHookParams>>, GenericPath extends GenericClientRequestParams["path"], GenericClientRequestRest extends SimplifyTopLevel<Omit<NeverCoalescing<Extract<GenericClientRequestParams, {
|
|
10
|
+
path: GenericPath;
|
|
11
|
+
}>, ClientRequestParams<GenericHookParams>>, "method" | "path">>>(path: GenericPath, ...args: MaybeRequestParams<GenericClientRequestRest>) => PromiseRequest<PromiseRequestParams<GenericHookParams>, ServerRouteToClientResponse<NeverCoalescing<Extract<GenericServerRoute, {
|
|
12
|
+
method: GenericMethod;
|
|
13
|
+
path: GenericPath;
|
|
14
|
+
}>, ServerRoute>, GenericHookParams>>;
|
|
15
|
+
export interface HttpClientConfig {
|
|
16
|
+
readonly baseUrl: string;
|
|
17
|
+
readonly informationHeaderKey: string;
|
|
18
|
+
readonly predictedHeaderKey: string;
|
|
19
|
+
readonly disabledPredictedMode: boolean;
|
|
20
|
+
readonly credentials?: ClientRequestInitParams["credentials"];
|
|
21
|
+
readonly cache?: ClientRequestInitParams["cache"];
|
|
22
|
+
}
|
|
23
|
+
export interface HttpClient<GenericServerRoute extends ServerRoute = ServerRoute, GenericHookParams extends Record<string, unknown> = Record<string, unknown>> extends Kind<typeof httpClientKind.definition> {
|
|
24
|
+
readonly config: HttpClientConfig;
|
|
25
|
+
readonly hooks: Hooks;
|
|
26
|
+
readonly defaultHeaders: Map<string, () => (string | undefined | null)>;
|
|
27
|
+
addDefaultHeader(headerName: string, headerValue: MayBeGetter<string | undefined | null>): void;
|
|
28
|
+
addDefaultHeaders(headers: Record<string, MayBeGetter<string | undefined | null>>): void;
|
|
29
|
+
addRequestHook(hook: RequestHook<PromiseRequestParams<GenericHookParams>>): void;
|
|
30
|
+
addResponseHook(hook: ResponseHook<PromiseRequestParams<GenericHookParams>>): void;
|
|
31
|
+
addInformationHook(information: string, hook: InformationHook<PromiseRequestParams<GenericHookParams>>): void;
|
|
32
|
+
addCodeHook(code: string, hook: CodeHook<PromiseRequestParams<GenericHookParams>>): void;
|
|
33
|
+
addInformationalResponseTypeHook(hook: ResponseTypeHook<PromiseRequestParams<GenericHookParams>>): void;
|
|
34
|
+
addSuccessfulResponseTypeHook(hook: ResponseTypeHook<PromiseRequestParams<GenericHookParams>>): void;
|
|
35
|
+
addRedirectionResponseTypeHook(hook: ResponseTypeHook<PromiseRequestParams<GenericHookParams>>): void;
|
|
36
|
+
addClientErrorResponseTypeHook(hook: ResponseTypeHook<PromiseRequestParams<GenericHookParams>>): void;
|
|
37
|
+
addServerErrorResponseTypeHook(hook: ResponseTypeHook<PromiseRequestParams<GenericHookParams>>): void;
|
|
38
|
+
addExpectedResponseHook(hook: ExpectedResponseHook<PromiseRequestParams<GenericHookParams>>): void;
|
|
39
|
+
addNotPredictedResponseHook(hook: NotPredictedResponseHook<PromiseRequestParams<GenericHookParams>>): void;
|
|
40
|
+
addErrorHook(hook: ErrorHook<PromiseRequestParams<GenericHookParams>>): void;
|
|
41
|
+
request<GenericClientRequestParams extends ServerRouteToClientRequestParams<GenericServerRoute, GenericHookParams>>(params: GenericClientRequestParams): PromiseRequest<PromiseRequestParams<GenericHookParams>, ServerRouteToClientResponse<Extract<GenericServerRoute, {
|
|
42
|
+
method: GenericClientRequestParams["method"];
|
|
43
|
+
path: GenericClientRequestParams["path"];
|
|
44
|
+
}>, GenericHookParams>>;
|
|
45
|
+
get: HttpClientRequestMethod<GenericServerRoute, GenericHookParams, "GET">;
|
|
46
|
+
post: HttpClientRequestMethod<GenericServerRoute, GenericHookParams, "POST">;
|
|
47
|
+
put: HttpClientRequestMethod<GenericServerRoute, GenericHookParams, "PUT">;
|
|
48
|
+
delete: HttpClientRequestMethod<GenericServerRoute, GenericHookParams, "DELETE">;
|
|
49
|
+
}
|
|
50
|
+
export interface CreateHttpClientParams {
|
|
51
|
+
readonly baseUrl: string;
|
|
52
|
+
readonly hooks?: Partial<Hooks>;
|
|
53
|
+
readonly credentials?: ClientRequestInitParams["credentials"];
|
|
54
|
+
readonly cache?: ClientRequestInitParams["cache"];
|
|
55
|
+
readonly informationHeaderKey?: string;
|
|
56
|
+
readonly predictedHeaderKey?: string;
|
|
57
|
+
readonly disabledPredictedMode?: boolean;
|
|
58
|
+
}
|
|
59
|
+
export declare function createHttpClient<GenericServerRoute extends ServerRoute = never, GenericHookParams extends Record<string, unknown> = Record<string, unknown>>(clientParams: CreateHttpClientParams): HttpClient<NeverCoalescing<GenericServerRoute, ServerRoute>, GenericHookParams>;
|
|
60
|
+
export {};
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import * as OO from '@duplojs/utils/object';
|
|
2
|
+
import * as GG from '@duplojs/utils/generator';
|
|
3
|
+
import { createClientKind } from './kind.mjs';
|
|
4
|
+
import { PromiseRequest } from './promiseRequest.mjs';
|
|
5
|
+
|
|
6
|
+
const httpClientKind = createClientKind("http-client");
|
|
7
|
+
function createHttpClient(clientParams) {
|
|
8
|
+
const hooks = OO.override({
|
|
9
|
+
request: [],
|
|
10
|
+
response: [],
|
|
11
|
+
information: {},
|
|
12
|
+
code: {},
|
|
13
|
+
informationalResponseType: [],
|
|
14
|
+
successfulResponseType: [],
|
|
15
|
+
redirectionResponseType: [],
|
|
16
|
+
clientErrorResponseType: [],
|
|
17
|
+
serverErrorResponseType: [],
|
|
18
|
+
expectedResponse: [],
|
|
19
|
+
error: [],
|
|
20
|
+
notPredictedResponse: [],
|
|
21
|
+
}, clientParams.hooks ?? {});
|
|
22
|
+
const config = {
|
|
23
|
+
baseUrl: clientParams.baseUrl,
|
|
24
|
+
disabledPredictedMode: clientParams.disabledPredictedMode ?? false,
|
|
25
|
+
informationHeaderKey: clientParams.informationHeaderKey ?? "information",
|
|
26
|
+
predictedHeaderKey: clientParams.predictedHeaderKey ?? "predicted",
|
|
27
|
+
cache: clientParams.cache,
|
|
28
|
+
credentials: clientParams.credentials,
|
|
29
|
+
};
|
|
30
|
+
const defaultHeaders = new Map();
|
|
31
|
+
const self = httpClientKind.setTo({
|
|
32
|
+
config,
|
|
33
|
+
hooks,
|
|
34
|
+
defaultHeaders,
|
|
35
|
+
addDefaultHeader(headerName, headerValue) {
|
|
36
|
+
defaultHeaders.set(headerName, typeof headerValue === "function"
|
|
37
|
+
? headerValue
|
|
38
|
+
: () => headerValue);
|
|
39
|
+
},
|
|
40
|
+
addDefaultHeaders(headers) {
|
|
41
|
+
for (const [header, headerValue] of OO.entries(headers)) {
|
|
42
|
+
self.addDefaultHeader(header, headerValue);
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
addRequestHook(hook) {
|
|
46
|
+
hooks.request.push(hook);
|
|
47
|
+
},
|
|
48
|
+
addResponseHook(hook) {
|
|
49
|
+
hooks.response.push(hook);
|
|
50
|
+
},
|
|
51
|
+
addInformationHook(information, hook) {
|
|
52
|
+
hooks.information[information] ??= [];
|
|
53
|
+
hooks.information[information].push(hook);
|
|
54
|
+
},
|
|
55
|
+
addCodeHook(code, hook) {
|
|
56
|
+
hooks.code[code] ??= [];
|
|
57
|
+
hooks.code[code].push(hook);
|
|
58
|
+
},
|
|
59
|
+
addInformationalResponseTypeHook(hook) {
|
|
60
|
+
hooks.informationalResponseType.push(hook);
|
|
61
|
+
},
|
|
62
|
+
addSuccessfulResponseTypeHook(hook) {
|
|
63
|
+
hooks.successfulResponseType.push(hook);
|
|
64
|
+
},
|
|
65
|
+
addRedirectionResponseTypeHook(hook) {
|
|
66
|
+
hooks.redirectionResponseType.push(hook);
|
|
67
|
+
},
|
|
68
|
+
addClientErrorResponseTypeHook(hook) {
|
|
69
|
+
hooks.clientErrorResponseType.push(hook);
|
|
70
|
+
},
|
|
71
|
+
addServerErrorResponseTypeHook(hook) {
|
|
72
|
+
hooks.serverErrorResponseType.push(hook);
|
|
73
|
+
},
|
|
74
|
+
addExpectedResponseHook(hook) {
|
|
75
|
+
hooks.expectedResponse.push(hook);
|
|
76
|
+
},
|
|
77
|
+
addNotPredictedResponseHook(hook) {
|
|
78
|
+
hooks.notPredictedResponse.push(hook);
|
|
79
|
+
},
|
|
80
|
+
addErrorHook(hook) {
|
|
81
|
+
hooks.error.push(hook);
|
|
82
|
+
},
|
|
83
|
+
request(params) {
|
|
84
|
+
const headers = GG.reduce(defaultHeaders.entries(), GG.reduceFrom({}), ({ element, lastValue, next }) => {
|
|
85
|
+
lastValue[element[0]] = `${element[1]()}`;
|
|
86
|
+
return next(lastValue);
|
|
87
|
+
});
|
|
88
|
+
return new PromiseRequest({
|
|
89
|
+
hooks,
|
|
90
|
+
baseUrl: config.baseUrl,
|
|
91
|
+
...params,
|
|
92
|
+
headers: {
|
|
93
|
+
...params.headers,
|
|
94
|
+
...headers,
|
|
95
|
+
},
|
|
96
|
+
initParams: {
|
|
97
|
+
...params.initParams,
|
|
98
|
+
credentials: params.initParams?.credentials ?? clientParams.credentials,
|
|
99
|
+
cache: params.initParams?.cache ?? clientParams.cache,
|
|
100
|
+
},
|
|
101
|
+
predictedHeaderKey: config.predictedHeaderKey,
|
|
102
|
+
informationHeaderKey: config.informationHeaderKey,
|
|
103
|
+
disabledPredicateMode: config.disabledPredictedMode,
|
|
104
|
+
});
|
|
105
|
+
},
|
|
106
|
+
get: ((path, params) => self.request({
|
|
107
|
+
method: "GET",
|
|
108
|
+
path,
|
|
109
|
+
...params,
|
|
110
|
+
})),
|
|
111
|
+
post: ((path, params) => self.request({
|
|
112
|
+
method: "POST",
|
|
113
|
+
path,
|
|
114
|
+
...params,
|
|
115
|
+
})),
|
|
116
|
+
put: ((path, params) => self.request({
|
|
117
|
+
method: "PUT",
|
|
118
|
+
path,
|
|
119
|
+
...params,
|
|
120
|
+
})),
|
|
121
|
+
delete: ((path, params) => self.request({
|
|
122
|
+
method: "DELETE",
|
|
123
|
+
path,
|
|
124
|
+
...params,
|
|
125
|
+
})),
|
|
126
|
+
});
|
|
127
|
+
return self;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export { createHttpClient, httpClientKind };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
require('./types/index.cjs');
|
|
4
|
+
var kind = require('./kind.cjs');
|
|
5
|
+
var httpClient = require('./httpClient.cjs');
|
|
6
|
+
var hooks = require('./hooks.cjs');
|
|
7
|
+
var getBody = require('./getBody.cjs');
|
|
8
|
+
var insertParamsInPath = require('./insertParamsInPath.cjs');
|
|
9
|
+
var queryToString = require('./queryToString.cjs');
|
|
10
|
+
var promiseRequest = require('./promiseRequest.cjs');
|
|
11
|
+
var unexpectedResponseError = require('./unexpectedResponseError.cjs');
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
exports.createClientKind = kind.createClientKind;
|
|
16
|
+
exports.createHttpClient = httpClient.createHttpClient;
|
|
17
|
+
exports.httpClientKind = httpClient.httpClientKind;
|
|
18
|
+
exports.launchCodeHook = hooks.launchCodeHook;
|
|
19
|
+
exports.launchErrorHook = hooks.launchErrorHook;
|
|
20
|
+
exports.launchExpectedResponseHook = hooks.launchExpectedResponseHook;
|
|
21
|
+
exports.launchInformationHook = hooks.launchInformationHook;
|
|
22
|
+
exports.launchNotPredictedHook = hooks.launchNotPredictedHook;
|
|
23
|
+
exports.launchRequestHook = hooks.launchRequestHook;
|
|
24
|
+
exports.launchResponseHook = hooks.launchResponseHook;
|
|
25
|
+
exports.launchResponseTypeHook = hooks.launchResponseTypeHook;
|
|
26
|
+
exports.getBody = getBody.getBody;
|
|
27
|
+
exports.insertParamsInPath = insertParamsInPath.insertParamsInPath;
|
|
28
|
+
exports.queryToString = queryToString.queryToString;
|
|
29
|
+
exports.PromiseRequest = promiseRequest.PromiseRequest;
|
|
30
|
+
exports.UnexpectedCodeResponseError = unexpectedResponseError.UnexpectedCodeResponseError;
|
|
31
|
+
exports.UnexpectedInformationResponseError = unexpectedResponseError.UnexpectedInformationResponseError;
|
|
32
|
+
exports.UnexpectedResponseError = unexpectedResponseError.UnexpectedResponseError;
|
|
33
|
+
exports.UnexpectedResponseTypeError = unexpectedResponseError.UnexpectedResponseTypeError;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from "./types";
|
|
2
|
+
export * from "./kind";
|
|
3
|
+
export * from "./httpClient";
|
|
4
|
+
export * from "./hooks";
|
|
5
|
+
export * from "./getBody";
|
|
6
|
+
export * from "./insertParamsInPath";
|
|
7
|
+
export * from "./queryToString";
|
|
8
|
+
export * from "./promiseRequest";
|
|
9
|
+
export * from "./unexpectedResponseError";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import './types/index.mjs';
|
|
2
|
+
export { createClientKind } from './kind.mjs';
|
|
3
|
+
export { createHttpClient, httpClientKind } from './httpClient.mjs';
|
|
4
|
+
export { launchCodeHook, launchErrorHook, launchExpectedResponseHook, launchInformationHook, launchNotPredictedHook, launchRequestHook, launchResponseHook, launchResponseTypeHook } from './hooks.mjs';
|
|
5
|
+
export { getBody } from './getBody.mjs';
|
|
6
|
+
export { insertParamsInPath } from './insertParamsInPath.mjs';
|
|
7
|
+
export { queryToString } from './queryToString.mjs';
|
|
8
|
+
export { PromiseRequest } from './promiseRequest.mjs';
|
|
9
|
+
export { UnexpectedCodeResponseError, UnexpectedInformationResponseError, UnexpectedResponseError, UnexpectedResponseTypeError } from './unexpectedResponseError.mjs';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
function insertParamsInPath(path, params) {
|
|
4
|
+
if (!params) {
|
|
5
|
+
return path;
|
|
6
|
+
}
|
|
7
|
+
return Object.entries(params).reduce((pv, [key, value]) => value
|
|
8
|
+
? pv.replace(`{${key}}`, value.toString())
|
|
9
|
+
: pv, path);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
exports.insertParamsInPath = insertParamsInPath;
|