Skip to main content

CloudflarePagesAssetRouter

Overview

Handles incoming requests for static assets uploaded to Cloudflare Pages.

This binding only exists in Cloudflare Pages.

See

If you're using Worker Sites

Usage

import { CloudflarePagesAssetRouter } from 'keywork/middleware/classes'

Constructors

constructor

new CloudflarePagesAssetRouter

()

Overrides

ServiceBindingRouter.constructor

Defined in

middleware/classes/CloudflarePagesAssetRouter.ts:37

Debug Properties

displayName

displayName: `string`

A display name used for debugging and log messages.

Inherited from

ServiceBindingRouter.displayName

Defined in

router/classes/RequestRouter.ts:391

Other Properties

$routesEndpoint

protected $routesEndpoint: [`RouteRequestHandler<`Record<`"ASSETS"`, [`WorkerEnvFetchBinding`](../../router/interfaces/WorkerEnvFetchBinding.mdx)>`, {}, `Record<string, unknown>`, [`ResponseLike`](../../http/types/ResponseLike.mdx)>`](../../router/interfaces/RouteRequestHandler.mdx)

Inherited from

ServiceBindingRouter.$routesEndpoint

Defined in

router/classes/RequestRouter.ts:452

bindingAlias

bindingAlias: `"ASSETS"`

The named alias of your binding. This is usually defined in your wrangler.toml file.

Inherited from

ServiceBindingRouter.bindingAlias

Defined in

middleware/classes/ServiceBindingRouter.ts:48

fetch

fetch: [`MiddlewareFetch<`Record<`"ASSETS"`, [`WorkerEnvFetchBinding`](../../router/interfaces/WorkerEnvFetchBinding.mdx)>`, `Promise<Response>`>`](../../router/interfaces/MiddlewareFetch.mdx)

The Worker's primary incoming fetch handler.

This delegates to a method-specific handler you define, such as RequestRouter#get. Generally, RequestRouter#fetch should not be used within your app. This is instead automatically called by the Worker runtime when an incoming request is received.

Inherited from

ServiceBindingRouter.fetch

Defined in

router/classes/RequestRouter.ts:501

logger

readonly logger: [`Logger`](../../logger/classes/Logger.mdx)

A server-side logger.

Inherited from

ServiceBindingRouter.logger

Defined in

router/classes/RequestRouter.ts:396

reactOptions

readonly reactOptions: [`ReactRendererOptions`](../../react/interfaces/ReactRendererOptions.mdx)

Inherited from

ServiceBindingRouter.reactOptions

Defined in

router/classes/RequestRouter.ts:465

routesByVerb

protected readonly routesByVerb: `Map<[`RouterMethod`](../../http/types/RouterMethod.mdx), [`ParsedRoute<`Record<`"ASSETS"`, [`WorkerEnvFetchBinding`](../../router/interfaces/WorkerEnvFetchBinding.mdx)>`>`](../../router/types/ParsedRoute.mdx)[]>`

This router's known routes, categorized by their normalized HTTP method verbs into arrays of route handlers.

e.g.

GET: [{'/', routeHandler1}, {'/foo/' routeHandler2}, {'/bar/', routeHandler3}...]
POST: [{'/', routeHandler1}, {'/foo/' routeHandler2}, {'/bar/', routeHandler3}...]
...etc

Route handlers are prioritized in order of insertion, however, a handler can act as middleware by continuing the chain by returning next()

Inherited from

ServiceBindingRouter.routesByVerb

Defined in

router/classes/RequestRouter.ts:97

Debug Methods

$getRoutesByHTTPMethod

$getRoutesByHTTPMethod

(): [`RouteDebugEntrypoint`](../../router/interfaces/RouteDebugEntrypoint.mdx)[]

Collates the known routes by HTTP method verb.

See

Returns

RouteDebugEntrypoint[]

Inherited from

ServiceBindingRouter.$getRoutesByHTTPMethod

Defined in

router/classes/RequestRouter.ts:405

$prettyPrintRoutes

$prettyPrintRoutes

(routesByHttpMethod?): `void`

Outputs the known routes to the console.

Parameters

NameType
routesByHttpMethodRouteDebugEntrypoint[]

Returns

void

Inherited from

ServiceBindingRouter.$prettyPrintRoutes

Defined in

