(u: unknown): u is RequestResolver<any>Returns true if the specified value is a RequestResolver, false otherwise.
When to use
Use to narrow unknown values before passing them to APIs that require a
RequestResolver.
export const const isRequestResolver: (
u: unknown
) => u is RequestResolver<any>
Returns true if the specified value is a RequestResolver, false otherwise.
When to use
Use to narrow unknown values before passing them to APIs that require a
RequestResolver.
isRequestResolver = (u: unknownu: unknown): u: unknownu is interface RequestResolver<in A extends Request.Any>A resolver that executes and completes batched Request entries.
Details
A resolver controls how requests are grouped, delayed, optionally
pre-checked, and finally run. Its runAll method receives a non-empty batch
of Request.Entry values for a single batch key and must complete every
received entry, usually by calling completeUnsafe or one of the Request
completion helpers.
Gotchas
If a resolver finishes without completing an entry, the waiting request fails
because the resolver did not supply a result.
Example (Defining a request resolver)
import { Effect, Exit, RequestResolver } from "effect"
import type { Request } from "effect"
interface GetUserRequest extends Request.Request<string, Error> {
readonly _tag: "GetUserRequest"
readonly id: number
}
// In practice, you would typically use RequestResolver.make() instead
const resolver = RequestResolver.make<GetUserRequest>((entries) =>
Effect.sync(() => {
for (const entry of entries) {
entry.completeUnsafe(Exit.succeed(`User ${entry.request.id}`))
}
})
)
Namespace containing type-level helpers associated with RequestResolver.
RequestResolver<any> => import hasPropertyhasProperty(u: unknownu, const TypeId: "~effect/RequestResolver"TypeId)