@web-widget/web-widget
Version:
Web front-end application container
32 lines (29 loc) • 1.14 kB
TypeScript
import { SerializableValue, ServerWidgetModule, ClientWidgetModule, Meta } from '@web-widget/helpers';
interface SerializableObject {
[key: string]: SerializableValue;
}
type Loader = () => Promise<ServerWidgetModule | ClientWidgetModule>;
interface WebWidgetElementProps {
base?: string;
data?: SerializableObject;
import?: string;
inactive?: boolean;
loading?: 'lazy' | 'eager' | 'idle';
meta?: Meta;
name?: string;
renderTarget?: 'light' | 'shadow';
}
interface WebWidgetRendererOptions extends WebWidgetElementProps {
children?: string;
renderStage?: 'server' | 'client';
}
interface WebWidgetRendererInterface {
localName: string;
attributes: Record<string, string>;
renderInnerHTMLToString(): Promise<string>;
renderOuterHTMLToString(): Promise<string>;
}
interface WebWidgetRendererConstructor {
new (loader: Loader, options: WebWidgetRendererOptions): WebWidgetRendererInterface;
}
export type { Loader as L, SerializableObject as S, WebWidgetRendererConstructor as W, WebWidgetElementProps as a, WebWidgetRendererOptions as b, WebWidgetRendererInterface as c };