meteoalarm-card
Version:
Meteoalarm card for Home Assistant Lovelace UI
36 lines (30 loc) • 1.21 kB
text/typescript
// Modified version of: https://github.com/home-assistant/frontend/blob/092dfd1e87f882236c250d55868c0066e566e80a/src/panels/lovelace/common/process-config-entities.ts
// Parse array of entity objects from config
import { EntityConfig } from 'custom-card-helpers';
export function processConfigEntities(
entities: Array<EntityConfig | string> | string | EntityConfig,
): EntityConfig[] {
if (!Array.isArray(entities)) {
entities = [entities];
}
if (entities.length > 0 && entities.every((e) => e == null)) {
return [];
}
return entities.map((entityConf, index): any => {
if (typeof entityConf === 'object' && !Array.isArray(entityConf) && entityConf.type) {
return entityConf;
}
let config: EntityConfig;
if (typeof entityConf === 'string') {
config = { entity: entityConf } as EntityConfig;
} else if (typeof entityConf === 'object' && !Array.isArray(entityConf)) {
if (!('entity' in entityConf)) {
throw new Error(`Entity object at position ${index} is missing entity field.`);
}
config = entityConf as EntityConfig;
} else {
throw new Error(`Invalid entity specified at position ${index}.`);
}
return config;
});
}