File size: 1,876 Bytes
4d70170 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
import type { Bridge } from '@vue-devtools/shared-utils'
import type {
CustomInspectorOptions,
ID,
TimelineEventOptions,
TimelineLayerOptions,
TimelineMarkerOptions,
WithId,
} from '@vue/devtools-api'
import type { AppRecord } from './app-record'
import type { Plugin } from './plugin'
import type { DevtoolsHook } from './global-hook'
import type { DevtoolsBackend } from './backend'
export interface BackendContext {
bridge: Bridge
hook: DevtoolsHook
backends: DevtoolsBackend[]
appRecords: AppRecord[]
currentTab: string
currentAppRecord: AppRecord
currentInspectedComponentId: string
plugins: Plugin[]
currentPlugin: Plugin
timelineLayers: TimelineLayer[]
nextTimelineEventId: number
timelineEventMap: Map<ID, TimelineEventOptions & WithId>
perfUniqueGroupId: number
customInspectors: CustomInspector[]
timelineMarkers: TimelineMarker[]
}
export interface TimelineLayer extends TimelineLayerOptions {
appRecord: AppRecord | null
plugin: Plugin
events: (TimelineEventOptions & WithId)[]
}
export interface TimelineMarker extends TimelineMarkerOptions {
appRecord: AppRecord | null
}
export interface CustomInspector extends CustomInspectorOptions {
appRecord: AppRecord
plugin: Plugin
treeFilter: string
selectedNodeId: string
}
export interface CreateBackendContextOptions {
bridge: Bridge
hook: DevtoolsHook
}
export function createBackendContext(options: CreateBackendContextOptions): BackendContext {
return {
bridge: options.bridge,
hook: options.hook,
backends: [],
appRecords: [],
currentTab: null,
currentAppRecord: null,
currentInspectedComponentId: null,
plugins: [],
currentPlugin: null,
timelineLayers: [],
nextTimelineEventId: 0,
timelineEventMap: new Map(),
perfUniqueGroupId: 0,
customInspectors: [],
timelineMarkers: [],
}
}
|