17 lines
619 B
TypeScript
17 lines
619 B
TypeScript
export { parseNodeList, parsePairingList } from "../../shared/node-list-parse.js";
|
|
|
|
export function formatPermissions(raw: unknown) {
|
|
if (!raw || typeof raw !== "object" || Array.isArray(raw)) {
|
|
return null;
|
|
}
|
|
const entries = Object.entries(raw as Record<string, unknown>)
|
|
.map(([key, value]) => [String(key).trim(), value === true] as const)
|
|
.filter(([key]) => key.length > 0)
|
|
.toSorted((a, b) => a[0].localeCompare(b[0]));
|
|
if (entries.length === 0) {
|
|
return null;
|
|
}
|
|
const parts = entries.map(([key, granted]) => `${key}=${granted ? "yes" : "no"}`);
|
|
return `[${parts.join(", ")}]`;
|
|
}
|