import { devices, type DeviceModel } from './devices'; const BASE = `
{{contents}}
`; export type RenderMode = | 'full' | 'half_horizontal' | 'half_vertical' | 'quadrant'; export interface Renderable { hash: string; nextEvent?: Date; render(mode: RenderMode, model: DeviceModel): Promise; } export type PluginList = [Renderable, RenderMode][]; export const render = async (plugins: PluginList, model: DeviceModel) => { const classes = Object.values(model.css.classes).join(' '); let contents = ''; for (let [plugin, mode] of plugins) { contents += await plugin.render(mode, model); } return BASE.replace('{{classes}}', classes).replace('{{contents}}', contents); };