UNPKG

@feroomjs/shared-menu

Version:
138 lines (121 loc) 3.78 kB
/// <reference types="node" /> import EventEmitter from 'events'; import { Plugin as Plugin_2 } from 'rollup'; declare class FeRegistry<CFG extends object = object> extends EventEmitter { normalizeModuleData(data: Partial<TModuleData<CFG>>): TModuleData<CFG>; registerModule(data: Partial<TModuleData<CFG>>): { files: string[]; id: string; version: string; entry: string; source: string; config: TFeRoomConfig<CFG>; activate?: boolean | undefined; }; registerFromNpm(npmData: TNpmModuleData<CFG>): Promise<"Module alread exists" | { files: string[]; id: string; version: string; entry: string; source: string; config: TFeRoomConfig<CFG>; activate?: boolean | undefined; }>; readModule(id: string, version?: string): TModuleData<CFG>; exists(id: string, version?: string): boolean; getActiveVersion(id: string): string; getModulesList(): string[]; getAllModules(): TModuleData<CFG>[]; } export declare class SharedMenuController { protected _registry: FeRegistry; constructor(_registry: FeRegistry); getModuleMenu(module: TModuleData<TSharedMenuCfg>): TSharedMenu; menu(): string; } declare interface TFeRoomConfig<EXT extends object = TFeRoomExtionsOptionsAll> { registerOptions?: TFeRoomRegisterOptions; buildOptions?: TFeRoomRollupOptions; extensions?: EXT; } declare interface TFeRoomExtionsOptionsAll { sharedMenu?: object; vueRoutes?: object[]; } declare interface TFeRoomRegisterOptions { id?: string; entry?: string; label?: string; description?: string; include?: string[]; exclude?: string[]; preloadEntry?: boolean | 'head' | 'body:first' | 'body:last'; preloadScripts?: string | string[]; preloadCss?: string | string[]; appendHead?: string; appendBody?: string; globals?: object; lockDependency?: { [name: string]: string; }; importNpmDependencies?: { [name: string]: TNpmModuleData; }; } declare interface TFeRoomRollupOptions { input?: string; ts?: boolean | object; vue?: boolean | object; css?: string | object; nodeResolve?: object; dependencies?: { bundle?: string[]; lockVersion?: string[]; }; feroomConfPath?: string; output?: string; plugins?: Plugin_2[]; } export declare interface TMenuItem { icon?: string; route?: string; children?: Record<string, TMenuItem>; description?: string; params?: Record<string, string>; } declare interface TModuleData<EXT extends object = object> { id: string; version: string; files: Record<string, string | { type: 'Buffer'; data: number[]; }>; entry: string; source: string; config: TFeRoomConfig<EXT>; activate?: boolean; } declare type TNpmModuleData<EXT extends object = object> = { registry?: string; name: string; version?: string; rebuildIfExists?: boolean; } & Partial<TModuleData<EXT>>; export declare type TSharedMenu = Record<string, TMenuItem>; export declare interface TSharedMenuCfg { sharedMenu?: TSharedMenu; } export { } // FeRoom dynamic module "@feroom-dynamic/shared-menu" declare module '@feroom-dynamic/shared-menu' { export interface TMenuItem { icon?: string route?: string children?: Record<string, TMenuItem> description?: string params?: Record<string, string> } export type TSharedMenu = Record<string, TMenuItem> export const sharedMenu: TSharedMenu export default sharedMenu }