Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
const createSelector = makeRefinable(selector => {
const selectorCreator = {
TextQuoteSelector: createTextQuoteSelector,
RangeSelector: createRangeSelectorCreator(createSelector),
}[selector.type];
if (selectorCreator == null) {
throw new Error(`Unsupported selector type: ${selector.type}`);
}
return selectorCreator(selector);
});
const createSelector = makeRefinable(selector => {
const selectorCreator = {
TextQuoteSelector: createTextQuoteSelector,
RangeSelector: createRangeSelectorCreator(createSelector),
}[selector.type];
if (selectorCreator == null) {
throw new Error(`Unsupported selector type: ${selector.type}`);
}
return selectorCreator(selector);
});
async function describeSelection() {
const selection = document.getSelection();
if (selection.type !== 'Range') return;
const range = selection.getRangeAt(0);
if (range.collapsed) return;
const scope = document.createRange();
scope.selectNodeContents(selectable);
if (!scope.isPointInRange(range.startContainer, range.startOffset)) return;
if (!scope.isPointInRange(range.endContainer, range.endOffset)) return;
return describeTextQuote(range, scope);
}