export function observe()

in src/services/observe.ts [25:52]


export function observe <K extends keyof PerformanceEntryObj>(
  type: K,
  callback: (entries: PerformanceEntryObj[K]) => void,
  opts?: PerformanceObserverInit,
): PerformanceObserver {
  try {
    if (PerformanceObserver.supportedEntryTypes.includes(type)) {
      const perfObs = new PerformanceObserver((list) => {

        Promise.resolve().then(() => {
          callback(list.getEntries() as PerformanceEntryObj[K]);
        });
      });
      perfObs.observe(
        Object.assign(
          {
            type,
            buffered: true,
          },
          opts || {},
        ),
      );
      return perfObs;
    }
  } catch (e) {
    console.error(e);
  }
};