blob: e0cb0c9bd65df8838917ba2027adea8c03807174 [file] [log] [blame]
/// <reference types="node" />
/**
* trace-event - A library to create a trace of your node app per
* Google's Trace Event format:
* // JSSTYLED
* https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU
*/
import { Readable as ReadableStream } from "stream";
export interface Event {
ts: number;
pid: number;
tid: number;
/** event phase */
ph?: string;
[otherData: string]: any;
}
export interface Fields {
cat?: any;
args?: any;
[filedName: string]: any;
}
export interface TracerOptions {
parent?: Tracer | null;
fields?: Fields | null;
objectMode?: boolean | null;
noStream?: boolean;
}
export declare class Tracer extends ReadableStream {
private _objectMode;
/** Node Stream internal APIs */
private _push;
private firstPush?;
private noStream;
private events;
private parent;
private fields;
constructor(opts?: TracerOptions);
/**
* If in no streamMode in order to flush out the trace
* you need to call flush.
*/
flush(): void;
_read(_: number): void;
private _pushString(ev);
private _flush();
child(fields: Fields): Tracer;
begin(fields: Fields): void;
end(fields: Fields): void;
completeEvent(fields: Fields): void;
instantEvent(fields: Fields): void;
mkEventFunc(ph: string): (fields: Fields) => void;
}