import { devices, type DeviceModel } from './devices';
const BASE = `
{{contents}}
`;
export type RenderMode =
| 'full'
| 'half_horizontal'
| 'half_vertical'
| 'quadrant';
export interface Renderable {
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);
};