@rsc-labs/nocto-plugin-system
Version:
Pluggable registry system for Nocto plugins
26 lines (25 loc) • 794 B
TypeScript
import React from "react";
import { RouteObject } from "react-router-dom";
export type RouteEntry = {
path: string;
index?: boolean;
layout: "main" | "auth" | "settings" | "public";
element?: React.ReactNode;
errorElement?: React.ReactNode;
handle?: RouteObject["handle"];
lazy?: RouteObject["lazy"];
Component?: RouteObject["Component"];
loader?: RouteObject["loader"];
permissions?: string[];
children?: RouteEntry[];
};
type RouteMap = Map<string, RouteEntry[]>;
declare class PluginRouteRegistry {
private routesMap;
register(pluginId: string, route: RouteEntry | RouteEntry[]): void;
getMap(): RouteMap;
getAll(): RouteEntry[];
getPluginsIds(): string[];
}
export declare const RouteRegistry: PluginRouteRegistry;
export {};