summaryrefslogtreecommitdiff
path: root/workers/apex/src/dispatch.ts
blob: 9ad1f15da8913eec8a4f509363bd8b6cbcabcd7c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
export function resolveVersion(
  pathname: string,
  dispatch: Map<string, string>,
): { slug: string; binding: string } | null {
  const m = pathname.match(/^\/en\/([^/]+)\//);
  if (!m) return null;
  const binding = dispatch.get(m[1]);
  return binding ? { slug: m[1], binding } : null;
}

export function bindingGuard(env: Record<string, unknown>, binding: string): Fetcher | null {
  const b = env[binding];
  if (b && typeof (b as Fetcher).fetch === "function") return b as Fetcher;
  return null;
}