This repository has been archived on 2022-03-12. You can view files and clone it, but cannot push or open issues or pull requests.
2021-04-02 02:24:13 +03:00

1 line
6.0 KiB
Plaintext

{"version":3,"file":"Drawables.js","sourceRoot":"","sources":["../../src/android/Drawables.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from 'fs-extra';\nimport path from 'path';\n\nconst SPLASH_SCREEN_FILENAME = 'splashscreen_image.png';\n\ntype DRAWABLE_SIZE = 'default' | 'mdpi' | 'hdpi' | 'xhdpi' | 'xxhdpi' | 'xxxhdpi';\ntype THEME = 'light' | 'dark';\n\nconst DRAWABLES_CONFIGS: {\n [key in DRAWABLE_SIZE]: {\n modes: {\n [key in THEME]: {\n path: string;\n };\n };\n dimensionsMultiplier: number;\n };\n} = {\n default: {\n modes: {\n light: {\n path: `./res/drawable/${SPLASH_SCREEN_FILENAME}`,\n },\n dark: {\n path: `./res/drawable-night/${SPLASH_SCREEN_FILENAME}`,\n },\n },\n dimensionsMultiplier: 1,\n },\n mdpi: {\n modes: {\n light: {\n path: `./res/drawable-mdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n dark: {\n path: `./res/drawable-night-mdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n },\n dimensionsMultiplier: 1,\n },\n hdpi: {\n modes: {\n light: {\n path: `./res/drawable-hdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n dark: {\n path: `./res/drawable-night-hdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n },\n dimensionsMultiplier: 1.5,\n },\n xhdpi: {\n modes: {\n light: {\n path: `./res/drawable-xhdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n dark: {\n path: `./res/drawable-night-xhdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n },\n dimensionsMultiplier: 2,\n },\n xxhdpi: {\n modes: {\n light: {\n path: `./res/drawable-xxhdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n dark: {\n path: `./res/drawable-night-xxhdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n },\n dimensionsMultiplier: 3,\n },\n xxxhdpi: {\n modes: {\n light: {\n path: `./res/drawable-xxxhdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n dark: {\n path: `./res/drawable-night-xxxhdpi/${SPLASH_SCREEN_FILENAME}`,\n },\n },\n dimensionsMultiplier: 4,\n },\n};\n\n/**\n * @param srcPath Absolute path\n * @param dstPath Absolute path\n */\nasync function copyDrawableFile(srcPath: string | undefined, dstPath: string) {\n if (!srcPath) {\n return;\n }\n if (!(await fs.pathExists(path.dirname(dstPath)))) {\n await fs.mkdir(path.dirname(dstPath));\n }\n await fs.copyFile(srcPath, path.resolve(dstPath));\n}\n\n/**\n * Deletes all previous splash_screen_images and copies new one to desired drawable directory.\n * If path isn't provided then no new image is placed in drawable directories.\n * @see https://developer.android.com/training/multiscreen/screendensities\n *\n * @param androidMainPath Absolute path to the main directory containing code and resources in Android project. In general that would be `android/app/src/main`.\n */\nexport default async function configureDrawables(\n androidMainPath: string,\n config: {\n image?: string;\n darkMode?: {\n image?: string;\n };\n } = {}\n) {\n await Promise.all(\n Object.values(DRAWABLES_CONFIGS).map(async ({ modes }) => {\n await Promise.all(\n Object.values(modes).map(async ({ path: filePath }) => {\n if (await fs.pathExists(path.resolve(androidMainPath, filePath))) {\n await fs.remove(path.resolve(androidMainPath, filePath));\n }\n })\n );\n })\n );\n\n await Promise.all([\n copyDrawableFile(\n config.image,\n path.resolve(androidMainPath, DRAWABLES_CONFIGS.default.modes.light.path)\n ),\n copyDrawableFile(\n config.darkMode?.image,\n path.resolve(androidMainPath, DRAWABLES_CONFIGS.default.modes.dark.path)\n ),\n ]);\n}\n"]}