UNPKG

react-native

Version:

A framework for building native apps using React

42 lines (37 loc) 1.24 kB
/** * Copyright (c) 2015-present, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ 'use strict'; const ALLOWED_SCALES = { ios: [1, 2, 3], }; function filterPlatformAssetScales(platform, scales) { const whitelist = ALLOWED_SCALES[platform]; if (!whitelist) { return scales; } const result = scales.filter(scale => whitelist.indexOf(scale) > -1); if (result.length === 0 && scales.length > 0) { // No matching scale found, but there are some available. Ideally we don't want to // be in this situation and should throw, but for now as a fallback let's just use // the closest larger image const maxScale = whitelist[whitelist.length - 1]; for (const scale of scales) { if (scale > maxScale) { result.push(scale); break; } } // There is no larger scales available, use the largest we have if (result.length === 0) { result.push(scales[scales.length - 1]); } } return result; } module.exports = filterPlatformAssetScales;