| |
| |
| |
| |
| declare module 'eruda' { |
| export interface InitDefaults { |
| |
| |
| |
| transparency?: number |
| |
| |
| |
| displaySize?: number |
| |
| |
| |
| theme?: string |
| } |
|
|
| export interface InitOptions { |
| |
| |
| |
| container?: HTMLElement |
| |
| |
| |
| tool?: string[] |
| |
| |
| |
| autoScale?: boolean |
| |
| |
| |
| useShadowDom?: boolean |
| |
| |
| |
| inline?: boolean |
| |
| |
| |
| defaults?: InitDefaults |
| } |
|
|
| export interface Position { |
| x: number |
| y: number |
| } |
|
|
| type AnyFn = (...args: any[]) => any |
|
|
| export interface Emitter { |
| on(event: string, listener: AnyFn): Emitter |
| off(event: string, listener: AnyFn): Emitter |
| once(event: string, listener: AnyFn): Emitter |
| emit(event: string, ...args: any[]): Emitter |
| removeAllListeners(event?: string): Emitter |
| } |
|
|
| |
| |
| |
| |
| export interface Tool { |
| |
| |
| |
| name: string |
| |
| |
| |
| |
| init(el: unknown): void |
| |
| |
| |
| show(): Tool | undefined |
| |
| |
| |
| hide(): Tool | undefined |
| |
| |
| |
| destroy(): void |
| } |
|
|
| export interface ToolConstructor { |
| new (): Tool |
| readonly prototype: Tool |
|
|
| extend(tool: Tool): ToolConstructor |
| } |
|
|
| export interface ConsoleConfig { |
| |
| |
| |
| asyncRender?: boolean |
| |
| |
| |
| jsExecution?: boolean |
| |
| |
| |
| catchGlobalErr?: boolean |
| |
| |
| |
| overrideConsole?: boolean |
| |
| |
| |
| displayExtraInfo?: boolean |
| |
| |
| |
| displayUnenumerable?: boolean |
| |
| |
| |
| displayGetterVal?: boolean |
| |
| |
| |
| lazyEvaluation?: boolean |
| |
| |
| |
| displayIfErr?: boolean |
| |
| |
| |
| maxLogNum?: string |
| } |
|
|
| export interface Log { |
| type: string |
| } |
|
|
| export interface ErudaConsole extends Tool, Console { |
| config: { |
| set<K extends keyof ConsoleConfig>(name: K, value: ConsoleConfig[K]): void |
| } |
| |
| |
| |
| filter(pattern: string | RegExp | ((log: Log) => boolean)): void |
| |
| |
| |
| html(htmlStr: string): void |
| } |
|
|
| export interface ErudaConsoleConstructor { |
| new (): ErudaConsole |
| readonly prototype: ErudaConsole |
| } |
|
|
| export interface ElementsConfig { |
| |
| |
| |
| overrideEventTarget?: boolean |
| |
| |
| |
| observeElement?: boolean |
| } |
|
|
| export interface Elements extends Tool { |
| config: { |
| set<K extends keyof ElementsConfig>( |
| name: K, |
| value: ElementsConfig[K] |
| ): void |
| } |
| |
| |
| |
| select(el: HTMLElement): void |
| } |
|
|
| export interface ElementsConstructor { |
| new (): Elements |
| readonly prototype: Elements |
| } |
|
|
| export interface Network extends Tool { |
| |
| |
| |
| clear(): void |
| |
| |
| |
| requests(): object[] |
| } |
|
|
| export interface NetworkConstructor { |
| new (): Network |
| readonly prototype: Network |
| } |
|
|
| export interface ResourcesConfig { |
| |
| |
| |
| hideErudaSetting?: boolean |
| |
| |
| |
| observeElement?: boolean |
| } |
|
|
| export interface Resources extends Tool { |
| config: { |
| set<K extends keyof ResourcesConfig>( |
| name: K, |
| value: ResourcesConfig[K] |
| ): void |
| } |
| } |
|
|
| export interface ResourcesConstructor { |
| new (): Resources |
| readonly prototype: Resources |
| } |
|
|
| export interface SourcesConfig { |
| |
| |
| |
| showLineNum?: boolean |
| |
| |
| |
| formatCode?: boolean |
| |
| |
| |
| indentSize?: string |
| } |
|
|
| export interface Sources extends Tool { |
| config: { |
| set<K extends keyof SourcesConfig>(name: K, value: SourcesConfig[K]): void |
| } |
| } |
|
|
| export interface SourcesConstructor { |
| new (): Sources |
| readonly prototype: Sources |
| } |
|
|
| export interface InfoItem { |
| name: string |
| val: string |
| } |
|
|
| export interface Info extends Tool { |
| |
| |
| |
| clear(): void |
| |
| |
| |
| add(name: string, content: string | (() => void)): void |
| |
| |
| |
| get(): InfoItem[] |
| get(name: string): string |
| |
| |
| |
| remove(name: string): void |
| } |
|
|
| export interface InfoConstructor { |
| new (): Info |
| readonly prototype: Info |
| } |
|
|
| export interface Snippets extends Tool { |
| |
| |
| |
| clear(): void |
| |
| |
| |
| |
| |
| |
| add(name: string, fn: Function, desc: string): void |
| |
| |
| |
| |
| remove(name: string): void |
| |
| |
| |
| |
| run(name: string): void |
| } |
|
|
| export interface SnippetsConstructor { |
| new (): Snippets |
| readonly prototype: Snippets |
| } |
|
|
| export interface SettingsRangeOptions { |
| min?: number |
| max?: number |
| step?: number |
| } |
|
|
| export interface Settings extends Tool { |
| |
| |
| |
| clear(): void |
| |
| |
| |
| |
| |
| remove(cfj: object, name: string): void |
| |
| |
| |
| text(str: string): void |
| |
| |
| |
| |
| |
| |
| switch(cfg: object, name: string, desc: string): void |
| |
| |
| |
| |
| |
| |
| |
| select(cfg: object, name: string, desc: string, values: string[]): void |
| |
| |
| |
| |
| |
| |
| |
| range( |
| cfg: object, |
| name: string, |
| desc: string, |
| options?: SettingsRangeOptions |
| ): void |
| |
| |
| |
| separator(): void |
| } |
|
|
| export interface SettingsConstructor { |
| new (): Settings |
| readonly prototype: Settings |
| } |
|
|
| export interface EntryBtn extends Emitter { |
| show(): void |
| hide(): void |
| getPos(): Position |
| setPos(pos: Position): void |
| destroy(): void |
| } |
|
|
| export interface EntryBtnConstructor { |
| new (): EntryBtn |
| readonly prototype: EntryBtn |
| } |
|
|
| export interface DevTools extends Emitter { |
| show(): DevTools |
| hide(): DevTools |
| toggle(): void |
| add(tool: Tool | object): DevTools |
| remove(name: string): DevTools |
| removeAll(): DevTools |
| get<T extends ToolConstructor>(name: string): InstanceType<T> | undefined |
| showTool(name: string): DevTools |
| initCfg(settings: Settings): void |
| notify(content: string, options: object): void |
| destroy(): void |
| } |
|
|
| export interface DevToolsConstructor { |
| new (): DevTools |
| readonly prototype: DevTools |
| } |
|
|
| |
| |
| |
| |
| export interface Util { |
| evalCss(css: string): HTMLStyleElement |
| isErudaEl(val: any): boolean |
| isDarkTheme(theme?: string): boolean |
| getTheme(): string |
| } |
|
|
| interface IToolNameMap { |
| console: InstanceType<ErudaConsoleConstructor> |
| elements: InstanceType<ElementsConstructor> |
| info: InstanceType<InfoConstructor> |
| network: InstanceType<NetworkConstructor> |
| resources: InstanceType<ResourcesConstructor> |
| settings: InstanceType<SettingsConstructor> |
| snippets: InstanceType<SnippetsConstructor> |
| sources: InstanceType<SourcesConstructor> |
| entryBtn: InstanceType<EntryBtnConstructor> |
| } |
|
|
| |
| |
| |
| |
| export interface ErudaApis { |
| |
| |
| |
| init(options?: InitOptions): void |
| |
| |
| |
| |
| destroy(): void |
| |
| |
| |
| scale(): number |
| scale(s: number): Eruda |
| |
| |
| |
| |
| position(): Position |
| position(p: Position): Eruda |
| |
| |
| |
| get<K extends keyof IToolNameMap>(name: K): IToolNameMap[K] |
| get<T extends ToolConstructor>(name: string): InstanceType<T> | undefined |
| get(): InstanceType<DevToolsConstructor> |
| |
| |
| |
| add<T extends ToolConstructor>( |
| tool: InstanceType<T> | ((eruda: Eruda) => InstanceType<T>) |
| ): Eruda | undefined |
| |
| |
| |
| remove(name: string): Eruda | undefined |
| |
| |
| |
| show(name?: string): Eruda | undefined |
| |
| |
| |
| hide(): Eruda | undefined |
| } |
|
|
| export interface Eruda extends ErudaApis { |
| |
| |
| |
| Console: ErudaConsoleConstructor |
| |
| |
| |
| Elements: ElementsConstructor |
| |
| |
| |
| |
| Info: InfoConstructor |
| |
| |
| |
| Network: NetworkConstructor |
| |
| |
| |
| Resources: ResourcesConstructor |
| |
| |
| |
| Settings: SettingsConstructor |
| |
| |
| |
| Snippets: SnippetsConstructor |
| |
| |
| |
| Sources: SourcesConstructor |
| |
| |
| |
| Tool: ToolConstructor |
| |
| |
| |
| util: Util |
| |
| |
| |
| readonly version: string |
| } |
|
|
| const eruda: Eruda |
|
|
| export default eruda |
| } |
|
|