@margelo/hermes-profile-transformer
Version:
<h1 align="center"> Hermes Profile Transformer </h1>
193 lines (162 loc) • 4.16 kB
text/typescript
import { EventsPhase } from './Phases';
// All of the event types in this module are not currently
// being used, but they are included here for completeness
// for future implementers
export interface SharedEventProperties {
/**
* name of the event
*/
name?: string;
/**
* event category
*/
cat?: string;
/**
* tracing clock timestamp
*/
ts?: number;
/**
* process ID
*/
pid?: number;
/**
* thread ID
*/
tid?: number;
/**
* event type (phase)
*/
ph: EventsPhase;
/**
* id for a stackFrame object
*/
sf?: number;
/**
* thread clock timestamp
*/
tts?: number;
/**
* a fixed color name
*/
cname?: string;
/**
* event arguments
*/
args?: {
[key in string]: any;
};
}
interface DurationEventBegin extends SharedEventProperties {
ph: EventsPhase.DURATION_EVENTS_BEGIN;
}
interface DurationEventEnd extends SharedEventProperties {
ph: EventsPhase.DURATION_EVENTS_END;
}
export type DurationEvent = DurationEventBegin | DurationEventEnd;
export interface CompleteEvent extends SharedEventProperties {
ph: EventsPhase.COMPLETE_EVENTS;
dur: number;
}
export interface MetadataEvent extends SharedEventProperties {
ph: EventsPhase.METADATA_EVENTS;
}
export interface SampleEvent extends SharedEventProperties {
ph: EventsPhase.SAMPLE_EVENTS;
}
interface ObjectEventCreated extends SharedEventProperties {
ph: EventsPhase.OBJECT_EVENTS_CREATED;
scope?: string;
}
interface ObjectEventSnapshot extends SharedEventProperties {
ph: EventsPhase.OBJECT_EVENTS_SNAPSHOT;
scope?: string;
}
interface ObjectEventDestroyed extends SharedEventProperties {
ph: EventsPhase.OBJECT_EVENTS_DESTROYED;
scope?: string;
}
export type ObjectEvent =
| ObjectEventCreated
| ObjectEventSnapshot
| ObjectEventDestroyed;
export interface ClockSyncEvent extends SharedEventProperties {
ph: EventsPhase.CLOCK_SYNC_EVENTS;
args: {
sync_id: string;
issue_ts?: number;
};
}
interface ContextEventEnter extends SharedEventProperties {
ph: EventsPhase.CONTEXT_EVENTS_ENTER;
}
interface ContextEventLeave extends SharedEventProperties {
ph: EventsPhase.CONTEXT_EVENTS_LEAVE;
}
export type ContextEvent = ContextEventEnter | ContextEventLeave;
interface AsyncEventStart extends SharedEventProperties {
ph: EventsPhase.ASYNC_EVENTS_NESTABLE_START;
id: number;
scope?: string;
}
interface AsyncEventInstant extends SharedEventProperties {
ph: EventsPhase.ASYNC_EVENTS_NESTABLE_INSTANT;
id: number;
scope?: string;
}
interface AsyncEventEnd extends SharedEventProperties {
ph: EventsPhase.ASYNC_EVENTS_NESTABLE_END;
id: number;
scope?: string;
}
export type AsyncEvent = AsyncEventStart | AsyncEventInstant | AsyncEventEnd;
export interface InstantEvent extends SharedEventProperties {
ph: EventsPhase.INSTANT_EVENTS;
s: string;
}
export interface CounterEvent extends SharedEventProperties {
ph: EventsPhase.COUNTER_EVENTS;
}
interface FlowEventStart extends SharedEventProperties {
ph: EventsPhase.FLOW_EVENTS_START;
}
interface FlowEventStep extends SharedEventProperties {
ph: EventsPhase.FLOW_EVENTS_STEP;
}
interface FlowEventEnd extends SharedEventProperties {
ph: EventsPhase.FLOW_EVENTS_END;
}
export type FlowEvent = FlowEventStart | FlowEventStep | FlowEventEnd;
interface MemoryDumpGlobal extends SharedEventProperties {
ph: EventsPhase.MEMORY_DUMP_EVENTS_GLOBAL;
id: string;
}
interface MemoryDumpProcess extends SharedEventProperties {
ph: EventsPhase.MEMORY_DUMP_EVENTS_PROCESS;
id: string;
}
export type MemoryDumpEvent = MemoryDumpGlobal | MemoryDumpProcess;
export interface MarkEvent extends SharedEventProperties {
ph: EventsPhase.MARK_EVENTS;
}
export interface LinkedIDEvent extends SharedEventProperties {
ph: EventsPhase.LINKED_ID_EVENTS;
id: number;
args: {
linked_id: number;
};
}
export type Event =
| DurationEvent
| CompleteEvent
| MetadataEvent
| SampleEvent
| ObjectEvent
| ClockSyncEvent
| ContextEvent
| AsyncEvent
| InstantEvent
| CounterEvent
| FlowEvent
| MemoryDumpEvent
| MarkEvent
| LinkedIDEvent;