chore: Enforce consistent type imports via @typescript-eslint/consistent-type-imports (#2545)

This commit is contained in:
Dermot Duffy
2026-06-30 17:45:13 -07:00
committed by dermotduffy
parent 8f4ebcc0de
commit 7dc29865b8
589 changed files with 2419 additions and 2103 deletions
@@ -1,6 +1,6 @@
import { TemplateAdvancedCameraCardState } from '../../card-controller/templates/types';
import { ConditionState, ConditionStateChange } from '../conditions/types';
import { TriggerData } from './types';
import type { TemplateAdvancedCameraCardState } from '../../card-controller/templates/types';
import type { ConditionState, ConditionStateChange } from '../conditions/types';
import type { TriggerData } from './types';
// The card-state snapshot (`from_acc`/`to_acc`) surfaced by card triggers: the
// card's own camera/view/config at a point in time.
+2 -2
View File
@@ -1,4 +1,4 @@
import { Trigger } from '../../config/schema/condition-trigger/triggers/types';
import type { Trigger } from '../../config/schema/condition-trigger/triggers/types';
import { CallTrigger } from './triggers/call';
import { CameraTrigger } from './triggers/camera';
import { ConfigTrigger } from './triggers/config';
@@ -16,7 +16,7 @@ import { ScreenTrigger } from './triggers/screen';
import { StateTrigger } from './triggers/state';
import { TemplateTrigger } from './triggers/template';
import { TriggeredTrigger } from './triggers/triggered';
import { TriggerEvaluator, TriggerEvaluatorContext } from './triggers/types';
import type { TriggerEvaluator, TriggerEvaluatorContext } from './triggers/types';
import { ViewTrigger } from './triggers/view';
export const createTriggerEvaluator = (
+5 -5
View File
@@ -1,15 +1,15 @@
import { HASSManagerReadonlyInterface } from '../../card-controller/hass/types';
import type { HASSManagerReadonlyInterface } from '../../card-controller/hass/types';
import { TemplateRenderer } from '../../card-controller/templates';
import { Trigger } from '../../config/schema/condition-trigger/triggers/types';
import type { Trigger } from '../../config/schema/condition-trigger/triggers/types';
import { isEnabled } from '../common/is-enabled';
import { ConditionStateManagerReadonlyInterface } from '../conditions/types';
import type { ConditionStateManagerReadonlyInterface } from '../conditions/types';
import { createTriggerEvaluator } from './factory';
import {
import type {
TriggerCallback,
TriggerEvaluator,
TriggerEvaluatorContext,
} from './triggers/types';
import { TriggerData } from './types';
import type { TriggerData } from './types';
// A trigger evaluator paired with its config, so `enabled` can be re-checked
// against the config each time the evaluator triggers.
@@ -1,6 +1,6 @@
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { ConditionStateTriggerBase } from './condition-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
export class CallTrigger extends ConditionStateTriggerBase<TriggerOfType<'call'>> {
protected _getValue(state: ConditionState): unknown {
@@ -1,6 +1,6 @@
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { ConditionStateTriggerBase } from './condition-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
// Triggers when the selected camera changes: to one of `cameras` if listed, to
// no camera if `cameras` is `[]`, or on any change if `cameras` is omitted.
@@ -1,11 +1,15 @@
import { isEqual } from 'lodash-es';
import { Trigger } from '../../../config/schema/condition-trigger/triggers/types';
import { ConditionEvaluator } from '../../conditions/conditions/types';
import type { Trigger } from '../../../config/schema/condition-trigger/triggers/types';
import type { ConditionEvaluator } from '../../conditions/conditions/types';
import { createConditionEvaluatorForTrigger } from '../../conditions/factory';
import { ConditionState, ConditionStateChange } from '../../conditions/types';
import type { ConditionState, ConditionStateChange } from '../../conditions/types';
import { buildCardTriggerData } from '../build-trigger-data';
import { TriggerCallback, TriggerEvaluator, TriggerEvaluatorContext } from './types';
import type {
TriggerCallback,
TriggerEvaluator,
TriggerEvaluatorContext,
} from './types';
// A trigger driven by `ConditionState` changes: subscribe to the state manager,
// fire when the watched value (`_getValue`) changes and the new state passes
@@ -1,7 +1,7 @@
import { getConfigValue } from '../../../config/management';
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { ConditionStateTriggerBase } from './condition-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
// Triggers when the card configuration changes. With `paths`, only a change to
// one of those config paths triggers; without `paths`, any config change does.
@@ -1,6 +1,6 @@
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { ConditionStateTriggerBase } from './condition-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
export class DisplayModeTrigger extends ConditionStateTriggerBase<
TriggerOfType<'display_mode'>
@@ -1,11 +1,11 @@
import { HassEntity } from 'home-assistant-js-websocket';
import type { HassEntity } from 'home-assistant-js-websocket';
import { isEqual } from 'lodash-es';
import { arrayify } from '../../../utils/basic';
import { Timer } from '../../../utils/timer';
import { renderTimePeriodToSeconds } from '../../common/time-period';
import { ConditionStateChange } from '../../conditions/types';
import {
import type { ConditionStateChange } from '../../conditions/types';
import type {
TriggerCallback,
TriggerEvaluator,
TriggerEvaluatorContext,
@@ -1,12 +1,12 @@
import { uniq } from 'lodash-es';
import {
import type {
EventSubscriptionRequest,
EventWatcherSubscriptionInterface,
} from '../../../card-controller/hass/event-watcher';
import { matchesEventContext, matchesEventData } from '../../../ha/event-match';
import { arrayify } from '../../../utils/basic';
import {
import type {
TriggerCallback,
TriggerEvaluator,
TriggerEvaluatorContext,
@@ -1,6 +1,6 @@
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { ConditionStateTriggerBase } from './condition-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
export class ExpandTrigger extends ConditionStateTriggerBase<TriggerOfType<'expand'>> {
protected _getValue(state: ConditionState): unknown {
@@ -1,6 +1,6 @@
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { ConditionStateTriggerBase } from './condition-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
export class FullscreenTrigger extends ConditionStateTriggerBase<
TriggerOfType<'fullscreen'>
@@ -1,6 +1,6 @@
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { ConditionStateTriggerBase } from './condition-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
export class InitializedTrigger extends ConditionStateTriggerBase<
TriggerOfType<'initialized'>
@@ -1,6 +1,6 @@
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { ConditionStateTriggerBase } from './condition-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
export class InteractionTrigger extends ConditionStateTriggerBase<
TriggerOfType<'interaction'>
@@ -1,6 +1,6 @@
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { ConditionStateTriggerBase } from './condition-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
export class KeyTrigger extends ConditionStateTriggerBase<TriggerOfType<'key'>> {
protected _getValue(state: ConditionState): unknown {
@@ -1,6 +1,6 @@
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { ConditionStateTriggerBase } from './condition-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
export class MediaLoadedTrigger extends ConditionStateTriggerBase<
TriggerOfType<'media_loaded'>
@@ -1,6 +1,6 @@
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { ConditionStateTriggerBase } from './condition-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
// Triggers when the microphone mute state changes: to the given value if `muted`
// is set, or on any change if it is omitted.
@@ -1,9 +1,9 @@
import { HassEntity } from 'home-assistant-js-websocket';
import type { HassEntity } from 'home-assistant-js-websocket';
import { matchesNumericState, readNumericStateValue } from '../../common/numeric-state';
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { EntityStateTriggerBase } from './entity-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
// https://www.home-assistant.io/docs/automation/trigger/#numeric-state-trigger
// Faithful to HA's numeric_state trigger
@@ -1,9 +1,9 @@
import {
MediaQueryWatcher,
MediaQueryWatcherUnsubscribeCallback,
type MediaQueryWatcherUnsubscribeCallback,
} from '../../common/media-query-watcher';
import { buildCardTriggerData } from '../build-trigger-data';
import { TriggerCallback, TriggerEvaluator, TriggerOfType } from './types';
import type { TriggerCallback, TriggerEvaluator, TriggerOfType } from './types';
// `screen` watches a matchMedia query, whose state lives outside the card's
// `ConditionState`, so it owns a `MediaQueryWatcher` (the same watcher the
@@ -1,8 +1,8 @@
import { HassEntity } from 'home-assistant-js-websocket';
import type { HassEntity } from 'home-assistant-js-websocket';
import { arrayify } from '../../../utils/basic';
import { EntityStateTriggerBase } from './entity-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
// https://www.home-assistant.io/docs/automation/trigger/#state-trigger Faithful
// to HA's state trigger
@@ -1,8 +1,8 @@
import { Timer } from '../../../utils/timer';
import { renderTimePeriodToSeconds } from '../../common/time-period';
import { ConditionState, ConditionStateChange } from '../../conditions/types';
import type { ConditionState, ConditionStateChange } from '../../conditions/types';
import { isTemplateTrue } from './is-template-true';
import {
import type {
TriggerCallback,
TriggerEvaluator,
TriggerEvaluatorContext,
@@ -1,6 +1,6 @@
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { ConditionStateTriggerBase } from './condition-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
export class TriggeredTrigger extends ConditionStateTriggerBase<
TriggerOfType<'triggered'>
@@ -1,8 +1,8 @@
import { HASSManagerReadonlyInterface } from '../../../card-controller/hass/types';
import { TemplateRenderer } from '../../../card-controller/templates';
import { Trigger } from '../../../config/schema/condition-trigger/triggers/types';
import { ConditionStateManagerReadonlyInterface } from '../../conditions/types';
import { TriggerData } from '../types';
import type { HASSManagerReadonlyInterface } from '../../../card-controller/hass/types';
import type { TemplateRenderer } from '../../../card-controller/templates';
import type { Trigger } from '../../../config/schema/condition-trigger/triggers/types';
import type { ConditionStateManagerReadonlyInterface } from '../../conditions/types';
import type { TriggerData } from '../types';
export type TriggerCallback = (data: TriggerData) => void;
@@ -1,6 +1,6 @@
import { ConditionState } from '../../conditions/types';
import type { ConditionState } from '../../conditions/types';
import { ConditionStateTriggerBase } from './condition-state-base';
import { TriggerOfType } from './types';
import type { TriggerOfType } from './types';
// Triggers when the selected view changes: to one of `views` if listed, or on
// any change if `views` is omitted.
+2 -2
View File
@@ -1,6 +1,6 @@
import { HassEntity, HassEvent } from 'home-assistant-js-websocket';
import type { HassEntity, HassEvent } from 'home-assistant-js-websocket';
import { TemplateAdvancedCameraCardState } from '../../card-controller/templates/types';
import type { TemplateAdvancedCameraCardState } from '../../card-controller/templates/types';
// The top-level `trigger` template variable produced each time an evaluator
// triggers. `platform` is the provider -- a real HA platform for stock