Minor cleanup.

This commit is contained in:
Dermot Duffy
2023-01-24 19:36:54 -08:00
parent 04d3ca3f46
commit 6ca7ef85ec
+12 -14
View File
@@ -311,16 +311,17 @@ export class FrigateCameraManagerEngine implements CameraManagerEngine {
): Promise<RecordingQueryResultsMap | null> { ): Promise<RecordingQueryResultsMap | null> {
const output: RecordingQueryResultsMap = new Map(); const output: RecordingQueryResultsMap = new Map();
const processQuery = async (query: RecordingQuery): Promise<void> => { const processQuery = async (
baseQuery: RecordingQuery,
cameraID: string,
): Promise<void> => {
const query = { ...baseQuery, cameraIDs: new Set([cameraID]) };
const cachedResult = this._requestCache.get(query); const cachedResult = this._requestCache.get(query);
if (cachedResult) { if (cachedResult) {
output.set(query, cachedResult as RecordingQueryResults); output.set(query, cachedResult as RecordingQueryResults);
return; 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); const cameraConfig = this._getQueryableCameraConfig(cameras, cameraID);
if (!cameraConfig || !cameraConfig.frigate.camera_name) { if (!cameraConfig || !cameraConfig.frigate.camera_name) {
return; return;
@@ -380,9 +381,7 @@ export class FrigateCameraManagerEngine implements CameraManagerEngine {
// Frigate recordings can only be queried for a single camera, so fan out // Frigate recordings can only be queried for a single camera, so fan out
// the inbound query into multiple outbound queries. // the inbound query into multiple outbound queries.
await Promise.all( await Promise.all(
Array.from(query.cameraIDs).map((cameraID) => Array.from(query.cameraIDs).map((cameraID) => processQuery(query, cameraID)),
processQuery({ ...query, cameraIDs: new Set([cameraID]) }),
),
); );
return output.size ? output : null; return output.size ? output : null;
} }
@@ -394,10 +393,11 @@ export class FrigateCameraManagerEngine implements CameraManagerEngine {
): Promise<RecordingSegmentsQueryResultsMap | null> { ): Promise<RecordingSegmentsQueryResultsMap | null> {
const output: RecordingSegmentsQueryResultsMap = new Map(); const output: RecordingSegmentsQueryResultsMap = new Map();
const processQuery = async (query: RecordingSegmentsQuery): Promise<void> => { const processQuery = async (
// There will only ever be a single cameraID specified for queries in this baseQuery: RecordingSegmentsQuery,
// inner function. cameraID: string,
const cameraID = [...query.cameraIDs][0]; ): Promise<void> => {
const query = { ...baseQuery, cameraIDs: new Set([cameraID]) };
const cameraConfig = this._getQueryableCameraConfig(cameras, cameraID); const cameraConfig = this._getQueryableCameraConfig(cameras, cameraID);
if (!cameraConfig || !cameraConfig.frigate.camera_name) { if (!cameraConfig || !cameraConfig.frigate.camera_name) {
return; return;
@@ -446,9 +446,7 @@ export class FrigateCameraManagerEngine implements CameraManagerEngine {
// Frigate recording segments can only be queried for a single camera, so // Frigate recording segments can only be queried for a single camera, so
// fan out the inbound query into multiple outbound queries. // fan out the inbound query into multiple outbound queries.
await Promise.all( await Promise.all(
Array.from(query.cameraIDs).map((cameraID) => Array.from(query.cameraIDs).map((cameraID) => processQuery(query, cameraID)),
processQuery({ ...query, cameraIDs: new Set([cameraID]) }),
),
); );
runWhenIdleIfSupported(() => this._throttledSegmentGarbageCollector(hass, cameras)); runWhenIdleIfSupported(() => this._throttledSegmentGarbageCollector(hass, cameras));