frierena personal git archive

frieren

a self-hosted git server in one binary — everyone reads, only the owner writes

frieren / web / lib / params.tsmaster

359 B · raw

// Next.js delivers dynamic segments percent-encoded in some cases; decode
// defensively so refs like "feat%2Fauth" become "feat/auth".
export function dec(s: string): string {
  try {
    return decodeURIComponent(s);
  } catch {
    return s;
  }
}

export function decPath(segs: string[] | undefined): string {
  return (segs ?? []).map(dec).join("/");
}