UNPKG

bknd

Version:

Lightweight Firebase/Supabase alternative built to run anywhere — incl. Next.js, React Router, Astro, Cloudflare, Bun, Node, AWS Lambda & more.

29 lines (28 loc) 1.3 kB
import type { Permission, PermissionContext } from "../../auth/authorize/Permission"; import type { Context, Hono } from "hono"; import type { RouterRoute } from "hono/types"; import type { ServerEnv } from "../../modules/Controller"; import type { MaybePromise } from "../../core/types"; declare const permissionSymbol: unique symbol; type PermissionMiddlewareOptions<P extends Permission<any, any, any, any>> = { onGranted?: (c: Context<ServerEnv>) => MaybePromise<Response | void | undefined>; onDenied?: (c: Context<ServerEnv>) => MaybePromise<Response | void | undefined>; } & (P extends Permission<any, any, infer PC, any> ? PC extends undefined ? { context?: never; } : { context: (c: Context<ServerEnv>) => MaybePromise<PermissionContext<P>>; } : { context?: never; }); export declare function permission<P extends Permission<any, any, any, any>>(permission: P, options: PermissionMiddlewareOptions<P>): import("hono").MiddlewareHandler<ServerEnv, string, {}, Response> & { [permissionSymbol]: { permission: P; options: PermissionMiddlewareOptions<P>; }; }; export declare function getPermissionRoutes(hono: Hono<any>): { route: RouterRoute; permission: Permission; options: PermissionMiddlewareOptions<Permission>; }[]; export {};