@ryo-98/react-api-bridge
Version:
A registry for component imperative api
27 lines (26 loc) • 1.01 kB
TypeScript
import {BridgeAPIOptions} from "./options.js";
import {APIParams, ResolveAPI} from "./api.js";
import {BridgeRegistry} from "./bridge.js";
export type BoundaryContextValue<A extends APIParams, P = any, O extends BridgeAPIOptions<A> = BridgeAPIOptions<A>> = {
bridge: BridgeRegistry<A, O>;
parent?: BoundaryContextValue<A, P, O>;
payload: P;
};
export type BoundaryProps<A extends APIParams, P = any, O extends BridgeAPIOptions<A> = BridgeAPIOptions<A>> =
undefined extends P ? {
contextValue?: BoundaryContextValue<A, P, O>;
payload?: P;
} : (
| {
payload: P,
contextValue?: BoundaryContextValue<A, P, O>;
}
| {
contextValue: BoundaryContextValue<A, P, O>;
payload?: P,
});
export type BoundaryAPI<A extends APIParams, O extends BridgeAPIOptions<A> = BridgeAPIOptions<A>, P = any> = {
payload: P;
getAPI: <N extends keyof A>(name: N) => ResolveAPI<A, O, N>,
parent: BoundaryContextValue<A, P, O> | undefined,
}