router/classes/RequestRouter.ts:438

HTTP Method Handler Methods

all

all

all<ExpectedParams, Data>(...args): `void`

Defines a handler for incoming all HTTP requests.

This will always be a higher priority than an explicitly defined method handler. If you're creating a router as middleware, RequestRouter#all can be especially useful for intercepting incoming requests.

Type parameters

NameType
ExpectedParams{}
Data{}

Parameters

NameType
...args[urlPattern: URLPatternLike, ...handlers: RouteRequestHandler<Record<"ASSETS", WorkerEnvFetchBinding>, ExpectedParams, Data, ResponseLike>[]]

Returns

void

Inherited from

ServiceBindingRouter.all

Defined in

router/classes/RequestRouter.ts:294

delete

delete

delete<ExpectedParams, Data>(...args): `void`

Defines a handler for incoming DELETE requests.

The HTTP DELETE request method deletes the specified resource.

See

Type parameters

NameType
ExpectedParams{}
Data{}

Parameters

NameType
...args[urlPattern: URLPatternLike, ...handlers: RouteRequestHandler<Record<"ASSETS", WorkerEnvFetchBinding>, ExpectedParams, Data, ResponseLike>[]]

Returns

void

Inherited from

ServiceBindingRouter.delete

Defined in

router/classes/RequestRouter.ts:242

get

get

get<ExpectedParams, Data>(...args): `void`

Defines a handler for incoming GET requests.

The HTTP GET method requests a representation of the specified resource. Requests using GET should only be used to request data. The params object in the IsomorphicFetchEvent contains matched URL patterns which can be used to pass routing data from a client.

See

Type parameters

NameType
ExpectedParams{}
Data{}

Parameters

NameType
...args[urlPattern: URLPatternLike, ...handlers: RouteRequestHandler<Record<"ASSETS", WorkerEnvFetchBinding>, ExpectedParams, Data, ResponseLike>[]]

Returns

void

Inherited from

ServiceBindingRouter.get

Defined in

router/classes/RequestRouter.ts:177

head

head<ExpectedParams, Data>(...args): `void`

Defines a handler for incoming HEAD requests.

The HTTP HEAD method requests the headers that would be returned if the HEAD request's URL was instead requested with the HTTP GET method. For example, if a URL might produce a large download, a HEAD request could read its Content-Length header to check the filesize without actually downloading the file.

See

Type parameters

NameType
ExpectedParams{}
Data{}

Parameters

NameType
...args[urlPattern: URLPatternLike, ...handlers: RouteRequestHandler<Record<"ASSETS", WorkerEnvFetchBinding>, ExpectedParams, Data, ResponseLike>[]]

Returns

void

Inherited from

ServiceBindingRouter.head

Defined in

router/classes/RequestRouter.ts:261

options

options

options<ExpectedParams, Data>(...args): `void`

Defines a handler for incoming OPTIONS requests.

The HTTP OPTIONS method requests permitted communication options for a given URL or server. A client can specify a URL with this method, or an asterisk (*) to refer to the entire server.

See

Type parameters

NameType
ExpectedParams{}
Data{}

Parameters

NameType
...args[urlPattern: URLPatternLike, ...handlers: RouteRequestHandler<Record<"ASSETS", WorkerEnvFetchBinding>, ExpectedParams, Data, ResponseLike>[]]

Returns

void

Inherited from

ServiceBindingRouter.options

Defined in

router/classes/RequestRouter.ts:279

patch

patch

patch<ExpectedParams, Data>(...args): `void`

Defines a handler for incoming PATCH requests.

See

Type parameters

NameType
ExpectedParams{}
Data{}

Parameters

NameType
...args[urlPattern: URLPatternLike, ...handlers: RouteRequestHandler<Record<"ASSETS", WorkerEnvFetchBinding>, ExpectedParams, Data, ResponseLike>[]]

Returns

void

Inherited from

ServiceBindingRouter.patch

Defined in

router/classes/RequestRouter.ts:226

post

post

post<ExpectedParams, Data>(...args): `void`

Defines a handler for incoming POST requests.

The HTTP POST method sends data to the server. The type of the body of the request is indicated by the Content-Type header.

See

Type parameters

NameType
ExpectedParams{}
Data{}

Parameters

