@rtorcato/cf-common
Interfaces
SchemaLike
Defined in: index.ts:28
The minimal shape parseJson needs from a schema: a parse that returns the
validated value or throws. A Zod schema (z.object({...})) satisfies this as
is, as does any validator exposing the same method.
Type Parameters
T
T
Methods
parse()
parse(
input):T
Defined in: index.ts:29
Parameters
input
unknown
Returns
T
Functions
cf()
cf(
request):IncomingRequestCfProperties<unknown> |undefined
Defined in: index.ts:17
Cloudflare's per-request metadata (country, colo, tlsVersion, …).
undefined when unavailable — e.g. wrangler dev without --remote, or a
synthetic Request in a test.
Parameters
request
Request
Returns
IncomingRequestCfProperties<unknown> | undefined
Example
const country = cf(request)?.country ?? 'unknown'
parseJson()
parseJson<
T>(request,schema):Promise<T>
Defined in: index.ts:42
Read and validate a JSON request body. Reuses the caller's schema (bring your
own Zod schema) and turns both malformed JSON and a failed validation into an
exposed 400 CloudflareError, so defineFetch maps it to a clean
400 without leaking internals.
Type Parameters
T
T
Parameters
request
Request
schema
SchemaLike<T>
Returns
Promise<T>
Example
const body = await parseJson(request, z.object({ email: z.string().email() }))
// ^? { email: string }
bearerToken()
bearerToken(
request):string|null
Defined in: index.ts:66
Extract the token from an Authorization: Bearer <token> header, or null if
the header is absent or not a well-formed bearer credential. Case-insensitive
on the Bearer scheme, per RFC 6750.
Parameters
request
Request
Returns
string | null
Example
const token = bearerToken(request)
if (!token) throw new CloudflareError('Missing token', { status: 401 })
clientIp()
clientIp(
request):string|null
Defined in: index.ts:80
The client's IP from the CF-Connecting-IP header Cloudflare sets on every
request, or null when absent (e.g. a test without the header).
Parameters
request
Request
Returns
string | null
Example
const ip = clientIp(request) ?? 'unknown'