MCPcopy
hub / github.com/qq15725/modern-screenshot / embedImageElement

Function embedImageElement

src/embed-image-element.ts:5–50  ·  view source on GitHub ↗
(
  cloned: T,
  context: Context,
)

Source from the content-addressed store, hash-verified

3import { IN_FIREFOX, IN_SAFARI, isDataUrl, isImageElement, isSVGElementNode } from './utils'
4
5export 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}

Callers 1

embedNodeFunction · 0.90

Calls 4

isImageElementFunction · 0.90
isDataUrlFunction · 0.90
contextFetchFunction · 0.90
isSVGElementNodeFunction · 0.90

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…