From c18e3c15f1940338b6872343f6b20dba6346f84b Mon Sep 17 00:00:00 2001 From: Karl-Philipp Wulfert Date: Fri, 28 Jun 2019 12:36:52 +0200 Subject: [PATCH] feat: add mapping type from response to request and vice versa Fixes #80 --- src/protocol/route.ts | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/protocol/route.ts b/src/protocol/route.ts index 35f30da5..80b7e475 100644 --- a/src/protocol/route.ts +++ b/src/protocol/route.ts @@ -174,3 +174,33 @@ export type SCResponses = | SCMultiSearchResponse | SCSearchResponse | SCThingUpdateResponse; + +/** + * Associated response for a request + */ +export type SCAssociatedResponse = + REQUEST extends SCBookAvailabilityRequest ? SCBookAvailabilityResponse : + REQUEST extends SCBulkRequest ? SCBulkResponse : + REQUEST extends SCBulkAddRequest ? SCBulkAddResponse : + REQUEST extends SCBulkDoneRequest ? SCBulkDoneResponse : + REQUEST extends SCFeedbackRequest ? SCFeedbackResponse : + REQUEST extends SCIndexRequest ? SCIndexResponse : + REQUEST extends SCMultiSearchRequest ? SCMultiSearchResponse : + REQUEST extends SCSearchRequest ? SCSearchResponse : + REQUEST extends SCThingUpdateRequest ? SCThingUpdateResponse : + never; + +/** + * Associated request for a response + */ +export type SCAssociatedRequest = + RESPONSE extends SCBookAvailabilityResponse ? SCBookAvailabilityRequest : + RESPONSE extends SCBulkResponse ? SCBulkRequest : + RESPONSE extends SCBulkAddResponse ? SCBulkAddRequest : + RESPONSE extends SCBulkDoneResponse ? SCBulkDoneRequest : + RESPONSE extends SCFeedbackResponse ? SCFeedbackRequest : + RESPONSE extends SCIndexResponse ? SCIndexRequest : + RESPONSE extends SCMultiSearchResponse ? SCMultiSearchRequest : + RESPONSE extends SCSearchResponse ? SCSearchRequest : + RESPONSE extends SCThingUpdateResponse ? SCThingUpdateRequest : + never;