@react-native-firebase/perf
Version:
React Native Firebase - React Native Firebase provides native integration with Performance Monitoring to gain insight into key performance characteristics within your React Native application.
90 lines (80 loc) • 3.26 kB
TypeScript
/*
* Copyright (c) 2016-present Invertase Limited & Contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this library except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
import { ReactNativeFirebase } from '@react-native-firebase/app';
import { FirebasePerformanceTypes } from '..';
import Performance = FirebasePerformanceTypes.Module;
import Trace = FirebasePerformanceTypes.Module.Trace;
import HttpMethod = FirebasePerformanceTypes.HttpMethod;
import HttpMetric = FirebasePerformanceTypes.HttpMetric;
import ScreenTrace = FirebasePerformanceTypes.ScreenTrace;
import FirebaseApp = ReactNativeFirebase.FirebaseApp;
/**
* Returns a Performance instance for the given app.
* @param app - FirebaseApp. Optional.
* @returns {Performance}
*/
export function getPerformance(app?: FirebaseApp): Performance;
type PerformanceSettings = {
dataCollectionEnabled: boolean;
};
/**
* Returns a Performance instance for the given app.
* @param app - FirebaseApp. Required.
* @param settings - Optional PerformanceSettings. Set "dataCollectionEnabled" which will enable/disable Performance collection.
* @returns {Promise<Performance>}
*/
export function initializePerformance(
app: FirebaseApp,
settings?: PerformanceSettings,
): Promise<Performance>;
/**
* Returns a Trace instance.
* @param perf - Performance instance.
* @param identifier - A String to identify the Trace instance.
* @returns {Trace}
*/
export function trace(perf: Performance, identifier: string): Trace;
/**
* Returns a HttpMetric instance.
* @param perf - Performance instance.
* @param identifier - A String to identify the HttpMetric instance.
* @param httpMethod - The HTTP method for the HttpMetric instance.
* @returns {HttpMetric}
*/
export function httpMetric(
perf: Performance,
identifier: string,
httpMethod: HttpMethod,
): HttpMetric;
/**
* Creates a ScreenTrace instance with the given identifier.
* Throws if hardware acceleration is disabled or if Android is 9.0 or 9.1.
* @platform android Android !== 9.0.0 && Android !== 9.1.0
* @param perf - Performance instance.
* @param identifier - Name of the trace, no leading or trailing whitespace allowed, no leading underscore '_' character allowed, max length is 100.
* @returns {ScreenTrace}
*/
export function newScreenTrace(perf: Performance, identifier: string): ScreenTrace;
/**
* Creates a ScreenTrace instance with the given identifier and immediately starts it.
* Throws if hardware acceleration is disabled or if Android is 9.0 or 9.1.
* @platform android Android !== 9.0.0 && Android !== 9.1.0
* @param perf - Performance instance.
* @param identifier - Name of the screen.
* @returns {Promise<ScreenTrace>}
*/
export function startScreenTrace(perf: Performance, identifier: string): Promise<ScreenTrace>;