Files
pulsenode/lib/config/public.ts
T

20 lines
525 B
TypeScript
Raw Permalink Normal View History

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<string, unknown> = { ...widget };
for (const key of SECRET_WIDGET_FIELDS) delete clone[key];
return clone as Widget;
}