All files / src Clipboard.ts

100% Statements 10/10
90% Branches 9/10
100% Functions 4/4
100% Lines 9/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29      3x 7x           4x   3x   3x 2x     1x   2x           3x    
import { getShot } from './lib/Db';
import { copyPng } from './lib/Export';
 
chrome.runtime.onMessage.addListener((message, sender, respond) => {
  if (
    sender.id !== chrome.runtime.id ||
    message?.target !== 'clipboard' ||
    message.type !== 'copy-capture' ||
    typeof message.id !== 'string'
  )
    return;
 
  void getShot(message.id)
    .then(async (shot) => {
      if (!shot) throw new Error('Screenshot not found in History.');
      await copyPng(shot.blob);
    })
    .then(
      () => respond({ ok: true }),
      (error: unknown) =>
        respond({
          ok: false,
          error:
            error instanceof Error ? error.message : 'Clipboard write failed.',
        }),
    );
  return true;
});