Files
advanced-camera-card/src/camera-manager/entity-camera.ts
T

24 lines
855 B
TypeScript

import type { HomeAssistant } from '../ha/types';
import { Camera, type CameraInitializationOptions } from './camera';
import { CameraNoEntityError } from './error';
/**
* Camera variant that requires a `camera_entity` to be present in the HA
* entity registry. Base `Camera` resolves `_entity` opportunistically; this
* subclass turns absence into an error for engines that cannot function
* without it (motionEye, Reolink, TPLink).
*/
export class EntityCamera<
Options extends CameraInitializationOptions = CameraInitializationOptions,
> extends Camera<Options> {
protected override async _initializeBeforeCapabilities(
hass: HomeAssistant,
options: Options,
): Promise<void> {
if (!this._entity) {
throw new CameraNoEntityError(this.getConfig());
}
await super._initializeBeforeCapabilities(hass, options);
}
}