mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-23 17:26:42 +00:00
Strategy: Update name -> type (#9006)
This commit is contained in:
parent
b63bd92d81
commit
20c351949f
@ -20,7 +20,7 @@ export interface LovelacePanelConfig {
|
|||||||
export interface LovelaceConfig {
|
export interface LovelaceConfig {
|
||||||
title?: string;
|
title?: string;
|
||||||
strategy?: {
|
strategy?: {
|
||||||
name: string;
|
type: string;
|
||||||
options?: Record<string, unknown>;
|
options?: Record<string, unknown>;
|
||||||
};
|
};
|
||||||
views: LovelaceViewConfig[];
|
views: LovelaceViewConfig[];
|
||||||
@ -82,7 +82,7 @@ export interface LovelaceViewConfig {
|
|||||||
title?: string;
|
title?: string;
|
||||||
type?: string;
|
type?: string;
|
||||||
strategy?: {
|
strategy?: {
|
||||||
name: string;
|
type: string;
|
||||||
options?: Record<string, unknown>;
|
options?: Record<string, unknown>;
|
||||||
};
|
};
|
||||||
badges?: Array<string | LovelaceBadgeConfig>;
|
badges?: Array<string | LovelaceBadgeConfig>;
|
||||||
|
@ -32,17 +32,17 @@ const strategies: Record<
|
|||||||
const getLovelaceStrategy = async <
|
const getLovelaceStrategy = async <
|
||||||
T extends LovelaceDashboardStrategy | LovelaceViewStrategy
|
T extends LovelaceDashboardStrategy | LovelaceViewStrategy
|
||||||
>(
|
>(
|
||||||
name: string
|
strategyType: string
|
||||||
): Promise<T> => {
|
): Promise<T> => {
|
||||||
if (name in strategies) {
|
if (strategyType in strategies) {
|
||||||
return strategies[name] as T;
|
return strategies[strategyType] as T;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!name.startsWith(CUSTOM_PREFIX)) {
|
if (!strategyType.startsWith(CUSTOM_PREFIX)) {
|
||||||
throw new Error("Unknown strategy");
|
throw new Error("Unknown strategy");
|
||||||
}
|
}
|
||||||
|
|
||||||
const tag = `ll-strategy-${name.substr(CUSTOM_PREFIX.length)}`;
|
const tag = `ll-strategy-${strategyType.substr(CUSTOM_PREFIX.length)}`;
|
||||||
|
|
||||||
if (
|
if (
|
||||||
(await Promise.race([
|
(await Promise.race([
|
||||||
@ -69,14 +69,14 @@ const generateStrategy = async <T extends keyof GenerateMethods>(
|
|||||||
generateMethod: T,
|
generateMethod: T,
|
||||||
renderError: (err: string | Error) => AsyncReturnType<GenerateMethods[T]>,
|
renderError: (err: string | Error) => AsyncReturnType<GenerateMethods[T]>,
|
||||||
info: Parameters<GenerateMethods[T]>[0],
|
info: Parameters<GenerateMethods[T]>[0],
|
||||||
name: string | undefined
|
strategyType: string | undefined
|
||||||
): Promise<ReturnType<GenerateMethods[T]>> => {
|
): Promise<ReturnType<GenerateMethods[T]>> => {
|
||||||
if (!name) {
|
if (!strategyType) {
|
||||||
return renderError("No strategy name found");
|
return renderError("No strategy type found");
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const strategy = (await getLovelaceStrategy(name)) as any;
|
const strategy = (await getLovelaceStrategy(strategyType)) as any;
|
||||||
return await strategy[generateMethod](info);
|
return await strategy[generateMethod](info);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
if (err.message !== "timeout") {
|
if (err.message !== "timeout") {
|
||||||
@ -90,7 +90,7 @@ const generateStrategy = async <T extends keyof GenerateMethods>(
|
|||||||
|
|
||||||
export const generateLovelaceDashboardStrategy = async (
|
export const generateLovelaceDashboardStrategy = async (
|
||||||
info: Parameters<LovelaceDashboardStrategy["generateDashboard"]>[0],
|
info: Parameters<LovelaceDashboardStrategy["generateDashboard"]>[0],
|
||||||
name?: string
|
strategyType?: string
|
||||||
): ReturnType<LovelaceDashboardStrategy["generateDashboard"]> =>
|
): ReturnType<LovelaceDashboardStrategy["generateDashboard"]> =>
|
||||||
generateStrategy(
|
generateStrategy(
|
||||||
"generateDashboard",
|
"generateDashboard",
|
||||||
@ -108,12 +108,12 @@ export const generateLovelaceDashboardStrategy = async (
|
|||||||
],
|
],
|
||||||
}),
|
}),
|
||||||
info,
|
info,
|
||||||
name || info.config?.strategy?.name
|
strategyType || info.config?.strategy?.type
|
||||||
);
|
);
|
||||||
|
|
||||||
export const generateLovelaceViewStrategy = async (
|
export const generateLovelaceViewStrategy = async (
|
||||||
info: Parameters<LovelaceViewStrategy["generateView"]>[0],
|
info: Parameters<LovelaceViewStrategy["generateView"]>[0],
|
||||||
name?: string
|
strategyType?: string
|
||||||
): ReturnType<LovelaceViewStrategy["generateView"]> =>
|
): ReturnType<LovelaceViewStrategy["generateView"]> =>
|
||||||
generateStrategy(
|
generateStrategy(
|
||||||
"generateView",
|
"generateView",
|
||||||
@ -126,7 +126,7 @@ export const generateLovelaceViewStrategy = async (
|
|||||||
],
|
],
|
||||||
}),
|
}),
|
||||||
info,
|
info,
|
||||||
name || info.view?.strategy?.name
|
strategyType || info.view?.strategy?.type
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -85,7 +85,7 @@ export class OriginalStatesStrategy {
|
|||||||
return {
|
return {
|
||||||
views: [
|
views: [
|
||||||
{
|
{
|
||||||
strategy: { name: "original-states" },
|
strategy: { type: "original-states" },
|
||||||
title: info.hass.config.location_name,
|
title: info.hass.config.location_name,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
Loading…
x
Reference in New Issue
Block a user