block-reason.ts824 BView on GitHub import type { RoadmapBlockReason } from '../types';
const PREFIX = 'roadmap-domain-blocked:';
/**
* Parse the `roadmap-domain-blocked:<reason>` token a member-write FORBIDDEN
* error carries. Returns null when the error is something else (so the caller
* can fall back to a generic error toast).
*/
export function parseBlockReason(err: unknown): RoadmapBlockReason | null {
const message =
typeof err === 'string'
? err
: err && typeof err === 'object' && 'message' in err
? String((err as { message: unknown }).message)
: '';
const idx = message.indexOf(PREFIX);
if (idx === -1) return null;
const reason = message.slice(idx + PREFIX.length).trim();
if (reason === 'generic' || reason === 'disposable' || reason === 'invalid') {
return reason;
}
return 'generic';
}