Strategy: Update name -> type (#9006)

This commit is contained in:
Paulus Schoutsen 2021-04-27 10:04:52 -07:00 committed by GitHub
parent b63bd92d81
commit 20c351949f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 16 additions and 16 deletions

View File

@ -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>;

View File

@ -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
); );
/** /**

View File

@ -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,
}, },
], ],