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
TypeScript
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 };