UNPKG

@lynx-js/types

Version:

@lynx-js/types is a type package of all public APIs officially provided by the Lynx team. Using this package can help you better use Lynx APIs to develop your applications.

154 lines (135 loc) 4.14 kB
// Copyright 2024 The Lynx Authors. All rights reserved. // Licensed under the Apache License Version 2.0 that can be found in the // LICENSE file in the root directory of this source tree. export interface PerformanceEntry { name: string; entryType: string; } export interface FrameworkRenderingTiming { vmExecuteStart: number; vmExecuteEnd: number; dataProcessorStart: number; dataProcessorEnd: number; setInitDataStart: number; setInitDataEnd: number; } export interface FrameworkRenderingTimings { } export interface PipelineEntry extends PerformanceEntry { identifier: string; pipelineStart: number; pipelineEnd: number; mtsRenderStart: number; mtsRenderEnd: number; resolveStart: number; resolveEnd: number; layoutStart: number; layoutEnd: number; paintingUiOperationExecuteStart: number; paintingUiOperationExecuteEnd: number; layoutUiOperationExecuteStart: number; layoutUiOperationExecuteEnd: number; paintEnd: number; frameworkRenderingTiming: FrameworkRenderingTimings[keyof FrameworkRenderingTimings] & FrameworkRenderingTiming; hostPlatformTiming: HostPlatformTiming; } export interface LoadBundleEntry extends PipelineEntry { loadBundleStart: number; loadBundleEnd: number; parseStart: number; parseEnd: number; loadBackgroundStart: number; loadBackgroundEnd: number; verifyTasmStart: number; verifyTasmEnd: number; ffiStart: number; ffiEnd: number; } export interface InitContainerEntry extends PerformanceEntry { openTime: number; containerInitStart: number; containerInitEnd: number; prepareTemplateStart: number; prepareTemplateEnd: number; extraTiming: Record<string, number>; } export interface InitLynxviewEntry extends PerformanceEntry { createLynxStart: number; createLynxEnd: number; } export interface InitBackgroundRuntimeEntry extends PerformanceEntry { loadCoreStart: number; loadCoreEnd: number; } export interface PerformanceMetric { name: string; duration: number; startTimestampName: string; startTimestamp: number; endTimestampName: string; endTimestamp: number; } export interface MetricFcpEntry extends PerformanceEntry { fcp: PerformanceMetric; lynxFcp: PerformanceMetric; totalFcp: PerformanceMetric; } export interface MetricActualFmpEntry extends PerformanceEntry { actualFmp: PerformanceMetric; lynxActualFmp: PerformanceMetric; totalActualFmp: PerformanceMetric; } /** * @deprecated Due to the influence of long tasks on this metric, the statistical results are * inaccurate, so this type has been deprecated. * Since version 3.3, you will no longer receive this event. **/ export interface MetricTtiEntry extends PerformanceEntry { tti: PerformanceMetric; lynxTti: PerformanceMetric; totalTti: PerformanceMetric; } export interface ReloadBundleEntry extends PipelineEntry { reloadBundleStart: number; reloadBundleEnd: number; reloadBackgroundStart: number; reloadBackgroundEnd: number; ffiStart: number; ffiEnd: number; } export interface MemoryUsageEntry extends PerformanceEntry { sizeBytes: any; detail: Record<string, MemoryUsageItem>; } export interface MemoryUsageItem { category: string; sizeBytes: any; detail: Record<string, string>; } export interface LazyBundleEntry extends PerformanceEntry { componentUrl: string; mode: string; size: number; sync: boolean; loadSuccess: boolean; requireStart: number; requireEnd: number; decodeStart: number; decodeEnd: number; } export interface AndroidHostPlatformTiming { hostPlatformType: 'Android'; measureStart: number; measureEnd: number; layoutStart: number; layoutEnd: number; drawStart: number; drawEnd: number; } export interface IOSHostPlatformTiming { hostPlatformType: 'iOS'; } export interface HarmonyHostPlatformTiming { hostPlatformType: 'Harmony'; } export type HostPlatformTiming = AndroidHostPlatformTiming | IOSHostPlatformTiming | HarmonyHostPlatformTiming