UNPKG

@react-native-tvos/config-tv

Version:

Config plugin to reconfigure native directories for Apple TV and Android TV development if needed

93 lines (92 loc) 3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.appleTVImageTypes = exports.packageNameAndVersion = void 0; exports.isTVEnabled = isTVEnabled; exports.tvosDeploymentTarget = tvosDeploymentTarget; exports.shouldRemoveFlipperOnAndroid = shouldRemoveFlipperOnAndroid; exports.isAndroidTVRequired = isAndroidTVRequired; exports.androidTVBanner = androidTVBanner; exports.androidTVIcon = androidTVIcon; exports.appleTVImagePathForType = appleTVImagePathForType; const getenv_1 = require("getenv"); class Env { /** Enable prebuild for TV */ get EXPO_TV() { return (0, getenv_1.boolish)("EXPO_TV", false); } } const env = new Env(); const pkg = require("../../package.json"); const defaultTvosDeploymentVersion = "15.1"; exports.packageNameAndVersion = `${pkg.name}@${pkg.version}`; function isTVEnabled(params) { return env.EXPO_TV || (params?.isTV ?? false); } /** * Returns the iOS deployment target from the expo-build-properties plugin, if present. */ function iosDeploymentTargetFromBuildProperties(config) { const plugins = config?.plugins; if (!Array.isArray(plugins)) { return undefined; } for (const plugin of plugins) { if (Array.isArray(plugin) && plugin[0] === "expo-build-properties") { return plugin[1]?.ios?.deploymentTarget; } } return undefined; } function tvosDeploymentTarget(params, config, expoDefaultIosDeploymentTarget) { if (params?.tvosDeploymentTarget) { return params.tvosDeploymentTarget; } if (config) { const buildPropsTarget = iosDeploymentTargetFromBuildProperties(config); if (buildPropsTarget) { return buildPropsTarget; } } return expoDefaultIosDeploymentTarget ?? defaultTvosDeploymentVersion; } function shouldRemoveFlipperOnAndroid(params) { return params?.removeFlipperOnAndroid ?? false; } function isAndroidTVRequired(params) { return params?.androidTVRequired ?? false; } function androidTVBanner(params) { return params?.androidTVBanner; } function androidTVIcon(params) { return params?.androidTVIcon; } exports.appleTVImageTypes = [ "icon", "iconSmall", "iconSmall2x", "topShelf", "topShelf2x", "topShelfWide", "topShelfWide2x", ]; function appleTVImagePathForType(params, imageType) { switch (imageType) { case "icon": return params?.appleTVImages?.icon; case "iconSmall": return params?.appleTVImages?.iconSmall; case "iconSmall2x": return params?.appleTVImages?.iconSmall2x; case "topShelf": return params?.appleTVImages?.topShelf; case "topShelf2x": return params?.appleTVImages?.topShelf2x; case "topShelfWide": return params?.appleTVImages?.topShelfWide; case "topShelfWide2x": return params?.appleTVImages?.topShelfWide2x; default: return undefined; } }