method GrpcService.prototype.refuses
Since 0.6.0
GrpcService.prototype.refuses(request: Request): Response | null

Refuses a native application/grpc request from its HEADERS alone.

The refusal itself is M70i's and unchanged: the fetch Response cannot carry the HTTP/2 trailers the native wire format signals completion with, so a Trailers-Only UNIMPLEMENTED is the protocol's own way to say so. What changed is WHEN it is reachable.

The kernel used to buffer the request body before dispatching, and a client-streaming or bidirectional call holds its request stream OPEN — so that read never resolved and the caller got no frames at all instead of the refusal (V5-5). grpcurl opens a bidirectional reflection stream first, which is why it hung on every request while a unary probe with the stream closed received the refusal correctly.

Deciding this from headers costs nothing: the content type is all the answer depends on, and the path check is the same claims already made.

Parameters

request: Request

The native fetch request, body untouched

Return Type

Response | null

The Trailers-Only refusal, or null to dispatch normally

Usage

import { GrpcService } from "grpc-plugin/src/index.ts";