Skip to content

Instantly share code, notes, and snippets.

@MichaelFBA
Created June 11, 2020 08:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MichaelFBA/c6e995e5f088fb22d4f48ef846e41ea6 to your computer and use it in GitHub Desktop.
Save MichaelFBA/c6e995e5f088fb22d4f48ef846e41ea6 to your computer and use it in GitHub Desktop.
import Task from '../Task';
class PerformanceTask extends Task {
start({ payload }: { payload: PartnerAnalyticsPageRequest }): Promise<any> {
return new Promise(resolve => {
const {
navigationStart,
unloadEventStart,
unloadEventEnd,
redirectStart,
redirectEnd,
fetchStart,
domainLookupStart,
domainLookupEnd,
connectStart,
connectEnd,
secureConnectionStart,
requestStart,
responseStart,
responseEnd,
domLoading,
domInteractive,
domContentLoadedEventStart,
domContentLoadedEventEnd,
domComplete,
loadEventStart,
loadEventEnd,
} = performance.timing;
payload.performance = {
navigation_start: navigationStart,
unload_event_start: unloadEventStart,
unload_event_end: unloadEventEnd,
redirect_start: redirectStart,
redirect_end: redirectEnd,
fetch_start: fetchStart,
domain_lookup_start: domainLookupStart,
domain_lookup_end: domainLookupEnd,
connect_start: connectStart,
connect_end: connectEnd,
secure_connection_start: secureConnectionStart,
request_start: requestStart,
response_start: responseStart,
response_end: responseEnd,
dom_loading: domLoading,
dom_interactive: domInteractive,
dom_content_loaded_event_start: domContentLoadedEventStart,
dom_content_loaded_event_end: domContentLoadedEventEnd,
dom_complete: domComplete,
load_event_start: loadEventStart,
load_event_end: loadEventEnd,
} as PagePerformance,
resolve(payload);
});
}
}
export default PerformanceTask;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment