UNPKG

@lanaqi/rsr

Version:
113 lines (112 loc) 3.11 kB
import { type AccessContext, type AccessMatcher, type AccessNavigator, type AccessRecorder, type AccessResource, type AccessStorer, type AccessValidator, type AccessVoter } from '../access'; import type { NavigateFunction } from '../bridge'; import type { AccessBuilder } from './builder'; import { AccessMatcherBuilder } from './matcher'; import { AccessNavigatorBuilder } from './navigator'; import { AccessRecorderBuilder } from './recorder'; import { AccessResourceBuilder } from './resource'; import { AccessStorerBuilder } from './storer'; import { AccessVoterBuilder } from './voter'; /** * 访问上下文构建器 */ export declare class AccessContextBuilder implements AccessBuilder<AccessContext> { /** * 记录器 * @private */ private _recorder?; /** * 投票器 * @private */ private _voter?; /** * 存储器 * @private */ private _storer?; /** * 匹配器 * @private */ private _matcher?; /** * 导航器 * @private */ private _navigator?; /** * 层级 * @private */ private _hierarchy?; /** * 认证验证器 * @private */ private _validator?; /** * 资源集合 * @private */ private readonly _resources; /** * 导航函数 * @private */ private _navigate?; /** * 设置记录器 * @param recorder 记录器 */ recorder(recorder: AccessRecorder | ((builder: AccessRecorderBuilder) => AccessRecorder)): AccessContextBuilder; /** * 设置投票器 * @param voter 投票器或投票构建器 */ voter(voter: AccessVoter | ((builder: AccessVoterBuilder) => AccessVoter)): AccessContextBuilder; /** * 设置存储器 * @param storer 存储器或存储构建器 */ storer(storer: AccessStorer | ((builder: AccessStorerBuilder) => AccessStorer)): AccessContextBuilder; /** * 设置匹配器 * @param matcher 匹配器或匹配构建器 */ matcher(matcher: AccessMatcher | ((builder: AccessMatcherBuilder) => AccessMatcher)): AccessContextBuilder; /** * 设置导航器 * @param navigator 导航器或导航构建器 */ navigator(navigator: AccessNavigator | ((builder: AccessNavigatorBuilder) => AccessNavigator)): AccessContextBuilder; /** * 设置层级 * @param hierarchy 层级:a>b;b>c;c>d;e>f;f>g */ hierarchy(hierarchy: string): AccessContextBuilder; /** * 设置认证验证器 * @param validator 认证验证器 */ validator(validator: AccessValidator): AccessContextBuilder; /** * 添加资源 * @param builder 资源构建器 */ resource(builder: (builder: AccessResourceBuilder) => AccessResource): AccessContextBuilder; /** * 设置导航函数 * @param navigate 导航函数 */ navigate(navigate: NavigateFunction): AccessContextBuilder; /** * 默认资源集合 */ drs(): AccessContextBuilder; /** * 构建 */ build(): AccessContext; }