UNPKG

matterbridge-roborock-vacuum-plugin

Version:
44 lines 1.58 kB
import { MapInfo } from '../../../core/application/models/index.js'; export const HomeModelMapper = { toRoomMapping(dto, rooms) { const room = rooms.find((r) => r.id === dto.id || String(r.id) === dto.iot_name_id); return { id: dto.id, iot_name_id: dto.iot_name_id, tag: dto.tag, iot_map_id: dto.iot_map_id ?? 0, iot_name: room?.name ?? dto.iot_name ?? `Room ${dto.id}`, }; }, rawArrayToMapRoomDto(raw, activeMap) { return { id: raw[0], iot_name_id: raw[1], tag: raw[2] ?? 0, iot_map_id: activeMap, }; }, rawRoomDataToRoomMappings(rawData, mapId, mapInfo, rooms) { return rawData .map((entry) => this.rawArrayToMapRoomDto(entry, mapId)) .map((dto) => this.enrichMapRoomDtoFromMapInfo(dto, mapInfo)) .map((dto) => this.toRoomMapping(dto, rooms)); }, enrichMapRoomDtoFromMapInfo(dto, mapInfo) { if (dto.iot_name) { return dto; } const { allRooms } = mapInfo; const cached = allRooms.find((room) => room.id === dto.id && room.iot_name_id === dto.iot_name_id) ?? allRooms.find((room) => room.id === dto.id) ?? allRooms.find((room) => room.iot_name_id === dto.iot_name_id); if (cached?.iot_name) { return { ...dto, iot_name: cached.iot_name }; } return dto; }, toMapInfo(dto) { return new MapInfo(dto); }, }; //# sourceMappingURL=mappers.js.map