Skip to content

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

Released under the MIT License.