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
This commit is contained in:
Luna Wei
2020-12-23 19:49:27 -08:00
committed by Facebook GitHub Bot
parent fba0631ba7
commit 3ade096f02
3 changed files with 22 additions and 9 deletions
+1 -1
View File
@@ -21,7 +21,7 @@ export type ResolvedAssetSource = {|
import type {PackagerAsset} from '@react-native/assets/registry';
const PixelRatio = require('../Utilities/PixelRatio');
const pickScale = require('./AssetSourcePickScale');
const {pickScale} = require('./AssetUtils');
const Platform = require('../Utilities/Platform');
const invariant = require('invariant');
@@ -10,11 +10,12 @@
'use strict';
const PixelRatio = require('../Utilities/PixelRatio');
function AssetSourcePickScale(
scales: Array<number>,
deviceScale?: number,
): number {
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();
}
@@ -30,4 +31,16 @@ function AssetSourcePickScale(
// in which case we default to 1
return scales[scales.length - 1] || 1;
}
module.exports = AssetSourcePickScale;
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;
}
+2 -2
View File
@@ -14,7 +14,7 @@
const AssetRegistry = require('@react-native/assets/registry');
const AssetSourceResolver = require('./AssetSourceResolver');
const AssetSourcePickScale = require('./AssetSourcePickScale');
const {pickScale} = require('./AssetUtils');
import type {ResolvedAssetSource} from './AssetSourceResolver';
@@ -106,5 +106,5 @@ function resolveAssetSource(source: any): ?ResolvedAssetSource {
}
module.exports = resolveAssetSource;
module.exports.pickScale = AssetSourcePickScale;
module.exports.pickScale = pickScale;
module.exports.setCustomSourceTransformer = setCustomSourceTransformer;