NameType
...args[urlPattern: URLPatternLike, ...handlers: RouteRequestHandler<Record<"ASSETS", WorkerEnvFetchBinding>, ExpectedParams, Data, ResponseLike>[]]

Returns

void

Inherited from

ServiceBindingRouter.post

Defined in

router/classes/RequestRouter.ts:195

put

put

put<ExpectedParams, Data>(...args): `void`

Defines a handler for incoming PUT requests.

The HTTP PUT request method creates a new resource or replaces a representation of the target resource with the request payload.

See

Type parameters

NameType
ExpectedParams{}
Data{}

Parameters

NameType
...args[urlPattern: URLPatternLike, ...handlers: RouteRequestHandler<Record<"ASSETS", WorkerEnvFetchBinding>, ExpectedParams, Data, ResponseLike>[]]

Returns

void

Inherited from

ServiceBindingRouter.put

Defined in

router/classes/RequestRouter.ts:212

Other Methods

appendMethodRoutes

appendMethodRoutes

(normalizedVerb, urlPatternLike, ...fetchersLike): `void`

Given a normalized HTTP method verb, create a method handler. This is mostly for internal use.

Parameters

NameType
normalizedVerbRouterMethod
urlPatternLikeURLPatternLike
...fetchersLike(Fetcher<Record<"ASSETS", [WorkerEnvFetchBinding](/modules/router/interfaces/WorkerEnvFetchBinding)>>

Returns

void

Inherited from

ServiceBindingRouter.appendMethodRoutes

Defined in

router/classes/RequestRouter.ts:107

dispose

dispose

(reason?): `void`

Parameters

NameTypeDefault value
reasonstring'default'

Returns

void

Inherited from

ServiceBindingRouter.dispose

Defined in

router/classes/RequestRouter.ts:665

match

match

match<BoundAliases>(parsedRoutes, matchingAgainst): `RouteMatch<`BoundAliases`>`[]

Finds the matching routes for a given pathname.

Type parameters

NameType
BoundAliases{}

Parameters

NameType
parsedRoutesParsedRoute<BoundAliases>[]
matchingAgainstURLPatternInput

Returns

RouteMatch<BoundAliases>[]

Inherited from

ServiceBindingRouter.match

Defined in

router/classes/RequestRouter.ts:475

terminateMiddleware

Protected terminateMiddleware

(): `Response`

Returns

Response

Inherited from

ServiceBindingRouter.terminateMiddleware

Defined in

router/classes/RequestRouter.ts:604

use

use

(fetcher): `void`

Combines additional routers and their respective route handlers to this router.

Route handlers are matched in the order of their declaration:

const app = new RequestRouter()

app.get('/foo', ({request}) => {
return new Response('This handler got here first!')
})

app.get('/foo', ({request}) => {
return new Response('This handler won't be called!')
})

However, if you want another router to act as middleware, Call use before defining your route handlers:

const authenticationRouter = new RequestRouter()

authenticationRouter.all('*', ({request, next}) => {
if (!hasAuthCookie(request)) {
return new KeyworkResourceError(401, "You need to be signed in to do that!")
}

// Pass the request along to the next matching route handler.
return next()
})

const app = new RequestRouter()

app.use('/', authenticationRouter)

app.get('/user/profile', ({request}) => {
return new Response("Some user only content.")
})

Parameters

NameTypeDescription
fetcherFetcherLike<Record<"ASSETS", WorkerEnvFetchBinding>>

Returns

void

Inherited from

ServiceBindingRouter.use

Defined in

router/classes/RequestRouter.ts:347

use

(mountURLPattern, fetcher): `void`

Parameters

NameTypeDescription
mountURLPatternURLPatternLike
fetcherFetcherLike<Record<"ASSETS", WorkerEnvFetchBinding>>

Returns

void

Inherited from

ServiceBindingRouter.use

Defined in

router/classes/RequestRouter.ts:355

assertIsInstanceOf

Static assertIsInstanceOf

assertIsInstanceOf<BoundAliases>(routerLike): routerLike is RequestRouter<BoundAliases>

Type parameters

NameType
BoundAliases{}

Parameters

NameType
routerLikeFetcher<BoundAliases>

Returns

routerLike is RequestRouter<BoundAliases>

Inherited from

ServiceBindingRouter.assertIsInstanceOf

Defined in

router/classes/RequestRouter.ts:617