Skip to content

ui-router-server / connect / ConnectAdapterOptions

Interface: ConnectAdapterOptions ​

Defined in: connect.ts:73

Host hooks for createConnectMiddleware: asset IO, and which requests get verdicts.

Extended by ​

Properties ​

PropertyTypeDescriptionDefined in
base?stringThe url path the site is served at, such as Vite's base; / by default. The middleware matches req.url with the base taken off, so the mount table stays at /, passes a request outside the base to next() untouched, and puts the base back on redirect Locations, the canonical Link and the url the default serveShell hands downstream. A host serveShell sees req.url with the base on. Defaults to the router's base; a different value throws. Under a base the router doesn't declare, the middleware resolves the base once and fails every request through next(error) when a mount already carries it.connect.ts:86
delegates?"next"How delegating states are served. Connect has no fetch-shaped handler bridge, so 'next' is the only mode: a navigation that matches a delegating state passes to the downstream stack, which must serve it. Without it, construction throws for a router from createServerRouter that names delegate keys, and a structural router's delegate verdict fails the request through next(error).connect.ts:140
responses?"next"How response states are served, as for delegates: 'next' passes a navigation that matches one to the downstream stack, which must answer it. Without it, construction throws for a router from createServerRouter that declares response states, and a structural router's response verdict fails the request through next(error).connect.ts:148
serveNotFound?(mount, req, res, next) => voidServe a mount-owned miss (notFound with a mount: the mount owned the pathname but no route matched). The default answers a minimal text/plain 404 — override to serve a real 404 page. A notFound without a mount is never routed here: the pathname isn't this router's, so the middleware always passes it through untouched.connect.ts:116
serveShell?(mount, req, res, next, verdict) => voidServe the mount's shell. The default rewrites req.url to shellPath and next()s into the downstream static layer. By the time this runs the adapter has already done the status'd-shell mechanics: request validators stripped and the response relabeled to the verdict's status — a host override only owns the asset IO. The verdict arrives last, so a host can serve a 404 page for the otherwise projection's status.connect.ts:102
shellPath?(mount) => stringMaps a shell verdict's mount to the path the default serveShell rewrites req.url to (default: the mount base itself). The hook for aliased mounts whose shell lives under another prefix.connect.ts:92
shouldHandle?(req) => booleanWhich requests get verdicts. The default is the navigation heuristic connect-history-api-fallback established (and Vite's own HTML fallback mirrors): GET/HEAD requests whose Accept includes text/html. Module and asset fetches (Accept: *​/*) pass through untouched — essential under Vite, where a mount's module URLs live on the same paths as its routes. Override with () => true when the middleware sits behind the static layer and should judge everything.connect.ts:131