UNPKG

permix

Version:

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

44 lines (40 loc) 1.72 kB
import { JSX } from 'solid-js'; import { P as PermixDefinition, a as Permix, f as CheckFunctionObject, b as PermixStateJSON, h as CheckFunctionParams, e as PermixRules } from '../shared/permix.CuefdCK4.js'; /** * Provider that provides the Permix context to your Solid components. * * @link https://permix.letstri.dev/docs/integrations/solid */ declare function PermixProvider<Permissions extends PermixDefinition>(props: { children: JSX.Element; permix: Permix<Permissions>; }): JSX.Element; declare function PermixHydrate(props: { children: JSX.Element; state: PermixStateJSON<any>; }): JSX.Element; type CheckProps<Permissions extends PermixDefinition, K extends keyof Permissions> = CheckFunctionObject<Permissions, K> & { children: JSX.Element; otherwise?: JSX.Element; reverse?: boolean; }; interface PermixComponents<Permissions extends PermixDefinition> { Check: <K extends keyof Permissions>(props: CheckProps<Permissions, K>) => JSX.Element; } declare function createComponents<Permissions extends PermixDefinition>(permix: Permix<Permissions>): PermixComponents<Permissions>; interface PermixContext<T extends PermixDefinition> { permix: Permix<T>; isReady: boolean; rules: PermixRules<T>; } /** * Hook that provides the Permix reactive methods to your Solid components. * * @link https://permix.letstri.dev/docs/integrations/solid */ declare function usePermix<T extends PermixDefinition>(permix: Permix<T>): { check: <K extends keyof T>(...args: CheckFunctionParams<T, K>) => boolean; isReady: () => any; }; export { PermixHydrate, PermixProvider, createComponents, usePermix }; export type { CheckProps, PermixComponents, PermixContext };