|
|
|
|
|
|
|
|
|
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 |
|
} |
|
|