All files / src/ios Assets.ts

100% Statements 10/10
100% Branches 4/4
100% Functions 1/1
100% Lines 10/10

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55      2x   2x                   5x     5x 1x     5x 3x 3x                                           3x         3x      
import fs from 'fs-extra';
import path from 'path';
 
const SPLASH_SCREEN_FILENAME = 'splashscreen.png';
 
const FILES_PATHS = {
  IMAGESET: 'Images.xcassets/SplashScreen.imageset',
  IMAGESET_CONTENTS: 'Images.xcassets/SplashScreen.imageset/Contents.json',
  PNG: `Images.xcassets/SplashScreen.imageset/${SPLASH_SCREEN_FILENAME}`,
};
 
/**
 * Creates [IMAGESET] containing image for Splash/Launch Screen.
 */
export default async function configureAssets(iosProjectPath: string, imagePath?: string) {
  const imageSetPath = path.resolve(iosProjectPath, FILES_PATHS.IMAGESET);
 
  // ensure old SplashScreen imageSet is removed
  if (await fs.pathExists(imageSetPath)) {
    await fs.remove(imageSetPath);
  }
 
  if (imagePath) {
    await fs.mkdirp(imageSetPath);
    const contentJson = {
      images: [
        {
          idiom: 'universal',
          filename: SPLASH_SCREEN_FILENAME,
          scale: '1x',
        },
        {
          idiom: 'universal',
          scale: '2x',
        },
        {
          idiom: 'universal',
          scale: '3x',
        },
      ],
      info: {
        version: 1,
        author: 'xcode',
      },
    };
 
    await fs.writeFile(
      path.resolve(iosProjectPath, FILES_PATHS.IMAGESET_CONTENTS),
      JSON.stringify(contentJson, null, 2)
    );
 
    await fs.copyFile(imagePath, path.resolve(iosProjectPath, FILES_PATHS.PNG));
  }
}