From 6ca7ef85ec12bd983e9f2170587b2180097b4c18 Mon Sep 17 00:00:00 2001 From: Dermot Duffy Date: Mon, 23 Jan 2023 21:49:18 -0800 Subject: [PATCH] Minor cleanup. --- src/camera/frigate/engine-frigate.ts | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/src/camera/frigate/engine-frigate.ts b/src/camera/frigate/engine-frigate.ts index c2acf1b9..9446c135 100644 --- a/src/camera/frigate/engine-frigate.ts +++ b/src/camera/frigate/engine-frigate.ts @@ -311,16 +311,17 @@ export class FrigateCameraManagerEngine implements CameraManagerEngine { ): Promise { const output: RecordingQueryResultsMap = new Map(); - const processQuery = async (query: RecordingQuery): Promise => { + const processQuery = async ( + baseQuery: RecordingQuery, + cameraID: string, + ): Promise => { + const query = { ...baseQuery, cameraIDs: new Set([cameraID]) }; const cachedResult = this._requestCache.get(query); if (cachedResult) { output.set(query, cachedResult as RecordingQueryResults); return; } - // There will only ever be a single cameraID specified for queries in this - // inner function. - const cameraID = [...query.cameraIDs][0]; const cameraConfig = this._getQueryableCameraConfig(cameras, cameraID); if (!cameraConfig || !cameraConfig.frigate.camera_name) { return; @@ -380,9 +381,7 @@ export class FrigateCameraManagerEngine implements CameraManagerEngine { // Frigate recordings can only be queried for a single camera, so fan out // the inbound query into multiple outbound queries. await Promise.all( - Array.from(query.cameraIDs).map((cameraID) => - processQuery({ ...query, cameraIDs: new Set([cameraID]) }), - ), + Array.from(query.cameraIDs).map((cameraID) => processQuery(query, cameraID)), ); return output.size ? output : null; } @@ -394,10 +393,11 @@ export class FrigateCameraManagerEngine implements CameraManagerEngine { ): Promise { const output: RecordingSegmentsQueryResultsMap = new Map(); - const processQuery = async (query: RecordingSegmentsQuery): Promise => { - // There will only ever be a single cameraID specified for queries in this - // inner function. - const cameraID = [...query.cameraIDs][0]; + const processQuery = async ( + baseQuery: RecordingSegmentsQuery, + cameraID: string, + ): Promise => { + const query = { ...baseQuery, cameraIDs: new Set([cameraID]) }; const cameraConfig = this._getQueryableCameraConfig(cameras, cameraID); if (!cameraConfig || !cameraConfig.frigate.camera_name) { return; @@ -446,9 +446,7 @@ export class FrigateCameraManagerEngine implements CameraManagerEngine { // Frigate recording segments can only be queried for a single camera, so // fan out the inbound query into multiple outbound queries. await Promise.all( - Array.from(query.cameraIDs).map((cameraID) => - processQuery({ ...query, cameraIDs: new Set([cameraID]) }), - ), + Array.from(query.cameraIDs).map((cameraID) => processQuery(query, cameraID)), ); runWhenIdleIfSupported(() => this._throttledSegmentGarbageCollector(hass, cameras));