UNPKG

logkitten

Version:

Stream Android and iOS logs without Android Studio or Console.app, with programmatic Node.js API for log analysis.

44 lines 1.68 kB
/// <reference types="node" /> /// <reference types="node" /> /// <reference types="node" /> /// <reference types="node" /> import type { ChildProcess } from 'child_process'; import type { EventEmitter } from 'events'; export interface Entry { /** Message content */ msg: string; /** Timestamp in milliseconds */ ts: number; /** Process ID */ pid: number; /** Thread ID */ tid: number; /** Priority/log level */ level: number; } export type Runner<O> = (options: O) => ChildProcess; export type Parser<E extends Entry = Entry> = (message: string | Buffer, stderr: boolean) => E[]; export type Filter<E extends Entry = Entry> = (entry: E) => boolean; export interface PlatformDriver<E extends Entry = Entry> { name: string; process: ChildProcess; parse: Parser<E>; filter?: Filter<E>; } export type PlatformFactory<E extends Entry = Entry, O extends Record<string, any> = any> = (options: O) => PlatformDriver<E>; export interface Options<E extends Entry = Entry> { platform: PlatformFactory<E>; filter?: Filter<E>; } export interface Emitter<E extends Entry = Entry> extends EventEmitter { on(event: 'entry', listener: (entry: E) => void): this; on(event: 'error', listener: (error: Error) => void): this; on(event: 'close', listener: () => void): this; on(event: string | symbol, listener: (...args: any[]) => void): this; emit(event: 'entry', entry: E): boolean; emit(event: 'error', error: Error): boolean; emit(event: 'close'): boolean; emit(event: string | symbol, ...args: any[]): boolean; close(cb?: (err?: Error) => void): Promise<void>; } //# sourceMappingURL=types.d.ts.map