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;