@nangazaki/vue-rbac
Version:
Role-Based Access Control (RBAC) implementation for Vue.js
21 lines (20 loc) • 858 B
TypeScript
import { type RBACConfig } from "../types/index";
/**
* Validates the RBAC configuration object.
*
* @param config - Partial configuration object to validate
* @throws {Error} When mode is invalid (must be 'static', 'dynamic' or 'hybrid')
* @throws {Error} When permissions for a role is not an array
* @throws {Error} When role inheritance is not an array
* @throws {Error} When inherited role doesn't exist in config
* @returns {RBACConfig} Validated configuration object
*
* @remarks
* This function performs several validations:
* - Validates mode is one of: static, dynamic, or hybrid
* - Warns if apiEndpoint is missing for dynamic/hybrid modes
* - Validates roles structure including:
* - Permissions array format
* - Role inheritance references
*/
export declare function validateConfig(config: Partial<RBACConfig>): RBACConfig;