{"version":3,"file":"cli-command.js","sourceRoot":"","sources":["../src/cli-command.ts"],"names":[],"mappings":"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","sourcesContent":["import { Command } from 'commander';\n\nimport { AndroidSplashScreenConfigJSON, IosSplashScreenConfigJSON } from './SplashScreenConfig';\nimport configureAndroid from './android';\nimport {\n SplashScreenImageResizeMode,\n SplashScreenStatusBarStyle,\n Platform,\n PlatformType,\n} from './constants';\nimport configureIos from './ios';\nimport { validateEnumValue } from './validators';\n\ntype RawCLIOptions = Partial<{\n imageResizeMode: string;\n platform: string;\n backgroundColor: string;\n imagePath: string;\n darkModeBackgroundColor: string;\n darkModeImagePath: string;\n statusBarHidden: boolean;\n statusBarStyle: string;\n darkModeStatusBarStyle: string;\n statusBarTranslucent: boolean;\n statusBarBackgroundColor: string;\n darkModeStatusBarBackgroundColor: string;\n}>;\n\ninterface Configuration {\n platform: PlatformType;\n android: AndroidSplashScreenConfigJSON;\n ios: IosSplashScreenConfigJSON;\n}\n\nasync function action(configuration: Configuration) {\n const { platform, android, ios } = configuration;\n const rootDir = process.cwd();\n switch (platform) {\n case Platform.ANDROID:\n await configureAndroid(rootDir, android);\n break;\n case Platform.IOS:\n await configureIos(rootDir, ios);\n break;\n case Platform.ALL:\n default:\n await configureAndroid(rootDir, android);\n await configureIos(rootDir, ios);\n break;\n }\n}\n\nfunction configurationFromOptions({\n platform,\n imageResizeMode,\n backgroundColor,\n imagePath,\n statusBarHidden,\n statusBarStyle,\n statusBarTranslucent,\n statusBarBackgroundColor,\n darkModeBackgroundColor,\n darkModeImagePath,\n darkModeStatusBarStyle,\n darkModeStatusBarBackgroundColor,\n}: RawCLIOptions): Configuration {\n let resolvedPlatform: PlatformType = Platform.ALL;\n try {\n resolvedPlatform = (platform && validateEnumValue(platform, Platform)) || Platform.ALL;\n } catch (e) {\n throw new Error(`'platform': ${e.message}`);\n }\n\n if (!backgroundColor) {\n throw new Error(\n `'backgroundColor': Required option is not provided. Provide a valid color string.`\n );\n }\n\n const resolvedStatusBarHidden =\n statusBarHidden === undefined ? undefined : Boolean(statusBarHidden);\n const resolvedStatusBarTranslucent =\n statusBarTranslucent === undefined ? undefined : Boolean(statusBarTranslucent);\n\n const genericConfig = {\n imageResizeMode,\n backgroundColor,\n image: imagePath,\n };\n const genericStatusBarConfig = {\n hidden: resolvedStatusBarHidden,\n style: statusBarStyle,\n };\n const genericDarkModeConfig = {\n backgroundColor: darkModeBackgroundColor,\n image: darkModeImagePath,\n };\n\n const result: Configuration = {\n platform: resolvedPlatform,\n android: {\n ...genericConfig,\n statusBar: {\n ...genericStatusBarConfig,\n translucent: resolvedStatusBarTranslucent,\n backgroundColor: statusBarBackgroundColor,\n },\n darkMode: {\n ...genericDarkModeConfig,\n statusBar: {\n style: darkModeStatusBarStyle,\n backgroundColor: darkModeStatusBarBackgroundColor,\n },\n },\n },\n ios: {\n ...genericConfig,\n statusBar: genericStatusBarConfig,\n darkMode: genericDarkModeConfig,\n },\n };\n\n return result;\n}\n\nfunction getAvailableOptions(o: object) {\n return Object.values(o)\n .map(v => `\"${v}\"`)\n .join(' | ');\n}\n\nexport default () =>\n new Command()\n .description(\n 'Idempotent operation that configures native splash screens using provided backgroundColor and optional .png file. Supports light and dark modes configuration. Dark mode is supported only on iOS 13+ and Android 10+.'\n )\n .version(require('../package.json').version)\n .allowUnknownOption(false)\n .passCommandToAction(false)\n .option(\n '-p, --platform ',\n `Selected platform to configure. Available values: ${getAvailableOptions(\n Platform\n )} (default: \"${Platform.ALL}\").`\n )\n .option(\n '-b, --background-color ',\n `(required) Valid css-formatted color (hex (#RRGGBB[AA]), rgb[a], hsl[a], named color (https://drafts.csswg.org/css-color/#named-colors)) that would be used as the background color for native splash screen view.`\n )\n .option(\n '-i, --image-path ',\n 'Path to valid .png image that will be displayed on the splash screen.'\n )\n .option(\n '-r, --image-resize-mode ',\n `Resize mode to be used for the splash screen image. Available only if 'image-path' is provided as well. Available values: ${getAvailableOptions(\n SplashScreenImageResizeMode\n )} (\"native\" is only available for Android)) (default: \"${\n SplashScreenImageResizeMode.CONTAIN\n }\").`\n )\n .option(\n '--dark-mode-background-color ',\n `Color (see 'background-color' supported formats) that would be used as the background color for the splash screen in dark mode. Providing this option enables other dark-mode related options.`\n )\n .option(\n '--dark-mode-image-path ',\n `Path to valid .png image that will be displayed on the splash screen in dark mode only. Available only if 'dark-mode-background-color' is provided as well.`\n )\n .option(\n '--status-bar-style