Avoid use of ExtendedHomeAssistant wherever possible.

This commit is contained in:
Dermot Duffy
2022-04-18 18:04:51 -07:00
parent b27dea67b1
commit 22c2b022e7
13 changed files with 35 additions and 34 deletions
+4 -4
View File
@@ -67,7 +67,7 @@ export class BrowseMediaUtil {
* @returns A FrigateBrowseMediaSource object or null on malformed. * @returns A FrigateBrowseMediaSource object or null on malformed.
*/ */
static async browseMedia( static async browseMedia(
hass: HomeAssistant & ExtendedHomeAssistant, hass: HomeAssistant,
media_content_id: string, media_content_id: string,
): Promise<FrigateBrowseMediaSource> { ): Promise<FrigateBrowseMediaSource> {
const request = { const request = {
@@ -86,7 +86,7 @@ export class BrowseMediaUtil {
* @returns A FrigateBrowseMediaSource object or null on malformed. * @returns A FrigateBrowseMediaSource object or null on malformed.
*/ */
static async browseMediaQuery( static async browseMediaQuery(
hass: HomeAssistant & ExtendedHomeAssistant, hass: HomeAssistant,
params: BrowseMediaQueryParameters, params: BrowseMediaQueryParameters,
): Promise<FrigateBrowseMediaSource> { ): Promise<FrigateBrowseMediaSource> {
return this.browseMedia( return this.browseMedia(
@@ -183,7 +183,7 @@ export class BrowseMediaUtil {
*/ */
static async fetchLatestMediaAndDispatchViewChange( static async fetchLatestMediaAndDispatchViewChange(
node: HTMLElement, node: HTMLElement,
hass: HomeAssistant & ExtendedHomeAssistant, hass: HomeAssistant,
view: Readonly<View>, view: Readonly<View>,
browseMediaQueryParameters: BrowseMediaQueryParameters, browseMediaQueryParameters: BrowseMediaQueryParameters,
): Promise<void> { ): Promise<void> {
@@ -225,7 +225,7 @@ export class BrowseMediaUtil {
*/ */
static async fetchChildMediaAndDispatchViewChange( static async fetchChildMediaAndDispatchViewChange(
node: HTMLElement, node: HTMLElement,
hass: HomeAssistant & ExtendedHomeAssistant, hass: HomeAssistant,
view: Readonly<View>, view: Readonly<View>,
child: Readonly<FrigateBrowseMediaSource>, child: Readonly<FrigateBrowseMediaSource>,
): Promise<void> { ): Promise<void> {
+2 -2
View File
@@ -132,7 +132,7 @@ console.info(
@customElement('frigate-card') @customElement('frigate-card')
export class FrigateCard extends LitElement { export class FrigateCard extends LitElement {
@property({ attribute: false }) @property({ attribute: false })
protected _hass?: HomeAssistant & ExtendedHomeAssistant; protected _hass?: ExtendedHomeAssistant;
// The main base configuration object. For most usecases use getConfig() to // The main base configuration object. For most usecases use getConfig() to
// get the correct configuration (which will return overrides as appropriate). // get the correct configuration (which will return overrides as appropriate).
@@ -188,7 +188,7 @@ export class FrigateCard extends LitElement {
/** /**
* Set the Home Assistant object. * Set the Home Assistant object.
*/ */
set hass(hass: HomeAssistant & ExtendedHomeAssistant) { set hass(hass: ExtendedHomeAssistant) {
this._hass = hass; this._hass = hass;
// Manually set hass in the menu, elements and image. This is to allow these // Manually set hass in the menu, elements and image. This is to allow these
+2 -2
View File
@@ -54,7 +54,7 @@ export function getParseErrorKeys<T>(error: z.ZodError<T>): string[] {
* @returns The parsed valid response or null on malformed. * @returns The parsed valid response or null on malformed.
*/ */
export async function homeAssistantWSRequest<T>( export async function homeAssistantWSRequest<T>(
hass: HomeAssistant & ExtendedHomeAssistant, hass: HomeAssistant,
schema: ZodSchema<T>, schema: ZodSchema<T>,
request: MessageBase, request: MessageBase,
): Promise<T> { ): Promise<T> {
@@ -88,7 +88,7 @@ export async function homeAssistantWSRequest<T>(
* @returns The signed URL, or null if the response was malformed. * @returns The signed URL, or null if the response was malformed.
*/ */
export async function homeAssistantSignPath( export async function homeAssistantSignPath(
hass: HomeAssistant & ExtendedHomeAssistant, hass: ExtendedHomeAssistant,
path: string, path: string,
expires?: number, expires?: number,
): Promise<string | null> { ): Promise<string | null> {
+5 -5
View File
@@ -68,12 +68,12 @@ class FrigateCardElementsCore extends LitElement {
protected conditionState?: ConditionState; protected conditionState?: ConditionState;
protected _root: HTMLElement | null = null; protected _root: HTMLElement | null = null;
protected _hass?: HomeAssistant & ExtendedHomeAssistant; protected _hass?: HomeAssistant;
/** /**
* Set Home Assistant object. * Set Home Assistant object.
*/ */
set hass(hass: HomeAssistant & ExtendedHomeAssistant) { set hass(hass: HomeAssistant) {
if (this._root) { if (this._root) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any // eslint-disable-next-line @typescript-eslint/no-explicit-any
(this._root as any).hass = hass; (this._root as any).hass = hass;
@@ -137,7 +137,7 @@ class FrigateCardElementsCore extends LitElement {
@customElement('frigate-card-elements') @customElement('frigate-card-elements')
export class FrigateCardElements extends LitElement { export class FrigateCardElements extends LitElement {
@property({ attribute: false }) @property({ attribute: false })
public hass?: HomeAssistant & ExtendedHomeAssistant; public hass?: HomeAssistant;
@property({ attribute: false }) @property({ attribute: false })
protected elements: PictureElements; protected elements: PictureElements;
@@ -235,7 +235,7 @@ export class FrigateCardElements extends LitElement {
@customElement('frigate-card-conditional') @customElement('frigate-card-conditional')
export class FrigateCardElementsConditional extends LitElement { export class FrigateCardElementsConditional extends LitElement {
protected _config?: FrigateConditional; protected _config?: FrigateConditional;
protected _hass?: HomeAssistant & ExtendedHomeAssistant; protected _hass?: HomeAssistant;
@query('frigate-card-elements-core') @query('frigate-card-elements-core')
_core?: FrigateCardElementsCore; _core?: FrigateCardElementsCore;
@@ -243,7 +243,7 @@ export class FrigateCardElementsConditional extends LitElement {
/** /**
* Set the Home Assistant object. * Set the Home Assistant object.
*/ */
set hass(hass: HomeAssistant & ExtendedHomeAssistant) { set hass(hass: HomeAssistant) {
if (this._core) { if (this._core) {
this._core.hass = hass; this._core.hass = hass;
} }
+2 -2
View File
@@ -30,7 +30,7 @@ import galleryStyle from '../scss/gallery.scss';
@customElement('frigate-card-gallery') @customElement('frigate-card-gallery')
export class FrigateCardGallery extends LitElement { export class FrigateCardGallery extends LitElement {
@property({ attribute: false }) @property({ attribute: false })
protected hass?: HomeAssistant & ExtendedHomeAssistant; protected hass?: HomeAssistant;
@property({ attribute: false }) @property({ attribute: false })
protected view?: Readonly<View>; protected view?: Readonly<View>;
@@ -98,7 +98,7 @@ export class FrigateCardGallery extends LitElement {
@customElement('frigate-card-gallery-core') @customElement('frigate-card-gallery-core')
export class FrigateCardGalleryCore extends LitElement { export class FrigateCardGalleryCore extends LitElement {
@property({ attribute: false }) @property({ attribute: false })
protected hass?: HomeAssistant & ExtendedHomeAssistant; protected hass?: HomeAssistant;
@property({ attribute: false }) @property({ attribute: false })
protected view?: Readonly<View>; protected view?: Readonly<View>;
+6 -6
View File
@@ -66,7 +66,7 @@ const URL_SIGN_REFRESH_THRESHOLD_SECONDS = 1 * 60 * 60;
@customElement('frigate-card-live') @customElement('frigate-card-live')
export class FrigateCardLive extends LitElement { export class FrigateCardLive extends LitElement {
@property({ attribute: false }) @property({ attribute: false })
protected hass?: HomeAssistant & ExtendedHomeAssistant; protected hass?: ExtendedHomeAssistant;
@property({ attribute: false }) @property({ attribute: false })
protected view?: Readonly<View>; protected view?: Readonly<View>;
@@ -182,7 +182,7 @@ export class FrigateCardLive extends LitElement {
@customElement('frigate-card-live-carousel') @customElement('frigate-card-live-carousel')
export class FrigateCardLiveCarousel extends FrigateCardMediaCarousel { export class FrigateCardLiveCarousel extends FrigateCardMediaCarousel {
@property({ attribute: false }) @property({ attribute: false })
protected hass?: HomeAssistant & ExtendedHomeAssistant; protected hass?: ExtendedHomeAssistant;
@property({ attribute: false }) @property({ attribute: false })
protected view?: Readonly<View>; protected view?: Readonly<View>;
@@ -531,7 +531,7 @@ export class FrigateCardLiveCarousel extends FrigateCardMediaCarousel {
@customElement('frigate-card-live-provider') @customElement('frigate-card-live-provider')
export class FrigateCardLiveProvider extends LitElement { export class FrigateCardLiveProvider extends LitElement {
@property({ attribute: false }) @property({ attribute: false })
protected hass?: HomeAssistant & ExtendedHomeAssistant; protected hass?: ExtendedHomeAssistant;
@property({ attribute: false }) @property({ attribute: false })
protected cameraConfig?: CameraConfig; protected cameraConfig?: CameraConfig;
@@ -642,7 +642,7 @@ export class FrigateCardLiveProvider extends LitElement {
@customElement('frigate-card-live-ha') @customElement('frigate-card-live-ha')
export class FrigateCardLiveFrigate extends LitElement { export class FrigateCardLiveFrigate extends LitElement {
@property({ attribute: false }) @property({ attribute: false })
protected hass?: HomeAssistant & ExtendedHomeAssistant; protected hass?: HomeAssistant;
@property({ attribute: false }) @property({ attribute: false })
protected cameraConfig?: CameraConfig; protected cameraConfig?: CameraConfig;
@@ -731,7 +731,7 @@ export class FrigateCardLiveWebRTCCard extends LitElement {
@property({ attribute: false }) @property({ attribute: false })
protected cameraConfig?: CameraConfig; protected cameraConfig?: CameraConfig;
protected hass?: HomeAssistant & ExtendedHomeAssistant; protected hass?: HomeAssistant;
// A task to await the load of the WebRTC component. // A task to await the load of the WebRTC component.
protected _webrtcTask = new Task(this, this._getWebRTCCardElement, () => [1]); protected _webrtcTask = new Task(this, this._getWebRTCCardElement, () => [1]);
@@ -888,7 +888,7 @@ export class FrigateCardLiveJSMPEG extends LitElement {
@property({ attribute: false, hasChanged: contentsChanged }) @property({ attribute: false, hasChanged: contentsChanged })
protected jsmpegConfig?: JSMPEGConfig; protected jsmpegConfig?: JSMPEGConfig;
protected hass?: HomeAssistant & ExtendedHomeAssistant; protected hass?: ExtendedHomeAssistant;
protected _jsmpegCanvasElement?: HTMLCanvasElement; protected _jsmpegCanvasElement?: HTMLCanvasElement;
protected _jsmpegVideoPlayer?: JSMpeg.VideoElement; protected _jsmpegVideoPlayer?: JSMpeg.VideoElement;
+1 -1
View File
@@ -55,7 +55,7 @@ export const FRIGATE_ICON_FILLED =
@customElement('frigate-card-menu') @customElement('frigate-card-menu')
export class FrigateCardMenu extends LitElement { export class FrigateCardMenu extends LitElement {
@property({ attribute: false }) @property({ attribute: false })
public hass?: HomeAssistant & ExtendedHomeAssistant; public hass?: HomeAssistant;
set menuConfig(menuConfig: MenuConfig) { set menuConfig(menuConfig: MenuConfig) {
this._menuConfig = menuConfig; this._menuConfig = menuConfig;
+1 -1
View File
@@ -18,7 +18,7 @@ import submenuStyle from '../scss/submenu.scss';
@customElement('frigate-card-submenu') @customElement('frigate-card-submenu')
export class FrigateCardSubmenu extends LitElement { export class FrigateCardSubmenu extends LitElement {
@property({ attribute: false }) @property({ attribute: false })
public hass?: HomeAssistant & ExtendedHomeAssistant; public hass?: HomeAssistant;
@property({ attribute: false }) @property({ attribute: false })
public submenu?: MenuSubmenu; public submenu?: MenuSubmenu;
+3 -3
View File
@@ -23,7 +23,7 @@ import surroundThumbnailsStyle from '../scss/surround.scss';
@customElement('frigate-card-surround-thumbnails') @customElement('frigate-card-surround-thumbnails')
export class FrigateCardSurround extends LitElement { export class FrigateCardSurround extends LitElement {
@property({ attribute: false }) @property({ attribute: false })
protected hass?: HomeAssistant & ExtendedHomeAssistant; protected hass?: HomeAssistant;
@property({ attribute: false }) @property({ attribute: false })
protected view?: Readonly<View>; protected view?: Readonly<View>;
@@ -51,12 +51,12 @@ export class FrigateCardSurround extends LitElement {
* @returns * @returns
*/ */
protected async _fetchMedia([hass, view, browseMediaParams]: ( protected async _fetchMedia([hass, view, browseMediaParams]: (
| (HomeAssistant & ExtendedHomeAssistant) | HomeAssistant
| Readonly<View> | Readonly<View>
| BrowseMediaQueryParameters | BrowseMediaQueryParameters
| undefined | undefined
)[]): Promise<void> { )[]): Promise<void> {
hass = hass as HomeAssistant & ExtendedHomeAssistant; hass = hass as HomeAssistant;
view = view as Readonly<View>; view = view as Readonly<View>;
browseMediaParams = browseMediaParams as BrowseMediaQueryParameters; browseMediaParams = browseMediaParams as BrowseMediaQueryParameters;
+4 -4
View File
@@ -239,7 +239,7 @@ class TimelineEventManager {
*/ */
public async fetchEventsIfNecessary( public async fetchEventsIfNecessary(
element: HTMLElement, element: HTMLElement,
hass: HomeAssistant & ExtendedHomeAssistant, hass: HomeAssistant,
cameras: Map<string, CameraConfig>, cameras: Map<string, CameraConfig>,
media: TimelineMediaType, media: TimelineMediaType,
start: Date, start: Date,
@@ -262,7 +262,7 @@ class TimelineEventManager {
*/ */
protected async _fetchEvents( protected async _fetchEvents(
element: HTMLElement, element: HTMLElement,
hass: HomeAssistant & ExtendedHomeAssistant, hass: HomeAssistant,
cameras: Map<string, CameraConfig>, cameras: Map<string, CameraConfig>,
media: TimelineMediaType, media: TimelineMediaType,
start?: Date, start?: Date,
@@ -328,7 +328,7 @@ class TimelineEventManager {
@customElement('frigate-card-timeline') @customElement('frigate-card-timeline')
export class FrigateCardTimeline extends LitElement { export class FrigateCardTimeline extends LitElement {
@property({ attribute: false }) @property({ attribute: false })
protected hass?: HomeAssistant & ExtendedHomeAssistant; protected hass?: HomeAssistant;
@property({ attribute: false }) @property({ attribute: false })
protected view?: Readonly<View>; protected view?: Readonly<View>;
@@ -374,7 +374,7 @@ export class FrigateCardTimeline extends LitElement {
@customElement('frigate-card-timeline-core') @customElement('frigate-card-timeline-core')
export class FrigateCardTimelineCore extends LitElement { export class FrigateCardTimelineCore extends LitElement {
@property({ attribute: false }) @property({ attribute: false })
protected hass?: HomeAssistant & ExtendedHomeAssistant; protected hass?: HomeAssistant;
@property({ attribute: false }) @property({ attribute: false })
protected view?: Readonly<View>; protected view?: Readonly<View>;
+2 -2
View File
@@ -46,7 +46,7 @@ import viewerStyle from '../scss/viewer.scss';
@customElement('frigate-card-viewer') @customElement('frigate-card-viewer')
export class FrigateCardViewer extends LitElement { export class FrigateCardViewer extends LitElement {
@property({ attribute: false }) @property({ attribute: false })
protected hass?: HomeAssistant & ExtendedHomeAssistant; protected hass?: HomeAssistant;
@property({ attribute: false }) @property({ attribute: false })
protected view?: Readonly<View>; protected view?: Readonly<View>;
@@ -120,7 +120,7 @@ export class FrigateCardViewer extends LitElement {
@customElement('frigate-card-viewer-carousel') @customElement('frigate-card-viewer-carousel')
export class FrigateCardViewerCarousel extends FrigateCardMediaCarousel { export class FrigateCardViewerCarousel extends FrigateCardMediaCarousel {
@property({ attribute: false }) @property({ attribute: false })
protected hass?: HomeAssistant & ExtendedHomeAssistant; protected hass?: HomeAssistant;
@property({ attribute: false }) @property({ attribute: false })
protected view?: Readonly<View>; protected view?: Readonly<View>;
+1 -1
View File
@@ -38,7 +38,7 @@ export class ResolvedMediaCache {
export class ResolvedMediaUtil { export class ResolvedMediaUtil {
static async resolveMedia( static async resolveMedia(
hass: HomeAssistant & ExtendedHomeAssistant, hass: HomeAssistant,
mediaSource?: FrigateBrowseMediaSource, mediaSource?: FrigateBrowseMediaSource,
cache?: ResolvedMediaCache, cache?: ResolvedMediaCache,
): Promise<ResolvedMedia | null> { ): Promise<ResolvedMedia | null> {
+2 -1
View File
@@ -2,6 +2,7 @@ import { StyleInfo } from 'lit/directives/style-map.js';
import { import {
CallServiceActionConfig, CallServiceActionConfig,
CustomActionConfig, CustomActionConfig,
HomeAssistant,
LovelaceCard, LovelaceCard,
LovelaceCardEditor, LovelaceCardEditor,
MoreInfoActionConfig, MoreInfoActionConfig,
@@ -932,7 +933,7 @@ const menuButtonSchema = z.discriminatedUnion('type', [
menuSubmenuSchema, menuSubmenuSchema,
]); ]);
export type MenuButton = z.infer<typeof menuButtonSchema>; export type MenuButton = z.infer<typeof menuButtonSchema>;
export interface ExtendedHomeAssistant { export interface ExtendedHomeAssistant extends HomeAssistant {
hassUrl(path?): string; hassUrl(path?): string;
themes: Themes & { themes: Themes & {
darkMode?: boolean darkMode?: boolean