( cloned: T, context: Context, )
| 3 | import { IN_FIREFOX, IN_SAFARI, isDataUrl, isImageElement, isSVGElementNode } from './utils' |
| 4 | |
| 5 | export function embedImageElement<T extends HTMLImageElement | SVGImageElement>( |
| 6 | cloned: T, |
| 7 | context: Context, |
| 8 | ): Promise<void>[] { |
| 9 | if (isImageElement(cloned)) { |
| 10 | const originalSrc = cloned.currentSrc || cloned.src |
| 11 | |
| 12 | if (!isDataUrl(originalSrc)) { |
| 13 | return [ |
| 14 | contextFetch(context, { |
| 15 | url: originalSrc, |
| 16 | imageDom: cloned, |
| 17 | requestType: 'image', |
| 18 | responseType: 'dataUrl', |
| 19 | }).then((url) => { |
| 20 | if (!url) |
| 21 | return |
| 22 | cloned.srcset = '' |
| 23 | cloned.dataset.originalSrc = originalSrc |
| 24 | cloned.src = url || '' |
| 25 | }), |
| 26 | ] |
| 27 | } |
| 28 | |
| 29 | if (IN_SAFARI || IN_FIREFOX) { |
| 30 | context.drawImageCount++ |
| 31 | } |
| 32 | } |
| 33 | else if (isSVGElementNode(cloned) && !isDataUrl(cloned.href.baseVal)) { |
| 34 | const originalSrc = cloned.href.baseVal |
| 35 | return [ |
| 36 | contextFetch(context, { |
| 37 | url: originalSrc, |
| 38 | imageDom: cloned, |
| 39 | requestType: 'image', |
| 40 | responseType: 'dataUrl', |
| 41 | }).then((url) => { |
| 42 | if (!url) |
| 43 | return |
| 44 | cloned.dataset.originalSrc = originalSrc |
| 45 | cloned.href.baseVal = url || '' |
| 46 | }), |
| 47 | ] |
| 48 | } |
| 49 | return [] |
| 50 | } |
no test coverage detected
searching dependent graphs…