basalt / permissions/src / canResource
Function: canResource()
> canResource<TResource>(permission?): TResource
Defined in: permissions/src/index.ts:1268
The resource the meta.can guard loaded for this request, so the handler does not load it a second time:
ts
route({
method: 'PATCH', url: '/projects/:id', params: z.object({ id: z.string() }),
meta: { can: { permission: 'projects:update', resource: ({ params }) => projects.find(params.id) } },
handler: ({ body }) => projects.update(canResource<Project>(), body),
})Pass the permission when the route declares several requirements whose loaders return different resources. Throws CanResourceUnavailableError when the guard resolved none — a route without a resource requirement, or code running outside the request.
Type Parameters
TResource
TResource = unknown
Parameters
permission?
string
Returns
TResource