(src, { cache = true } = {})
| 157 | }; |
| 158 | |
| 159 | const resolveImage = (src, { cache = true } = {}) => { |
| 160 | const cacheKey = src.data ? src.data.toString() : src.uri; |
| 161 | |
| 162 | if (cache && IMAGE_CACHE.get(cacheKey)) { |
| 163 | return IMAGE_CACHE.get(cacheKey); |
| 164 | } |
| 165 | |
| 166 | let image; |
| 167 | if (isCompatibleBase64(src)) { |
| 168 | image = resolveBase64Image(src); |
| 169 | } else if (Buffer.isBuffer(src)) { |
| 170 | image = resolveBufferImage(src); |
| 171 | } else if (typeof src === 'object' && src.data) { |
| 172 | image = resolveImageFromData(src); |
| 173 | } else { |
| 174 | image = resolveImageFromUrl(src); |
| 175 | } |
| 176 | |
| 177 | if (!image) { |
| 178 | throw new Error('Cannot resolve image'); |
| 179 | } |
| 180 | |
| 181 | if (cache) { |
| 182 | IMAGE_CACHE.set(cacheKey, image); |
| 183 | } |
| 184 | |
| 185 | return image; |
| 186 | }; |
| 187 | |
| 188 | export default resolveImage; |
no test coverage detected