API Reference
This page lists the public API exported by react-ability-kit.
Package Exports
export * from "./factory";
export * from "./react-typed";
Factory API
createAbilityKit<Actions, SubjectsMap>()
Creates a typed ability toolkit and returns:
defineRules(builder)createAbility(rules)
defineRules(builder)
Builds a typed list of authorization rules.
defineRules((allow, deny) => {
allow("read", "Invoice");
deny("delete", "Invoice");
});
Parameters:
builder: callback with:allow(action, subject, when?)deny(action, subject, when?)
createAbility(rules)
Creates an ability instance with:
can(action, subject, obj?) => boolean
Types
Condition<SubjectsMap, S>
Predicate used for conditional rules.
type Condition<SubjectsMap, S extends keyof SubjectsMap> = (
obj: SubjectsMap[S]
) => boolean;
Rule<Actions, SubjectsMap, S>
Represents a single permission rule.
Fields:
actionsubjectwhen?inverted?(truefor deny rules)
Ability<Actions, SubjectsMap>
Ability object shape:
can(action, subject, obj?) => boolean
React API
createReactAbilityKit<Actions, SubjectsMap>()
Creates typed React bindings and returns:
AbilityProvideruseAbilityCan
AbilityProvider
Context provider that makes an ability instance available to descendants.
Props:
abilitychildren
useAbility()
React hook that returns the current ability instance.
Throws if used outside AbilityProvider.
Can
Conditional rendering component for permission checks.
Props:
I: actiona: subjectthis?: subject instance for conditional checksfallback?: rendered when not allowedchildren: rendered when allowed