UNPKG

permix

Version:

Permix is a lightweight, framework-agnostic, type-safe permissions management library for JavaScript applications on the client and server sides.

31 lines (28 loc) 1.27 kB
import { Context } from 'elysia'; import { P as PermixDefinition, C as CheckContext, e as PermixRules, a as Permix, h as CheckFunctionParams } from '../shared/permix.CuefdCK4.mjs'; import { M as MaybePromise } from '../shared/permix.BDsgFWDK.mjs'; interface ElysiaContext { context: Context; } interface PermixOptions<T extends PermixDefinition> { /** * Custom error handler */ onForbidden?: (params: CheckContext<T> & ElysiaContext) => MaybePromise<any>; } /** * Create a middleware function that checks permissions for Elysia routes. * * @link https://permix.letstri.dev/docs/integrations/elysia */ declare function createPermix<Definition extends PermixDefinition>({ onForbidden, }?: PermixOptions<Definition>): { derive: (rules: PermixRules<Definition>) => { permix: Pick<Permix<Definition>, "check" | "dehydrate">; }; checkHandler: <K extends keyof Definition>(...params: CheckFunctionParams<Definition, K>) => (context: Context & { permix: Pick<Permix<Definition>, "check" | "dehydrate">; }) => Promise<any>; template: <T = void>(rules: PermixRules<Definition> | ((param: T) => PermixRules<Definition>)) => (param: T) => PermixRules<Definition>; }; export { createPermix }; export type { PermixOptions };