@kilpi/react-client
Version:
Kilpi React Client Components · Kilpi is the authorization framework for full-stack TypeScript applications, designed for flexible, powerful, agnostic, intuitive and developer friendly authorization.
28 lines (25 loc) • 990 B
text/typescript
import type { AnyKilpiClient } from "@kilpi/client";
import type { PolicysetActions } from "@kilpi/core";
import { type UseAuthorizeOptions, type UseAuthorizeReturn } from "./hooks/useAuthorize";
/**
* The type of a KilpiClientPolicy extension.
*/
export interface KilpiClientPolicyExtension_ReactClientPlugin<
TClient extends AnyKilpiClient,
TAction extends PolicysetActions<TClient["$$infer"]["policies"]>,
> {
/**
* Extend policies with a useAuthorize hook for usage in client-side React components.
*/
useAuthorize(options?: UseAuthorizeOptions): UseAuthorizeReturn<TClient, TAction>;
}
/**
* Augment KilpiClientPolicy with extension.
*/
declare module "@kilpi/client" {
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
export interface IKilpiClientPolicy<
TClient extends AnyKilpiClient,
TAction extends PolicysetActions<TClient["$$infer"]["policies"]>,
> extends KilpiClientPolicyExtension_ReactClientPlugin<TClient, TAction> {}
}