feroom
Version:
132 lines (113 loc) • 3.42 kB
TypeScript
/// <reference types="node" />
import { Plugin as Plugin_2 } from 'rollup';
export declare const cli: () => void;
export declare type TClassConstructor<T = unknown> = new (...args: any[]) => T;
export declare interface TFeRoomConfig<EXT extends object = TFeRoomExtensionsOptionsAll> {
devServer?: TFeRoomDevServerOptions;
registerOptions?: TFeRoomRegisterOptions;
buildOptions?: TFeRoomRollupOptions;
extensions?: EXT;
}
export declare interface TFeRoomDevServerOptions {
port?: number;
shared?: string;
feroom?: TFeRoomServerOptions;
ext?: (TClassConstructor<TFeRoomExtension> | TFeRoomExtension)[];
}
export declare interface TFeRoomExtension {
injectGlobals?(): Record<string, unknown>;
injectImportMap?(): Record<string, string>;
injectHead?(): string;
injectIndexBody?(): string;
}
export declare type TFeRoomExtensionsOptionsAll = TSharedMenuCfg & TVueRoutesCfg;
export 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;
};
}
export declare interface TFeRoomRollupOptions {
input?: string;
ts?: boolean | object;
vue?: boolean | object;
css?: string | object;
nodeResolve?: object;
dependencies?: {
bundle?: string[];
lockVersion?: string[];
};
output?: string;
plugins?: Plugin_2[];
}
export declare interface TFeRoomServerOptions {
modulesPrefixPath?: string;
globals?: object;
title?: string;
preloadCss?: (string | [string, string])[];
preloadScript?: (string | [string, string])[];
preloadModule?: string[];
body?: string;
head?: string;
importMap?: {
[name: string]: string;
};
importNpmDependencies?: {
[name: string]: TNpmModuleData;
};
}
export declare interface TMenuItem {
icon?: string;
route?: string;
children?: Record<string, TMenuItem>;
description?: string;
params?: Record<string, string>;
}
export declare interface TModuleData<EXT extends object = object> {
id: string;
version: string;
files: Record<string, string | {
type: 'Buffer';
data: number[];
} | Buffer>;
entry: string;
source: string;
config: TFeRoomConfig<EXT>;
activate?: boolean;
}
export declare type TNpmModuleData<EXT extends object = object> = {
registry?: string;
name?: string;
version?: string;
forceRegister?: boolean;
activateIfNewer?: boolean;
} & Partial<TModuleData<EXT>>;
export declare type TSharedMenu = Record<string, TMenuItem>;
export declare interface TSharedMenuCfg {
sharedMenu?: TSharedMenu;
}
export declare interface TVueRoute {
path: string;
component?: string;
children?: TVueRoute[];
name?: string;
props?: boolean;
}
export declare interface TVueRoutesCfg {
vueRoutes?: TVueRoute[];
}
export { }