MCPcopy
hub / github.com/embedpdf/embed-pdf-viewer / PerfLogger

Class PerfLogger

packages/models/src/logger.ts:217–275  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

215 * @public
216 */
217export class PerfLogger implements Logger {
218 private marks: Map<string, number> = new Map();
219
220 /**
221 * create new PerfLogger
222 */
223 constructor() {}
224
225 /** {@inheritDoc Logger.isEnabled} */
226 isEnabled(): boolean {
227 return false;
228 }
229
230 /** {@inheritDoc Logger.debug} */
231 debug(source: string, category: string, ...args: any) {}
232
233 /** {@inheritDoc Logger.info} */
234 info(source: string, category: string, ...args: any) {}
235
236 /** {@inheritDoc Logger.warn} */
237 warn(source: string, category: string, ...args: any) {}
238
239 /** {@inheritDoc Logger.error} */
240 error(source: string, category: string, ...args: any) {}
241
242 /** {@inheritDoc Logger.perf} */
243 perf(
244 source: string,
245 category: string,
246 event: string,
247 phase: 'Begin' | 'End',
248 identifier: string,
249 ...args: any
250 ) {
251 const markName = `${source}.${category}.${event}.${phase}.${identifier}`;
252
253 switch (phase) {
254 case 'Begin':
255 globalThis.performance.mark(markName, { detail: args });
256 this.marks.set(`${source}.${category}.${event}.${identifier}`, Date.now());
257 break;
258 case 'End':
259 globalThis.performance.mark(markName, { detail: args });
260 const measureName = `${source}.${category}.${event}.Measure.${identifier}`;
261 const beginMark = `${source}.${category}.${event}.Begin.${identifier}`;
262
263 globalThis.performance.measure(measureName, beginMark, markName);
264
265 // Log duration to console
266 const startTime = this.marks.get(`${source}.${category}.${event}.${identifier}`);
267 if (startTime) {
268 const duration = Date.now() - startTime;
269 console.info(`⏱️ ${source}.${category}.${event}.${identifier}: ${duration}ms`);
270 this.marks.delete(`${source}.${category}.${event}.${identifier}`);
271 }
272 break;
273 }
274 }

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected