@feroomjs/shared-menu
Version:
@feroomjs/shared-menu
138 lines (121 loc) • 3.78 kB
TypeScript
/// <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
}