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.

101 lines (94 loc) 2.77 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. import { CommonPerformance } from "../common/performance"; import { PerformanceEntry } from "./lynx-performance-entry"; export interface SetupTimingInfo { create_lynx_start: number; create_lynx_end: number; load_core_start: number; load_core_end: number; load_app_start: number; load_app_end: number; load_template_start: number; load_template_end: number; decode_start: number; decode_end: number; lepus_excute_start: number; lepus_excute_end: number; set_init_data_start: number; set_init_data_end: number; data_processor_start: number; data_processor_end: number; create_vdom_start: number; create_vdom_end: number; dispatch_start: number; dispatch_end: number; layout_start: number; layout_end: number; ui_operation_flush_start: number; ui_operation_flush_end: number; draw_end: number; [key: string]: unknown; } export interface UpdateTimingInfo { set_state_trigger?: number; create_vdom_start?: number; create_vdom_end?: number; dispatch_start?: number; dispatch_end?: number; layout_start?: number; layout_end?: number; ui_operation_flush_start?: number; ui_operation_flush_end?: number; draw_end: number; [key: string]: unknown; } export interface ExtraTimingInfo { prepare_template_start?: number; prepare_template_end?: number; container_init_start?: number; container_init_end?: number; open_time?: number; [key: string]: unknown; } export interface MetricsTimingInfo { tti?: number; lynx_tti?: number; total_tti?: number; fcp?: number; lynx_fcp?: number; total_fcp?: number; actual_fmp?: number; lynx_actual_fmp?: number; total_actual_fmp?: number; [key: string]: unknown; } export interface TimingInfo { extra_timing: ExtraTimingInfo; setup_timing: SetupTimingInfo; update_timings: { [key: string]: UpdateTimingInfo; }; metrics: MetricsTimingInfo; has_reload: boolean; thread_strategy: number; url: string; [key: string]: unknown; } export interface TimingListener { onSetup: (info: TimingInfo) => void; onUpdate: (info: TimingInfo) => void; } export interface Performance extends CommonPerformance { addTimingListener(listener: TimingListener): void; removeTimingListener(listener: TimingListener): void; removeAllTimingListener(): void; createObserver(callback: PerformanceCallback): PerformanceObserver; } export type PerformanceCallback = (entry: PerformanceEntry) => void; export interface PerformanceObserver { observe(name: string[]): void; disconnect(): void; onPerformanceEvent(entry: PerformanceEntry): void }