import type { Config, Widget } from "./schema"; const SECRET_WIDGET_FIELDS = ["apiToken", "apiKey", "password"] as const; export function toPublicConfig(config: Config): Config { return { ...config, groups: config.groups.map((group) => ({ ...group, widgets: group.widgets.map(redactWidget), })), }; } function redactWidget(widget: Widget): Widget { const clone: Record = { ...widget }; for (const key of SECRET_WIDGET_FIELDS) delete clone[key]; return clone as Widget; }