File size: 787 Bytes
2c1d035 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | export function createReaderDiagnostics(readerContext) {
function pdfStage(stage, page = 0) {
const started = performance.now();
return (outcome = "ready") => {
if (readerContext.readerAbortController.signal.aborted) return;
readerContext.pdfPageTimings.push({at:started, stage, page, outcome, ms:performance.now()-started});
if (readerContext.pdfPageTimings.length > 64) readerContext.pdfPageTimings.shift();
};
}
function measurePdf(promise, stage, page = 0) {
const finish = readerContext.pdfStage(stage,page);
return Promise.resolve(promise).then(value => { finish(); return value; }, error => {
finish(error?.name === "AbortError" ? "cancelled" : "failed"); throw error;
});
}
return {
pdfStage,
measurePdf
};
}
|