All files / json-crdt-extensions/peritext/events index.ts

100% Statements 13/13
80% Branches 4/5
100% Functions 1/1
100% Lines 12/12

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 242x 2x 2x 2x             2x 144x   144x     144x 144x 144x 144x     2x  
import {PeritextEventDefaults, type PeritextEventDefaultsOpts} from './defaults/PeritextEventDefaults';
import {PeritextEventTarget} from './PeritextEventTarget';
import {DomClipboard} from './clipboard/DomClipboard';
import {create as createDataTransfer} from '../../../json-crdt-extensions/peritext/transfer/create';
import type {Peritext} from '../../../json-crdt-extensions';
 
/**
 * @todo Move into separately importable file.
 * @todo Rename to `createDefaults`.
 */
export const createEvents = (txt: Peritext): PeritextEventDefaults => {
  const et = new PeritextEventTarget();
  const clipboard: PeritextEventDefaultsOpts['clipboard'] =
    typeof navigator === 'object' && navigator && navigator.clipboard
      ? new DomClipboard(navigator.clipboard)
      : undefined;
  const transfer = createDataTransfer(txt);
  const defaults = new PeritextEventDefaults(txt, et, {clipboard, transfer});
  et.defaults = defaults;
  return defaults;
};
 
export * from './types';