24 lines
693 B
TypeScript
24 lines
693 B
TypeScript
import type { RoomsAvailability } from "@/types/trpc/routers/hotel/roomAvailability"
|
|
|
|
export function combineRoomAvailabilities({
|
|
availabilityResults,
|
|
}: {
|
|
availabilityResults: Array<[RoomsAvailability | undefined | null, unknown]>
|
|
}): RoomsAvailability | null {
|
|
return availabilityResults.reduce<RoomsAvailability | null>(
|
|
(combinedResult, [currentResult, error]) => {
|
|
if (error || !currentResult) return combinedResult
|
|
if (!combinedResult) return currentResult
|
|
|
|
return {
|
|
...currentResult,
|
|
roomConfigurations: [
|
|
...combinedResult.roomConfigurations,
|
|
...currentResult.roomConfigurations,
|
|
],
|
|
}
|
|
},
|
|
null
|
|
)
|
|
}
|