@lanaqi/rsr
Version:
102 lines (101 loc) • 2.3 kB
TypeScript
import { type AccessPermissions, type AccessResource, type ResourceLabels, type ResourcePatterns } from '../access';
import type { AccessBuilder } from './builder';
/**
* 访问资源配置
*/
export type AccessResourceConfig = {
/**
* 模式集合
*/
readonly patterns: ResourcePatterns;
/**
* 权限集合
*/
readonly permissions: AccessPermissions;
/**
* 标签集合
*/
readonly labels?: ResourceLabels;
/**
* 基础路径
*/
readonly basename?: string;
};
/**
* 访问资源配置集合
*/
export type AccessResourceConfigs = AccessResourceConfig[];
/**
* 访问资源构建器
*/
export declare class AccessResourceBuilder implements AccessBuilder<AccessResource> {
/**
* 模式集合
* @private
*/
private readonly _patterns;
/**
* 权限集合
* @private
*/
private readonly _permissions;
/**
* 标签集合
* @private
*/
private readonly _labels;
/**
* 基础路径
* @private
*/
private _basename?;
/**
* 添加模式集合
* @param patterns 模式集合
*/
patterns(...patterns: ResourcePatterns): AccessResourceBuilder;
/**
* 添加权限集合
* @param permissions 权限集合
*/
permissions(...permissions: AccessPermissions): AccessResourceBuilder;
/**
* 添加标签集合
* @param labels 标签集合
*/
labels(...labels: ResourceLabels): AccessResourceBuilder;
/**
* 标记匿名的权限
*/
anonymous(): AccessResourceBuilder;
/**
* 标记已认证权限
*/
authenticated(): AccessResourceBuilder;
/**
* 标记已授权权限
*/
authorized(): AccessResourceBuilder;
/**
* 标记已签名标签
*/
signatured(): AccessResourceBuilder;
/**
* 标记始终签名标签
*/
alwaysSignature(): AccessResourceBuilder;
/**
* 设置基础路径
* @param basename 基础路径
*/
basename(basename: string): AccessResourceBuilder;
/**
* 通过配置添加相关
* @param config 资源配置
*/
config(config: AccessResourceConfig): AccessResourceBuilder;
/**
* 构建
*/
build(): AccessResource;
}