Files
react-native/Libraries/Image/AssetUtils.js
T
Luna Wei 3ade096f02 Add cachebreaker to remote assets
Summary:
Changelog:
[Internal][Added] - Create a general utils for assets and add a cache breaker utility to set/get a urlparam for remote assets.

Reviewed By: motiz88

Differential Revision: D25521331

fbshipit-source-id: 042e52a27e826bc9993e80bc68cc6fc68abaf224
2020-12-23 19:49:27 -08:00

47 lines
1.2 KiB
JavaScript

/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow
* @format
*/
'use strict';
import PixelRatio from '../Utilities/PixelRatio';
let cacheBreaker;
let warnIfCacheBreakerUnset = true;
export function pickScale(scales: Array<number>, deviceScale?: number): number {
if (deviceScale == null) {
deviceScale = PixelRatio.get();
}
// Packager guarantees that `scales` array is sorted
for (let i = 0; i < scales.length; i++) {
if (scales[i] >= deviceScale) {
return scales[i];
}
}
// If nothing matches, device scale is larger than any available
// scales, so we return the biggest one. Unless the array is empty,
// in which case we default to 1
return scales[scales.length - 1] || 1;
}
export function setUrlCacheBreaker(appendage: string) {
cacheBreaker = appendage;
}
export function getUrlCacheBreaker(): string {
if (__DEV__ && warnIfCacheBreakerUnset && cacheBreaker == null) {
warnIfCacheBreakerUnset = false;
console.warn('AssetUtils.getUrlCacheBreaker: Cache breaker value is unset');
return '';
}
return cacheBreaker;
}