react-native-bootsplash 4.3.2 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -11,8 +11,8 @@ Show a splash screen during app startup. Hide it when you are ready.<br>
11
11
  [![platform - ios](https://img.shields.io/badge/platform-iOS-000.svg?logo=apple&style=for-the-badge)](https://developer.apple.com/ios)
12
12
 
13
13
  <p>
14
- <img height="520" src="https://raw.githubusercontent.com/zoontek/react-native-bootsplash/HEAD/docs/ios_demo.gif?raw=true" alt="iOS demo"></img>
15
- <img height="500" src="https://raw.githubusercontent.com/zoontek/react-native-bootsplash/HEAD/docs/android_demo.gif?raw=true" alt="android demo"></img>
14
+ <img height="520" width="256" src="https://raw.githubusercontent.com/zoontek/react-native-bootsplash/HEAD/docs/ios_demo.gif?raw=true" alt="iOS demo"></img>
15
+ <img height="500" width="259" src="https://raw.githubusercontent.com/zoontek/react-native-bootsplash/HEAD/docs/android_demo.gif?raw=true" alt="android demo"></img>
16
16
  </p>
17
17
 
18
18
  ## Funding
@@ -213,7 +213,7 @@ Set the `BootSplash.storyboard` as launch screen file:
213
213
 
214
214
  ### Android
215
215
 
216
- _⚠️  On Android 12, the splash screen will not appear if you start your app from the terminal / Android Studio. To see it, kill your app and restart it in normal conditions (tap on your app icon in the app launcher)._
216
+ _⚠️  On Android >= 12, the splash screen will not appear if you start your app from the terminal / Android Studio. To see it, kill your app and restart it in normal conditions (tap on your app icon in the app launcher)._
217
217
 
218
218
  ---
219
219
 
@@ -310,16 +310,19 @@ public class MainActivity extends ReactActivity {
310
310
  #### Method type
311
311
 
312
312
  ```ts
313
- type hide = (config?: { fade?: boolean }) => Promise<void>;
313
+ type hide = (config?: { fade?: boolean, duration?: boolean }) => Promise<void>;
314
314
  ```
315
315
 
316
+ Note: Only durations above 220ms are visually noticeable. Smaller values will be ignored and the default duration will be used.
317
+
316
318
  #### Usage
317
319
 
318
320
  ```js
319
321
  import RNBootSplash from "react-native-bootsplash";
320
322
 
321
323
  RNBootSplash.hide(); // immediate
322
- RNBootSplash.hide({ fade: true }); // fade
324
+ RNBootSplash.hide({ fade: true }); // fade with 220ms default duration
325
+ RNBootSplash.hide({ fade: true, duration: 500 }); // fade with custom duration
323
326
  ```
324
327
 
325
328
  ### getVisibilityStatus()
@@ -353,7 +356,7 @@ function App() {
353
356
  };
354
357
 
355
358
  init().finally(async () => {
356
- await RNBootSplash.hide({ fade: true });
359
+ await RNBootSplash.hide({ fade: true, duration: 500 });
357
360
  console.log("Bootsplash has been hidden successfully");
358
361
  });
359
362
  }, []);
@@ -12,7 +12,7 @@ buildscript {
12
12
  mavenCentral()
13
13
  }
14
14
  dependencies {
15
- classpath("com.android.tools.build:gradle:7.1.1")
15
+ classpath("com.android.tools.build:gradle:7.2.1")
16
16
  }
17
17
  }
18
18
  }
@@ -29,7 +29,6 @@ import java.util.TimerTask;
29
29
  public class RNBootSplashModule extends ReactContextBaseJavaModule {
30
30
 
31
31
  public static final String NAME = "RNBootSplash";
32
- private static final int ANIMATION_DURATION = 220;
33
32
 
34
33
  private enum Status {
35
34
  VISIBLE,
@@ -44,6 +43,7 @@ public class RNBootSplashModule extends ReactContextBaseJavaModule {
44
43
  private static Status mStatus = Status.HIDDEN;
45
44
  private static boolean mShouldFade = false;
46
45
  private static boolean mShouldKeepOnScreen = true;
46
+ private static int mAnimationDuration;
47
47
 
48
48
  public RNBootSplashModule(ReactApplicationContext reactContext) {
49
49
  super(reactContext);
@@ -80,8 +80,8 @@ public class RNBootSplashModule extends ReactContextBaseJavaModule {
80
80
  splashScreenView
81
81
  .animate()
82
82
  // Crappy hack to avoid automatic layout transitions
83
- .setDuration(mShouldFade ? ANIMATION_DURATION: 0)
84
- .setStartDelay(mShouldFade ? 0 : ANIMATION_DURATION)
83
+ .setDuration(mShouldFade ? mAnimationDuration: 0)
84
+ .setStartDelay(mShouldFade ? 0 : mAnimationDuration)
85
85
  .alpha(0.0f)
86
86
  .setInterpolator(new AccelerateInterpolator())
87
87
  .setListener(new AnimatorListenerAdapter() {
@@ -151,14 +151,15 @@ public class RNBootSplashModule extends ReactContextBaseJavaModule {
151
151
  timer.cancel();
152
152
  clearPromiseQueue();
153
153
  }
154
- }, ANIMATION_DURATION);
154
+ }, mAnimationDuration);
155
155
  }
156
156
  }
157
157
  });
158
158
  }
159
159
 
160
160
  @ReactMethod
161
- public void hide(final boolean fade, final Promise promise) {
161
+ public void hide(final boolean fade, final int fadeDuration, final Promise promise) {
162
+ mAnimationDuration = fadeDuration;
162
163
  mPromiseQueue.push(promise);
163
164
  hideAndResolveAll(fade);
164
165
  }
@@ -4,20 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.generate = void 0;
7
-
8
7
  var _fsExtra = _interopRequireDefault(require("fs-extra"));
9
-
10
8
  var _jimp = _interopRequireDefault(require("jimp"));
11
-
12
9
  var _path = _interopRequireDefault(require("path"));
13
-
14
10
  var _picocolors = _interopRequireDefault(require("picocolors"));
15
-
16
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
12
  const logoFileName = "bootsplash_logo";
19
- const xcassetName = "BootSplashLogo"; // https://github.com/androidx/androidx/blob/androidx-main/core/core-splashscreen/src/main/res/values/dimens.xml#L22
20
-
13
+ const xcassetName = "BootSplashLogo";
14
+ // https://github.com/androidx/androidx/blob/androidx-main/core/core-splashscreen/src/main/res/values/dimens.xml#L22
21
15
  const splashScreenIconSizeNoBackground = 288;
22
16
  const androidColorName = "bootsplash_background";
23
17
  const androidColorRegex = /<color name="bootsplash_background">#\w+<\/color>/g;
@@ -45,7 +39,6 @@ const ContentsJson = `{
45
39
  }
46
40
  }
47
41
  `;
48
-
49
42
  const getStoryboard = _ref => {
50
43
  let {
51
44
  height,
@@ -102,20 +95,16 @@ const getStoryboard = _ref => {
102
95
  </document>
103
96
  `;
104
97
  };
105
-
106
98
  const log = function (text) {
107
99
  let dim = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
108
100
  console.log(dim ? _picocolors.default.dim(text) : text);
109
101
  };
110
-
111
102
  const isValidHexadecimal = value => /^#?([0-9A-F]{3}){1,2}$/i.test(value);
112
-
113
103
  const toFullHexadecimal = hex => {
114
104
  const prefixed = hex[0] === "#" ? hex : `#${hex}`;
115
105
  const up = prefixed.toUpperCase();
116
106
  return up.length === 4 ? "#" + up[1] + up[1] + up[2] + up[2] + up[3] + up[3] : up;
117
107
  };
118
-
119
108
  const generate = async _ref2 => {
120
109
  let {
121
110
  android,
@@ -127,18 +116,13 @@ const generate = async _ref2 => {
127
116
  flavor,
128
117
  assetsPath
129
118
  } = _ref2;
130
-
131
119
  if (!isValidHexadecimal(backgroundColor)) {
132
120
  throw new Error("--background-color value is not a valid hexadecimal color.");
133
121
  }
134
-
135
122
  const image = await _jimp.default.read(logoPath);
136
123
  const backgroundColorHex = toFullHexadecimal(backgroundColor);
137
-
138
124
  const getHeight = size => Math.ceil(size * (image.bitmap.height / image.bitmap.width));
139
-
140
125
  const logWrite = (emoji, filePath, dimensions) => log(`${emoji} ${_path.default.relative(workingPath, filePath)}` + (dimensions != null ? ` (${dimensions.width}x${dimensions.height})` : ""));
141
-
142
126
  if (assetsPath && _fsExtra.default.existsSync(assetsPath)) {
143
127
  log(`\n ${_picocolors.default.underline("Assets")}`);
144
128
  await Promise.all([{
@@ -162,9 +146,7 @@ const generate = async _ref2 => {
162
146
  suffix
163
147
  } = _ref3;
164
148
  const fileName = `${logoFileName}${suffix}.png`;
165
-
166
149
  const filePath = _path.default.resolve(assetsPath, fileName);
167
-
168
150
  const width = logoWidth * ratio;
169
151
  const height = getHeight(width);
170
152
  return image.clone().resize(width, height).quality(100).writeAsync(filePath).then(() => {
@@ -175,37 +157,27 @@ const generate = async _ref2 => {
175
157
  });
176
158
  }));
177
159
  }
178
-
179
160
  if (android) {
180
161
  log(`\n ${_picocolors.default.underline("Android")}`);
181
162
  const appPath = android.appName ? _path.default.resolve(android.sourceDir, android.appName) : _path.default.resolve(android.sourceDir); // @react-native-community/cli 2.x & 3.x support
182
163
 
183
164
  const resPath = _path.default.resolve(appPath, "src", flavor, "res");
184
-
185
165
  const valuesPath = _path.default.resolve(resPath, "values");
186
-
187
166
  _fsExtra.default.ensureDirSync(valuesPath);
188
-
189
167
  const colorsXmlPath = _path.default.resolve(valuesPath, "colors.xml");
190
-
191
168
  const colorsXmlEntry = `<color name="${androidColorName}">${backgroundColorHex}</color>`;
192
-
193
169
  if (_fsExtra.default.existsSync(colorsXmlPath)) {
194
170
  const colorsXml = _fsExtra.default.readFileSync(colorsXmlPath, "utf-8");
195
-
196
171
  if (colorsXml.match(androidColorRegex)) {
197
172
  _fsExtra.default.writeFileSync(colorsXmlPath, colorsXml.replace(androidColorRegex, colorsXmlEntry), "utf-8");
198
173
  } else {
199
174
  _fsExtra.default.writeFileSync(colorsXmlPath, colorsXml.replace(/<\/resources>/g, ` ${colorsXmlEntry}\n</resources>`), "utf-8");
200
175
  }
201
-
202
176
  logWrite("✏️ ", colorsXmlPath);
203
177
  } else {
204
178
  _fsExtra.default.writeFileSync(colorsXmlPath, `<resources>\n ${colorsXmlEntry}\n</resources>\n`, "utf-8");
205
-
206
179
  logWrite("✨", colorsXmlPath);
207
180
  }
208
-
209
181
  await Promise.all([{
210
182
  ratio: 1,
211
183
  directory: "mipmap-mdpi"
@@ -227,13 +199,12 @@ const generate = async _ref2 => {
227
199
  directory
228
200
  } = _ref4;
229
201
  const fileName = `${logoFileName}.png`;
230
-
231
202
  const filePath = _path.default.resolve(resPath, directory, fileName);
232
-
233
203
  const width = logoWidth * ratio;
234
204
  const height = getHeight(width);
235
- const canvasSize = splashScreenIconSizeNoBackground * ratio; // https://github.com/oliver-moran/jimp/tree/master/packages/jimp#creating-new-images
205
+ const canvasSize = splashScreenIconSizeNoBackground * ratio;
236
206
 
207
+ // https://github.com/oliver-moran/jimp/tree/master/packages/jimp#creating-new-images
237
208
  const canvas = new _jimp.default(canvasSize, canvasSize, 0xffffff00);
238
209
  const logo = image.clone().resize(width, height);
239
210
  const x = (canvasSize - width) / 2;
@@ -246,36 +217,27 @@ const generate = async _ref2 => {
246
217
  });
247
218
  }));
248
219
  }
249
-
250
220
  if (ios) {
251
221
  log(`\n ${_picocolors.default.underline("iOS")}`);
252
222
  const {
253
223
  projectPath
254
224
  } = ios;
255
-
256
225
  const imagesPath = _path.default.resolve(projectPath, "Images.xcassets");
257
-
258
226
  if (_fsExtra.default.existsSync(projectPath)) {
259
227
  const storyboardPath = _path.default.resolve(projectPath, "BootSplash.storyboard");
260
-
261
228
  _fsExtra.default.writeFileSync(storyboardPath, getStoryboard({
262
229
  height: getHeight(logoWidth),
263
230
  width: logoWidth,
264
231
  backgroundColor: backgroundColorHex
265
232
  }), "utf-8");
266
-
267
233
  logWrite("✨", storyboardPath);
268
234
  } else {
269
235
  log(`No "${projectPath}" directory found. Skipping iOS storyboard generation…`);
270
236
  }
271
-
272
237
  if (_fsExtra.default.existsSync(imagesPath)) {
273
238
  const imageSetPath = _path.default.resolve(imagesPath, xcassetName + ".imageset");
274
-
275
239
  _fsExtra.default.ensureDirSync(imageSetPath);
276
-
277
240
  _fsExtra.default.writeFileSync(_path.default.resolve(imageSetPath, "Contents.json"), ContentsJson, "utf-8");
278
-
279
241
  await Promise.all([{
280
242
  ratio: 1,
281
243
  suffix: ""
@@ -291,9 +253,7 @@ const generate = async _ref2 => {
291
253
  suffix
292
254
  } = _ref5;
293
255
  const fileName = `${logoFileName}${suffix}.png`;
294
-
295
256
  const filePath = _path.default.resolve(imageSetPath, fileName);
296
-
297
257
  const width = logoWidth * ratio;
298
258
  const height = getHeight(width);
299
259
  return image.clone().resize(width, height).quality(100).writeAsync(filePath).then(() => {
@@ -307,7 +267,6 @@ const generate = async _ref2 => {
307
267
  log(`No "${imagesPath}" directory found. Skipping iOS images generation…`);
308
268
  }
309
269
  }
310
-
311
270
  log(`
312
271
  ${_picocolors.default.blue("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓")}
313
272
  ${_picocolors.default.blue("┃")} 💖 ${_picocolors.default.bold("Love this library? Consider sponsoring!")} ${_picocolors.default.blue("┃")}
@@ -317,6 +276,5 @@ const generate = async _ref2 => {
317
276
  `);
318
277
  log(`✅ Done! Thanks for using ${_picocolors.default.underline("react-native-bootsplash")}.`);
319
278
  };
320
-
321
279
  exports.generate = generate;
322
280
  //# sourceMappingURL=generate.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["logoFileName","xcassetName","splashScreenIconSizeNoBackground","androidColorName","androidColorRegex","ContentsJson","getStoryboard","height","width","backgroundColor","hex","r","parseInt","toPrecision","g","b","log","text","dim","console","pc","isValidHexadecimal","value","test","toFullHexadecimal","prefixed","up","toUpperCase","length","generate","android","ios","workingPath","logoPath","logoWidth","flavor","assetsPath","Error","image","Jimp","read","backgroundColorHex","getHeight","size","Math","ceil","bitmap","logWrite","emoji","filePath","dimensions","path","relative","fs","existsSync","underline","Promise","all","ratio","suffix","map","fileName","resolve","clone","resize","quality","writeAsync","then","appPath","appName","sourceDir","resPath","valuesPath","ensureDirSync","colorsXmlPath","colorsXmlEntry","colorsXml","readFileSync","match","writeFileSync","replace","directory","canvasSize","canvas","logo","x","y","blit","projectPath","imagesPath","storyboardPath","imageSetPath","blue","bold"],"sources":["generate.ts"],"sourcesContent":["import fs from \"fs-extra\";\nimport Jimp from \"jimp\";\nimport path from \"path\";\nimport pc from \"picocolors\";\n\nconst logoFileName = \"bootsplash_logo\";\nconst xcassetName = \"BootSplashLogo\";\n// https://github.com/androidx/androidx/blob/androidx-main/core/core-splashscreen/src/main/res/values/dimens.xml#L22\nconst splashScreenIconSizeNoBackground = 288;\nconst androidColorName = \"bootsplash_background\";\nconst androidColorRegex = /<color name=\"bootsplash_background\">#\\w+<\\/color>/g;\n\nconst ContentsJson = `{\n \"images\": [\n {\n \"idiom\": \"universal\",\n \"filename\": \"${logoFileName}.png\",\n \"scale\": \"1x\"\n },\n {\n \"idiom\": \"universal\",\n \"filename\": \"${logoFileName}@2x.png\",\n \"scale\": \"2x\"\n },\n {\n \"idiom\": \"universal\",\n \"filename\": \"${logoFileName}@3x.png\",\n \"scale\": \"3x\"\n }\n ],\n \"info\": {\n \"version\": 1,\n \"author\": \"xcode\"\n }\n}\n`;\n\nconst getStoryboard = ({\n height,\n width,\n backgroundColor: hex,\n}: {\n height: number;\n width: number;\n backgroundColor: string;\n}) => {\n const r = (parseInt(hex[1] + hex[2], 16) / 255).toPrecision(15);\n const g = (parseInt(hex[3] + hex[4], 16) / 255).toPrecision(15);\n const b = (parseInt(hex[5] + hex[6], 16) / 255).toPrecision(15);\n\n return `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"17147\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" launchScreen=\"YES\" useTraitCollections=\"YES\" useSafeAreas=\"YES\" colorMatched=\"YES\" initialViewController=\"01J-lp-oVM\">\n <device id=\"retina4_7\" orientation=\"portrait\" appearance=\"light\"/>\n <dependencies>\n <deployment identifier=\"iOS\"/>\n <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"17120\"/>\n <capability name=\"Safe area layout guides\" minToolsVersion=\"9.0\"/>\n <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n </dependencies>\n <scenes>\n <!--View Controller-->\n <scene sceneID=\"EHf-IW-A2E\">\n <objects>\n <viewController id=\"01J-lp-oVM\" sceneMemberID=\"viewController\">\n <view key=\"view\" autoresizesSubviews=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"scaleToFill\" id=\"Ze5-6b-2t3\">\n <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"667\"/>\n <autoresizingMask key=\"autoresizingMask\"/>\n <subviews>\n <imageView autoresizesSubviews=\"NO\" clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"scaleAspectFit\" image=\"BootSplashLogo\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"3lX-Ut-9ad\">\n <rect key=\"frame\" x=\"${(375 - width) / 2}\" y=\"${\n (667 - height) / 2\n }\" width=\"${width}\" height=\"${height}\"/>\n <accessibility key=\"accessibilityConfiguration\">\n <accessibilityTraits key=\"traits\" image=\"YES\" notEnabled=\"YES\"/>\n </accessibility>\n </imageView>\n </subviews>\n <viewLayoutGuide key=\"safeArea\" id=\"Bcu-3y-fUS\"/>\n <color key=\"backgroundColor\" red=\"${r}\" green=\"${g}\" blue=\"${b}\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n <accessibility key=\"accessibilityConfiguration\">\n <accessibilityTraits key=\"traits\" notEnabled=\"YES\"/>\n </accessibility>\n <constraints>\n <constraint firstItem=\"3lX-Ut-9ad\" firstAttribute=\"centerX\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"centerX\" id=\"Fh9-Fy-1nT\"/>\n <constraint firstItem=\"3lX-Ut-9ad\" firstAttribute=\"centerY\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"centerY\" id=\"nvB-Ic-PnI\"/>\n </constraints>\n </view>\n </viewController>\n <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"iYj-Kq-Ea1\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n </objects>\n <point key=\"canvasLocation\" x=\"0.0\" y=\"0.0\"/>\n </scene>\n </scenes>\n <resources>\n <image name=\"${xcassetName}\" width=\"${width}\" height=\"${height}\"/>\n </resources>\n</document>\n`;\n};\n\nconst log = (text: string, dim = false) => {\n console.log(dim ? pc.dim(text) : text);\n};\n\nconst isValidHexadecimal = (value: string) =>\n /^#?([0-9A-F]{3}){1,2}$/i.test(value);\n\nconst toFullHexadecimal = (hex: string) => {\n const prefixed = hex[0] === \"#\" ? hex : `#${hex}`;\n const up = prefixed.toUpperCase();\n\n return up.length === 4\n ? \"#\" + up[1] + up[1] + up[2] + up[2] + up[3] + up[3]\n : up;\n};\n\nexport const generate = async ({\n android,\n ios,\n\n workingPath,\n logoPath,\n backgroundColor,\n logoWidth,\n flavor,\n assetsPath,\n}: {\n android: {\n sourceDir: string;\n appName: string;\n } | null;\n ios: {\n projectPath: string;\n } | null;\n\n workingPath: string;\n logoPath: string;\n assetsPath?: string;\n\n backgroundColor: string;\n flavor: string;\n logoWidth: number;\n}) => {\n if (!isValidHexadecimal(backgroundColor)) {\n throw new Error(\n \"--background-color value is not a valid hexadecimal color.\",\n );\n }\n\n const image = await Jimp.read(logoPath);\n const backgroundColorHex = toFullHexadecimal(backgroundColor);\n\n const getHeight = (size: number) =>\n Math.ceil(size * (image.bitmap.height / image.bitmap.width));\n\n const logWrite = (\n emoji: string,\n filePath: string,\n dimensions?: { width: number; height: number },\n ) =>\n log(\n `${emoji} ${path.relative(workingPath, filePath)}` +\n (dimensions != null\n ? ` (${dimensions.width}x${dimensions.height})`\n : \"\"),\n );\n\n if (assetsPath && fs.existsSync(assetsPath)) {\n log(`\\n ${pc.underline(\"Assets\")}`);\n\n await Promise.all(\n [\n { ratio: 1, suffix: \"\" },\n { ratio: 1.5, suffix: \"@1,5x\" },\n { ratio: 2, suffix: \"@2x\" },\n { ratio: 3, suffix: \"@3x\" },\n { ratio: 4, suffix: \"@4x\" },\n ].map(({ ratio, suffix }) => {\n const fileName = `${logoFileName}${suffix}.png`;\n const filePath = path.resolve(assetsPath, fileName);\n const width = logoWidth * ratio;\n const height = getHeight(width);\n\n return image\n .clone()\n .resize(width, height)\n .quality(100)\n .writeAsync(filePath)\n .then(() => {\n logWrite(\"✨\", filePath, { width, height });\n });\n }),\n );\n }\n\n if (android) {\n log(`\\n ${pc.underline(\"Android\")}`);\n\n const appPath = android.appName\n ? path.resolve(android.sourceDir, android.appName)\n : path.resolve(android.sourceDir); // @react-native-community/cli 2.x & 3.x support\n\n const resPath = path.resolve(appPath, \"src\", flavor, \"res\");\n const valuesPath = path.resolve(resPath, \"values\");\n\n fs.ensureDirSync(valuesPath);\n\n const colorsXmlPath = path.resolve(valuesPath, \"colors.xml\");\n const colorsXmlEntry = `<color name=\"${androidColorName}\">${backgroundColorHex}</color>`;\n\n if (fs.existsSync(colorsXmlPath)) {\n const colorsXml = fs.readFileSync(colorsXmlPath, \"utf-8\");\n\n if (colorsXml.match(androidColorRegex)) {\n fs.writeFileSync(\n colorsXmlPath,\n colorsXml.replace(androidColorRegex, colorsXmlEntry),\n \"utf-8\",\n );\n } else {\n fs.writeFileSync(\n colorsXmlPath,\n colorsXml.replace(\n /<\\/resources>/g,\n ` ${colorsXmlEntry}\\n</resources>`,\n ),\n \"utf-8\",\n );\n }\n\n logWrite(\"✏️ \", colorsXmlPath);\n } else {\n fs.writeFileSync(\n colorsXmlPath,\n `<resources>\\n ${colorsXmlEntry}\\n</resources>\\n`,\n \"utf-8\",\n );\n\n logWrite(\"✨\", colorsXmlPath);\n }\n\n await Promise.all(\n [\n { ratio: 1, directory: \"mipmap-mdpi\" },\n { ratio: 1.5, directory: \"mipmap-hdpi\" },\n { ratio: 2, directory: \"mipmap-xhdpi\" },\n { ratio: 3, directory: \"mipmap-xxhdpi\" },\n { ratio: 4, directory: \"mipmap-xxxhdpi\" },\n ].map(({ ratio, directory }) => {\n const fileName = `${logoFileName}.png`;\n const filePath = path.resolve(resPath, directory, fileName);\n const width = logoWidth * ratio;\n const height = getHeight(width);\n\n const canvasSize = splashScreenIconSizeNoBackground * ratio;\n\n // https://github.com/oliver-moran/jimp/tree/master/packages/jimp#creating-new-images\n const canvas = new Jimp(canvasSize, canvasSize, 0xffffff00);\n const logo = image.clone().resize(width, height);\n\n const x = (canvasSize - width) / 2;\n const y = (canvasSize - height) / 2;\n\n return canvas\n .blit(logo, x, y)\n .quality(100)\n .writeAsync(filePath)\n .then(() => {\n logWrite(\"✨\", filePath, { width: canvasSize, height: canvasSize });\n });\n }),\n );\n }\n\n if (ios) {\n log(`\\n ${pc.underline(\"iOS\")}`);\n\n const { projectPath } = ios;\n const imagesPath = path.resolve(projectPath, \"Images.xcassets\");\n\n if (fs.existsSync(projectPath)) {\n const storyboardPath = path.resolve(projectPath, \"BootSplash.storyboard\");\n\n fs.writeFileSync(\n storyboardPath,\n getStoryboard({\n height: getHeight(logoWidth),\n width: logoWidth,\n backgroundColor: backgroundColorHex,\n }),\n \"utf-8\",\n );\n\n logWrite(\"✨\", storyboardPath);\n } else {\n log(\n `No \"${projectPath}\" directory found. Skipping iOS storyboard generation…`,\n );\n }\n\n if (fs.existsSync(imagesPath)) {\n const imageSetPath = path.resolve(imagesPath, xcassetName + \".imageset\");\n fs.ensureDirSync(imageSetPath);\n\n fs.writeFileSync(\n path.resolve(imageSetPath, \"Contents.json\"),\n ContentsJson,\n \"utf-8\",\n );\n\n await Promise.all(\n [\n { ratio: 1, suffix: \"\" },\n { ratio: 2, suffix: \"@2x\" },\n { ratio: 3, suffix: \"@3x\" },\n ].map(({ ratio, suffix }) => {\n const fileName = `${logoFileName}${suffix}.png`;\n const filePath = path.resolve(imageSetPath, fileName);\n const width = logoWidth * ratio;\n const height = getHeight(width);\n\n return image\n .clone()\n .resize(width, height)\n .quality(100)\n .writeAsync(filePath)\n .then(() => {\n logWrite(\"✨\", filePath, { width, height });\n });\n }),\n );\n } else {\n log(\n `No \"${imagesPath}\" directory found. Skipping iOS images generation…`,\n );\n }\n }\n\n log(`\n ${pc.blue(\"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\")}\n ${pc.blue(\"┃\")} 💖 ${pc.bold(\n \"Love this library? Consider sponsoring!\",\n )} ${pc.blue(\"┃\")}\n ${pc.blue(\"┃\")} One-time amounts are available. ${pc.blue(\"┃\")}\n ${pc.blue(\"┃\")} ${pc.underline(\n \"https://github.com/sponsors/zoontek\",\n )} ${pc.blue(\"┃\")}\n ${pc.blue(\"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\")}\n`);\n\n log(`✅ Done! Thanks for using ${pc.underline(\"react-native-bootsplash\")}.`);\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["logoFileName","xcassetName","splashScreenIconSizeNoBackground","androidColorName","androidColorRegex","ContentsJson","getStoryboard","height","width","backgroundColor","hex","r","parseInt","toPrecision","g","b","log","text","dim","console","pc","isValidHexadecimal","value","test","toFullHexadecimal","prefixed","up","toUpperCase","length","generate","android","ios","workingPath","logoPath","logoWidth","flavor","assetsPath","Error","image","Jimp","read","backgroundColorHex","getHeight","size","Math","ceil","bitmap","logWrite","emoji","filePath","dimensions","path","relative","fs","existsSync","underline","Promise","all","ratio","suffix","map","fileName","resolve","clone","resize","quality","writeAsync","then","appPath","appName","sourceDir","resPath","valuesPath","ensureDirSync","colorsXmlPath","colorsXmlEntry","colorsXml","readFileSync","match","writeFileSync","replace","directory","canvasSize","canvas","logo","x","y","blit","projectPath","imagesPath","storyboardPath","imageSetPath","blue","bold"],"sourceRoot":"../../src","sources":["generate.ts"],"mappings":"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"}
@@ -6,23 +6,20 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  exports.getVisibilityStatus = getVisibilityStatus;
8
8
  exports.hide = hide;
9
-
10
9
  var _reactNative = require("react-native");
11
-
12
10
  const NativeModule = _reactNative.NativeModules.RNBootSplash;
13
-
11
+ const DEFAULT_DURATION = 220;
14
12
  function hide() {
15
13
  let config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
16
- return NativeModule.hide({
17
- fade: false,
18
- ...config
19
- }.fade).then(() => {});
14
+ const {
15
+ fade = false,
16
+ duration = DEFAULT_DURATION
17
+ } = config;
18
+ return NativeModule.hide(fade, Math.max(duration, DEFAULT_DURATION)).then(() => {});
20
19
  }
21
-
22
20
  function getVisibilityStatus() {
23
21
  return NativeModule.getVisibilityStatus();
24
22
  }
25
-
26
23
  var _default = {
27
24
  hide,
28
25
  getVisibilityStatus
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModule","NativeModules","RNBootSplash","hide","config","fade","then","getVisibilityStatus"],"sources":["index.ts"],"sourcesContent":["import { NativeModules } from \"react-native\";\n\nexport type VisibilityStatus = \"visible\" | \"hidden\" | \"transitioning\";\nexport type Config = { fade?: boolean };\n\nconst NativeModule: {\n hide: (fade: boolean) => Promise<true>;\n getVisibilityStatus: () => Promise<VisibilityStatus>;\n} = NativeModules.RNBootSplash;\n\nexport function hide(config: Config = {}): Promise<void> {\n return NativeModule.hide({ fade: false, ...config }.fade).then(() => {});\n}\n\nexport function getVisibilityStatus(): Promise<VisibilityStatus> {\n return NativeModule.getVisibilityStatus();\n}\n\nexport default {\n hide,\n getVisibilityStatus,\n};\n"],"mappings":";;;;;;;;;AAAA;;AAKA,MAAMA,YAGL,GAAGC,0BAAA,CAAcC,YAHlB;;AAKO,SAASC,IAAT,GAAkD;EAAA,IAApCC,MAAoC,uEAAnB,EAAmB;EACvD,OAAOJ,YAAY,CAACG,IAAb,CAAkB;IAAEE,IAAI,EAAE,KAAR;IAAe,GAAGD;EAAlB,EAA2BC,IAA7C,EAAmDC,IAAnD,CAAwD,MAAM,CAAE,CAAhE,CAAP;AACD;;AAEM,SAASC,mBAAT,GAA0D;EAC/D,OAAOP,YAAY,CAACO,mBAAb,EAAP;AACD;;eAEc;EACbJ,IADa;EAEbI;AAFa,C"}
1
+ {"version":3,"names":["NativeModule","NativeModules","RNBootSplash","DEFAULT_DURATION","hide","config","fade","duration","Math","max","then","getVisibilityStatus"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;AAAA;AAKA,MAAMA,YAGL,GAAGC,0BAAa,CAACC,YAAY;AAE9B,MAAMC,gBAAgB,GAAG,GAAG;AAErB,SAASC,IAAI,GAAqC;EAAA,IAApCC,MAAc,uEAAG,CAAC,CAAC;EACtC,MAAM;IAAEC,IAAI,GAAG,KAAK;IAAEC,QAAQ,GAAGJ;EAAiB,CAAC,GAAGE,MAAM;EAC5D,OAAOL,YAAY,CAACI,IAAI,CAACE,IAAI,EAAEE,IAAI,CAACC,GAAG,CAACF,QAAQ,EAAEJ,gBAAgB,CAAC,CAAC,CAACO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACrF;AAEO,SAASC,mBAAmB,GAA8B;EAC/D,OAAOX,YAAY,CAACW,mBAAmB,EAAE;AAC3C;AAAC,eAEc;EACbP,IAAI;EACJO;AACF,CAAC;AAAA"}
@@ -3,8 +3,8 @@ import Jimp from "jimp";
3
3
  import path from "path";
4
4
  import pc from "picocolors";
5
5
  const logoFileName = "bootsplash_logo";
6
- const xcassetName = "BootSplashLogo"; // https://github.com/androidx/androidx/blob/androidx-main/core/core-splashscreen/src/main/res/values/dimens.xml#L22
7
-
6
+ const xcassetName = "BootSplashLogo";
7
+ // https://github.com/androidx/androidx/blob/androidx-main/core/core-splashscreen/src/main/res/values/dimens.xml#L22
8
8
  const splashScreenIconSizeNoBackground = 288;
9
9
  const androidColorName = "bootsplash_background";
10
10
  const androidColorRegex = /<color name="bootsplash_background">#\w+<\/color>/g;
@@ -32,7 +32,6 @@ const ContentsJson = `{
32
32
  }
33
33
  }
34
34
  `;
35
-
36
35
  const getStoryboard = _ref => {
37
36
  let {
38
37
  height,
@@ -89,20 +88,16 @@ const getStoryboard = _ref => {
89
88
  </document>
90
89
  `;
91
90
  };
92
-
93
91
  const log = function (text) {
94
92
  let dim = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
95
93
  console.log(dim ? pc.dim(text) : text);
96
94
  };
97
-
98
95
  const isValidHexadecimal = value => /^#?([0-9A-F]{3}){1,2}$/i.test(value);
99
-
100
96
  const toFullHexadecimal = hex => {
101
97
  const prefixed = hex[0] === "#" ? hex : `#${hex}`;
102
98
  const up = prefixed.toUpperCase();
103
99
  return up.length === 4 ? "#" + up[1] + up[1] + up[2] + up[2] + up[3] + up[3] : up;
104
100
  };
105
-
106
101
  export const generate = async _ref2 => {
107
102
  let {
108
103
  android,
@@ -114,18 +109,13 @@ export const generate = async _ref2 => {
114
109
  flavor,
115
110
  assetsPath
116
111
  } = _ref2;
117
-
118
112
  if (!isValidHexadecimal(backgroundColor)) {
119
113
  throw new Error("--background-color value is not a valid hexadecimal color.");
120
114
  }
121
-
122
115
  const image = await Jimp.read(logoPath);
123
116
  const backgroundColorHex = toFullHexadecimal(backgroundColor);
124
-
125
117
  const getHeight = size => Math.ceil(size * (image.bitmap.height / image.bitmap.width));
126
-
127
118
  const logWrite = (emoji, filePath, dimensions) => log(`${emoji} ${path.relative(workingPath, filePath)}` + (dimensions != null ? ` (${dimensions.width}x${dimensions.height})` : ""));
128
-
129
119
  if (assetsPath && fs.existsSync(assetsPath)) {
130
120
  log(`\n ${pc.underline("Assets")}`);
131
121
  await Promise.all([{
@@ -160,7 +150,6 @@ export const generate = async _ref2 => {
160
150
  });
161
151
  }));
162
152
  }
163
-
164
153
  if (android) {
165
154
  log(`\n ${pc.underline("Android")}`);
166
155
  const appPath = android.appName ? path.resolve(android.sourceDir, android.appName) : path.resolve(android.sourceDir); // @react-native-community/cli 2.x & 3.x support
@@ -170,22 +159,18 @@ export const generate = async _ref2 => {
170
159
  fs.ensureDirSync(valuesPath);
171
160
  const colorsXmlPath = path.resolve(valuesPath, "colors.xml");
172
161
  const colorsXmlEntry = `<color name="${androidColorName}">${backgroundColorHex}</color>`;
173
-
174
162
  if (fs.existsSync(colorsXmlPath)) {
175
163
  const colorsXml = fs.readFileSync(colorsXmlPath, "utf-8");
176
-
177
164
  if (colorsXml.match(androidColorRegex)) {
178
165
  fs.writeFileSync(colorsXmlPath, colorsXml.replace(androidColorRegex, colorsXmlEntry), "utf-8");
179
166
  } else {
180
167
  fs.writeFileSync(colorsXmlPath, colorsXml.replace(/<\/resources>/g, ` ${colorsXmlEntry}\n</resources>`), "utf-8");
181
168
  }
182
-
183
169
  logWrite("✏️ ", colorsXmlPath);
184
170
  } else {
185
171
  fs.writeFileSync(colorsXmlPath, `<resources>\n ${colorsXmlEntry}\n</resources>\n`, "utf-8");
186
172
  logWrite("✨", colorsXmlPath);
187
173
  }
188
-
189
174
  await Promise.all([{
190
175
  ratio: 1,
191
176
  directory: "mipmap-mdpi"
@@ -210,8 +195,9 @@ export const generate = async _ref2 => {
210
195
  const filePath = path.resolve(resPath, directory, fileName);
211
196
  const width = logoWidth * ratio;
212
197
  const height = getHeight(width);
213
- const canvasSize = splashScreenIconSizeNoBackground * ratio; // https://github.com/oliver-moran/jimp/tree/master/packages/jimp#creating-new-images
198
+ const canvasSize = splashScreenIconSizeNoBackground * ratio;
214
199
 
200
+ // https://github.com/oliver-moran/jimp/tree/master/packages/jimp#creating-new-images
215
201
  const canvas = new Jimp(canvasSize, canvasSize, 0xffffff00);
216
202
  const logo = image.clone().resize(width, height);
217
203
  const x = (canvasSize - width) / 2;
@@ -224,14 +210,12 @@ export const generate = async _ref2 => {
224
210
  });
225
211
  }));
226
212
  }
227
-
228
213
  if (ios) {
229
214
  log(`\n ${pc.underline("iOS")}`);
230
215
  const {
231
216
  projectPath
232
217
  } = ios;
233
218
  const imagesPath = path.resolve(projectPath, "Images.xcassets");
234
-
235
219
  if (fs.existsSync(projectPath)) {
236
220
  const storyboardPath = path.resolve(projectPath, "BootSplash.storyboard");
237
221
  fs.writeFileSync(storyboardPath, getStoryboard({
@@ -243,7 +227,6 @@ export const generate = async _ref2 => {
243
227
  } else {
244
228
  log(`No "${projectPath}" directory found. Skipping iOS storyboard generation…`);
245
229
  }
246
-
247
230
  if (fs.existsSync(imagesPath)) {
248
231
  const imageSetPath = path.resolve(imagesPath, xcassetName + ".imageset");
249
232
  fs.ensureDirSync(imageSetPath);
@@ -277,7 +260,6 @@ export const generate = async _ref2 => {
277
260
  log(`No "${imagesPath}" directory found. Skipping iOS images generation…`);
278
261
  }
279
262
  }
280
-
281
263
  log(`
282
264
  ${pc.blue("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓")}
283
265
  ${pc.blue("┃")} 💖 ${pc.bold("Love this library? Consider sponsoring!")} ${pc.blue("┃")}
@@ -1 +1 @@
1
- {"version":3,"names":["fs","Jimp","path","pc","logoFileName","xcassetName","splashScreenIconSizeNoBackground","androidColorName","androidColorRegex","ContentsJson","getStoryboard","height","width","backgroundColor","hex","r","parseInt","toPrecision","g","b","log","text","dim","console","isValidHexadecimal","value","test","toFullHexadecimal","prefixed","up","toUpperCase","length","generate","android","ios","workingPath","logoPath","logoWidth","flavor","assetsPath","Error","image","read","backgroundColorHex","getHeight","size","Math","ceil","bitmap","logWrite","emoji","filePath","dimensions","relative","existsSync","underline","Promise","all","ratio","suffix","map","fileName","resolve","clone","resize","quality","writeAsync","then","appPath","appName","sourceDir","resPath","valuesPath","ensureDirSync","colorsXmlPath","colorsXmlEntry","colorsXml","readFileSync","match","writeFileSync","replace","directory","canvasSize","canvas","logo","x","y","blit","projectPath","imagesPath","storyboardPath","imageSetPath","blue","bold"],"sources":["generate.ts"],"sourcesContent":["import fs from \"fs-extra\";\nimport Jimp from \"jimp\";\nimport path from \"path\";\nimport pc from \"picocolors\";\n\nconst logoFileName = \"bootsplash_logo\";\nconst xcassetName = \"BootSplashLogo\";\n// https://github.com/androidx/androidx/blob/androidx-main/core/core-splashscreen/src/main/res/values/dimens.xml#L22\nconst splashScreenIconSizeNoBackground = 288;\nconst androidColorName = \"bootsplash_background\";\nconst androidColorRegex = /<color name=\"bootsplash_background\">#\\w+<\\/color>/g;\n\nconst ContentsJson = `{\n \"images\": [\n {\n \"idiom\": \"universal\",\n \"filename\": \"${logoFileName}.png\",\n \"scale\": \"1x\"\n },\n {\n \"idiom\": \"universal\",\n \"filename\": \"${logoFileName}@2x.png\",\n \"scale\": \"2x\"\n },\n {\n \"idiom\": \"universal\",\n \"filename\": \"${logoFileName}@3x.png\",\n \"scale\": \"3x\"\n }\n ],\n \"info\": {\n \"version\": 1,\n \"author\": \"xcode\"\n }\n}\n`;\n\nconst getStoryboard = ({\n height,\n width,\n backgroundColor: hex,\n}: {\n height: number;\n width: number;\n backgroundColor: string;\n}) => {\n const r = (parseInt(hex[1] + hex[2], 16) / 255).toPrecision(15);\n const g = (parseInt(hex[3] + hex[4], 16) / 255).toPrecision(15);\n const b = (parseInt(hex[5] + hex[6], 16) / 255).toPrecision(15);\n\n return `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"17147\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" launchScreen=\"YES\" useTraitCollections=\"YES\" useSafeAreas=\"YES\" colorMatched=\"YES\" initialViewController=\"01J-lp-oVM\">\n <device id=\"retina4_7\" orientation=\"portrait\" appearance=\"light\"/>\n <dependencies>\n <deployment identifier=\"iOS\"/>\n <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"17120\"/>\n <capability name=\"Safe area layout guides\" minToolsVersion=\"9.0\"/>\n <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n </dependencies>\n <scenes>\n <!--View Controller-->\n <scene sceneID=\"EHf-IW-A2E\">\n <objects>\n <viewController id=\"01J-lp-oVM\" sceneMemberID=\"viewController\">\n <view key=\"view\" autoresizesSubviews=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"scaleToFill\" id=\"Ze5-6b-2t3\">\n <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"667\"/>\n <autoresizingMask key=\"autoresizingMask\"/>\n <subviews>\n <imageView autoresizesSubviews=\"NO\" clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"scaleAspectFit\" image=\"BootSplashLogo\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"3lX-Ut-9ad\">\n <rect key=\"frame\" x=\"${(375 - width) / 2}\" y=\"${\n (667 - height) / 2\n }\" width=\"${width}\" height=\"${height}\"/>\n <accessibility key=\"accessibilityConfiguration\">\n <accessibilityTraits key=\"traits\" image=\"YES\" notEnabled=\"YES\"/>\n </accessibility>\n </imageView>\n </subviews>\n <viewLayoutGuide key=\"safeArea\" id=\"Bcu-3y-fUS\"/>\n <color key=\"backgroundColor\" red=\"${r}\" green=\"${g}\" blue=\"${b}\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n <accessibility key=\"accessibilityConfiguration\">\n <accessibilityTraits key=\"traits\" notEnabled=\"YES\"/>\n </accessibility>\n <constraints>\n <constraint firstItem=\"3lX-Ut-9ad\" firstAttribute=\"centerX\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"centerX\" id=\"Fh9-Fy-1nT\"/>\n <constraint firstItem=\"3lX-Ut-9ad\" firstAttribute=\"centerY\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"centerY\" id=\"nvB-Ic-PnI\"/>\n </constraints>\n </view>\n </viewController>\n <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"iYj-Kq-Ea1\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n </objects>\n <point key=\"canvasLocation\" x=\"0.0\" y=\"0.0\"/>\n </scene>\n </scenes>\n <resources>\n <image name=\"${xcassetName}\" width=\"${width}\" height=\"${height}\"/>\n </resources>\n</document>\n`;\n};\n\nconst log = (text: string, dim = false) => {\n console.log(dim ? pc.dim(text) : text);\n};\n\nconst isValidHexadecimal = (value: string) =>\n /^#?([0-9A-F]{3}){1,2}$/i.test(value);\n\nconst toFullHexadecimal = (hex: string) => {\n const prefixed = hex[0] === \"#\" ? hex : `#${hex}`;\n const up = prefixed.toUpperCase();\n\n return up.length === 4\n ? \"#\" + up[1] + up[1] + up[2] + up[2] + up[3] + up[3]\n : up;\n};\n\nexport const generate = async ({\n android,\n ios,\n\n workingPath,\n logoPath,\n backgroundColor,\n logoWidth,\n flavor,\n assetsPath,\n}: {\n android: {\n sourceDir: string;\n appName: string;\n } | null;\n ios: {\n projectPath: string;\n } | null;\n\n workingPath: string;\n logoPath: string;\n assetsPath?: string;\n\n backgroundColor: string;\n flavor: string;\n logoWidth: number;\n}) => {\n if (!isValidHexadecimal(backgroundColor)) {\n throw new Error(\n \"--background-color value is not a valid hexadecimal color.\",\n );\n }\n\n const image = await Jimp.read(logoPath);\n const backgroundColorHex = toFullHexadecimal(backgroundColor);\n\n const getHeight = (size: number) =>\n Math.ceil(size * (image.bitmap.height / image.bitmap.width));\n\n const logWrite = (\n emoji: string,\n filePath: string,\n dimensions?: { width: number; height: number },\n ) =>\n log(\n `${emoji} ${path.relative(workingPath, filePath)}` +\n (dimensions != null\n ? ` (${dimensions.width}x${dimensions.height})`\n : \"\"),\n );\n\n if (assetsPath && fs.existsSync(assetsPath)) {\n log(`\\n ${pc.underline(\"Assets\")}`);\n\n await Promise.all(\n [\n { ratio: 1, suffix: \"\" },\n { ratio: 1.5, suffix: \"@1,5x\" },\n { ratio: 2, suffix: \"@2x\" },\n { ratio: 3, suffix: \"@3x\" },\n { ratio: 4, suffix: \"@4x\" },\n ].map(({ ratio, suffix }) => {\n const fileName = `${logoFileName}${suffix}.png`;\n const filePath = path.resolve(assetsPath, fileName);\n const width = logoWidth * ratio;\n const height = getHeight(width);\n\n return image\n .clone()\n .resize(width, height)\n .quality(100)\n .writeAsync(filePath)\n .then(() => {\n logWrite(\"✨\", filePath, { width, height });\n });\n }),\n );\n }\n\n if (android) {\n log(`\\n ${pc.underline(\"Android\")}`);\n\n const appPath = android.appName\n ? path.resolve(android.sourceDir, android.appName)\n : path.resolve(android.sourceDir); // @react-native-community/cli 2.x & 3.x support\n\n const resPath = path.resolve(appPath, \"src\", flavor, \"res\");\n const valuesPath = path.resolve(resPath, \"values\");\n\n fs.ensureDirSync(valuesPath);\n\n const colorsXmlPath = path.resolve(valuesPath, \"colors.xml\");\n const colorsXmlEntry = `<color name=\"${androidColorName}\">${backgroundColorHex}</color>`;\n\n if (fs.existsSync(colorsXmlPath)) {\n const colorsXml = fs.readFileSync(colorsXmlPath, \"utf-8\");\n\n if (colorsXml.match(androidColorRegex)) {\n fs.writeFileSync(\n colorsXmlPath,\n colorsXml.replace(androidColorRegex, colorsXmlEntry),\n \"utf-8\",\n );\n } else {\n fs.writeFileSync(\n colorsXmlPath,\n colorsXml.replace(\n /<\\/resources>/g,\n ` ${colorsXmlEntry}\\n</resources>`,\n ),\n \"utf-8\",\n );\n }\n\n logWrite(\"✏️ \", colorsXmlPath);\n } else {\n fs.writeFileSync(\n colorsXmlPath,\n `<resources>\\n ${colorsXmlEntry}\\n</resources>\\n`,\n \"utf-8\",\n );\n\n logWrite(\"✨\", colorsXmlPath);\n }\n\n await Promise.all(\n [\n { ratio: 1, directory: \"mipmap-mdpi\" },\n { ratio: 1.5, directory: \"mipmap-hdpi\" },\n { ratio: 2, directory: \"mipmap-xhdpi\" },\n { ratio: 3, directory: \"mipmap-xxhdpi\" },\n { ratio: 4, directory: \"mipmap-xxxhdpi\" },\n ].map(({ ratio, directory }) => {\n const fileName = `${logoFileName}.png`;\n const filePath = path.resolve(resPath, directory, fileName);\n const width = logoWidth * ratio;\n const height = getHeight(width);\n\n const canvasSize = splashScreenIconSizeNoBackground * ratio;\n\n // https://github.com/oliver-moran/jimp/tree/master/packages/jimp#creating-new-images\n const canvas = new Jimp(canvasSize, canvasSize, 0xffffff00);\n const logo = image.clone().resize(width, height);\n\n const x = (canvasSize - width) / 2;\n const y = (canvasSize - height) / 2;\n\n return canvas\n .blit(logo, x, y)\n .quality(100)\n .writeAsync(filePath)\n .then(() => {\n logWrite(\"✨\", filePath, { width: canvasSize, height: canvasSize });\n });\n }),\n );\n }\n\n if (ios) {\n log(`\\n ${pc.underline(\"iOS\")}`);\n\n const { projectPath } = ios;\n const imagesPath = path.resolve(projectPath, \"Images.xcassets\");\n\n if (fs.existsSync(projectPath)) {\n const storyboardPath = path.resolve(projectPath, \"BootSplash.storyboard\");\n\n fs.writeFileSync(\n storyboardPath,\n getStoryboard({\n height: getHeight(logoWidth),\n width: logoWidth,\n backgroundColor: backgroundColorHex,\n }),\n \"utf-8\",\n );\n\n logWrite(\"✨\", storyboardPath);\n } else {\n log(\n `No \"${projectPath}\" directory found. Skipping iOS storyboard generation…`,\n );\n }\n\n if (fs.existsSync(imagesPath)) {\n const imageSetPath = path.resolve(imagesPath, xcassetName + \".imageset\");\n fs.ensureDirSync(imageSetPath);\n\n fs.writeFileSync(\n path.resolve(imageSetPath, \"Contents.json\"),\n ContentsJson,\n \"utf-8\",\n );\n\n await Promise.all(\n [\n { ratio: 1, suffix: \"\" },\n { ratio: 2, suffix: \"@2x\" },\n { ratio: 3, suffix: \"@3x\" },\n ].map(({ ratio, suffix }) => {\n const fileName = `${logoFileName}${suffix}.png`;\n const filePath = path.resolve(imageSetPath, fileName);\n const width = logoWidth * ratio;\n const height = getHeight(width);\n\n return image\n .clone()\n .resize(width, height)\n .quality(100)\n .writeAsync(filePath)\n .then(() => {\n logWrite(\"✨\", filePath, { width, height });\n });\n }),\n );\n } else {\n log(\n `No \"${imagesPath}\" directory found. Skipping iOS images generation…`,\n );\n }\n }\n\n log(`\n ${pc.blue(\"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\")}\n ${pc.blue(\"┃\")} 💖 ${pc.bold(\n \"Love this library? Consider sponsoring!\",\n )} ${pc.blue(\"┃\")}\n ${pc.blue(\"┃\")} One-time amounts are available. ${pc.blue(\"┃\")}\n ${pc.blue(\"┃\")} ${pc.underline(\n \"https://github.com/sponsors/zoontek\",\n )} ${pc.blue(\"┃\")}\n ${pc.blue(\"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\")}\n`);\n\n log(`✅ Done! Thanks for using ${pc.underline(\"react-native-bootsplash\")}.`);\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["fs","Jimp","path","pc","logoFileName","xcassetName","splashScreenIconSizeNoBackground","androidColorName","androidColorRegex","ContentsJson","getStoryboard","height","width","backgroundColor","hex","r","parseInt","toPrecision","g","b","log","text","dim","console","isValidHexadecimal","value","test","toFullHexadecimal","prefixed","up","toUpperCase","length","generate","android","ios","workingPath","logoPath","logoWidth","flavor","assetsPath","Error","image","read","backgroundColorHex","getHeight","size","Math","ceil","bitmap","logWrite","emoji","filePath","dimensions","relative","existsSync","underline","Promise","all","ratio","suffix","map","fileName","resolve","clone","resize","quality","writeAsync","then","appPath","appName","sourceDir","resPath","valuesPath","ensureDirSync","colorsXmlPath","colorsXmlEntry","colorsXml","readFileSync","match","writeFileSync","replace","directory","canvasSize","canvas","logo","x","y","blit","projectPath","imagesPath","storyboardPath","imageSetPath","blue","bold"],"sourceRoot":"../../src","sources":["generate.ts"],"mappings":"AAAA,OAAOA,EAAE,MAAM,UAAU;AACzB,OAAOC,IAAI,MAAM,MAAM;AACvB,OAAOC,IAAI,MAAM,MAAM;AACvB,OAAOC,EAAE,MAAM,YAAY;AAE3B,MAAMC,YAAY,GAAG,iBAAiB;AACtC,MAAMC,WAAW,GAAG,gBAAgB;AACpC;AACA,MAAMC,gCAAgC,GAAG,GAAG;AAC5C,MAAMC,gBAAgB,GAAG,uBAAuB;AAChD,MAAMC,iBAAiB,GAAG,oDAAoD;AAE9E,MAAMC,YAAY,GAAI;AACtB;AACA;AACA;AACA,qBAAqBL,YAAa;AAClC;AACA;AACA;AACA;AACA,qBAAqBA,YAAa;AAClC;AACA;AACA;AACA;AACA,qBAAqBA,YAAa;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,MAAMM,aAAa,GAAG,QAQhB;EAAA,IARiB;IACrBC,MAAM;IACNC,KAAK;IACLC,eAAe,EAAEC;EAKnB,CAAC;EACC,MAAMC,CAAC,GAAG,CAACC,QAAQ,CAACF,GAAG,CAAC,CAAC,CAAC,GAAGA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,EAAEG,WAAW,CAAC,EAAE,CAAC;EAC/D,MAAMC,CAAC,GAAG,CAACF,QAAQ,CAACF,GAAG,CAAC,CAAC,CAAC,GAAGA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,EAAEG,WAAW,CAAC,EAAE,CAAC;EAC/D,MAAME,CAAC,GAAG,CAACH,QAAQ,CAACF,GAAG,CAAC,CAAC,CAAC,GAAGA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,EAAEG,WAAW,CAAC,EAAE,CAAC;EAE/D,OAAQ;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,CAAC,GAAG,GAAGL,KAAK,IAAI,CAAE,QACrE,CAAC,GAAG,GAAGD,MAAM,IAAI,CAClB,YAAWC,KAAM,aAAYD,MAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4DI,CAAE,YAAWG,CAAE,WAAUC,CAAE;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuBd,WAAY,YAAWO,KAAM,aAAYD,MAAO;AACvE;AACA;AACA,CAAC;AACD,CAAC;AAED,MAAMS,GAAG,GAAG,UAACC,IAAY,EAAkB;EAAA,IAAhBC,GAAG,uEAAG,KAAK;EACpCC,OAAO,CAACH,GAAG,CAACE,GAAG,GAAGnB,EAAE,CAACmB,GAAG,CAACD,IAAI,CAAC,GAAGA,IAAI,CAAC;AACxC,CAAC;AAED,MAAMG,kBAAkB,GAAIC,KAAa,IACvC,yBAAyB,CAACC,IAAI,CAACD,KAAK,CAAC;AAEvC,MAAME,iBAAiB,GAAIb,GAAW,IAAK;EACzC,MAAMc,QAAQ,GAAGd,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,GAAGA,GAAG,GAAI,IAAGA,GAAI,EAAC;EACjD,MAAMe,EAAE,GAAGD,QAAQ,CAACE,WAAW,EAAE;EAEjC,OAAOD,EAAE,CAACE,MAAM,KAAK,CAAC,GAClB,GAAG,GAAGF,EAAE,CAAC,CAAC,CAAC,GAAGA,EAAE,CAAC,CAAC,CAAC,GAAGA,EAAE,CAAC,CAAC,CAAC,GAAGA,EAAE,CAAC,CAAC,CAAC,GAAGA,EAAE,CAAC,CAAC,CAAC,GAAGA,EAAE,CAAC,CAAC,CAAC,GACnDA,EAAE;AACR,CAAC;AAED,OAAO,MAAMG,QAAQ,GAAG,eA0BlB;EAAA,IA1ByB;IAC7BC,OAAO;IACPC,GAAG;IAEHC,WAAW;IACXC,QAAQ;IACRvB,eAAe;IACfwB,SAAS;IACTC,MAAM;IACNC;EAiBF,CAAC;EACC,IAAI,CAACf,kBAAkB,CAACX,eAAe,CAAC,EAAE;IACxC,MAAM,IAAI2B,KAAK,CACb,4DAA4D,CAC7D;EACH;EAEA,MAAMC,KAAK,GAAG,MAAMxC,IAAI,CAACyC,IAAI,CAACN,QAAQ,CAAC;EACvC,MAAMO,kBAAkB,GAAGhB,iBAAiB,CAACd,eAAe,CAAC;EAE7D,MAAM+B,SAAS,GAAIC,IAAY,IAC7BC,IAAI,CAACC,IAAI,CAACF,IAAI,IAAIJ,KAAK,CAACO,MAAM,CAACrC,MAAM,GAAG8B,KAAK,CAACO,MAAM,CAACpC,KAAK,CAAC,CAAC;EAE9D,MAAMqC,QAAQ,GAAG,CACfC,KAAa,EACbC,QAAgB,EAChBC,UAA8C,KAE9ChC,GAAG,CACA,GAAE8B,KAAM,KAAIhD,IAAI,CAACmD,QAAQ,CAAClB,WAAW,EAAEgB,QAAQ,CAAE,EAAC,IAChDC,UAAU,IAAI,IAAI,GACd,KAAIA,UAAU,CAACxC,KAAM,IAAGwC,UAAU,CAACzC,MAAO,GAAE,GAC7C,EAAE,CAAC,CACV;EAEH,IAAI4B,UAAU,IAAIvC,EAAE,CAACsD,UAAU,CAACf,UAAU,CAAC,EAAE;IAC3CnB,GAAG,CAAE,SAAQjB,EAAE,CAACoD,SAAS,CAAC,QAAQ,CAAE,EAAC,CAAC;IAEtC,MAAMC,OAAO,CAACC,GAAG,CACf,CACE;MAAEC,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAG,CAAC,EACxB;MAAED,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE;IAAQ,CAAC,EAC/B;MAAED,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAM,CAAC,EAC3B;MAAED,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAM,CAAC,EAC3B;MAAED,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAM,CAAC,CAC5B,CAACC,GAAG,CAAC,SAAuB;MAAA,IAAtB;QAAEF,KAAK;QAAEC;MAAO,CAAC;MACtB,MAAME,QAAQ,GAAI,GAAEzD,YAAa,GAAEuD,MAAO,MAAK;MAC/C,MAAMR,QAAQ,GAAGjD,IAAI,CAAC4D,OAAO,CAACvB,UAAU,EAAEsB,QAAQ,CAAC;MACnD,MAAMjD,KAAK,GAAGyB,SAAS,GAAGqB,KAAK;MAC/B,MAAM/C,MAAM,GAAGiC,SAAS,CAAChC,KAAK,CAAC;MAE/B,OAAO6B,KAAK,CACTsB,KAAK,EAAE,CACPC,MAAM,CAACpD,KAAK,EAAED,MAAM,CAAC,CACrBsD,OAAO,CAAC,GAAG,CAAC,CACZC,UAAU,CAACf,QAAQ,CAAC,CACpBgB,IAAI,CAAC,MAAM;QACVlB,QAAQ,CAAC,GAAG,EAAEE,QAAQ,EAAE;UAAEvC,KAAK;UAAED;QAAO,CAAC,CAAC;MAC5C,CAAC,CAAC;IACN,CAAC,CAAC,CACH;EACH;EAEA,IAAIsB,OAAO,EAAE;IACXb,GAAG,CAAE,SAAQjB,EAAE,CAACoD,SAAS,CAAC,SAAS,CAAE,EAAC,CAAC;IAEvC,MAAMa,OAAO,GAAGnC,OAAO,CAACoC,OAAO,GAC3BnE,IAAI,CAAC4D,OAAO,CAAC7B,OAAO,CAACqC,SAAS,EAAErC,OAAO,CAACoC,OAAO,CAAC,GAChDnE,IAAI,CAAC4D,OAAO,CAAC7B,OAAO,CAACqC,SAAS,CAAC,CAAC,CAAC;;IAErC,MAAMC,OAAO,GAAGrE,IAAI,CAAC4D,OAAO,CAACM,OAAO,EAAE,KAAK,EAAE9B,MAAM,EAAE,KAAK,CAAC;IAC3D,MAAMkC,UAAU,GAAGtE,IAAI,CAAC4D,OAAO,CAACS,OAAO,EAAE,QAAQ,CAAC;IAElDvE,EAAE,CAACyE,aAAa,CAACD,UAAU,CAAC;IAE5B,MAAME,aAAa,GAAGxE,IAAI,CAAC4D,OAAO,CAACU,UAAU,EAAE,YAAY,CAAC;IAC5D,MAAMG,cAAc,GAAI,gBAAepE,gBAAiB,KAAIoC,kBAAmB,UAAS;IAExF,IAAI3C,EAAE,CAACsD,UAAU,CAACoB,aAAa,CAAC,EAAE;MAChC,MAAME,SAAS,GAAG5E,EAAE,CAAC6E,YAAY,CAACH,aAAa,EAAE,OAAO,CAAC;MAEzD,IAAIE,SAAS,CAACE,KAAK,CAACtE,iBAAiB,CAAC,EAAE;QACtCR,EAAE,CAAC+E,aAAa,CACdL,aAAa,EACbE,SAAS,CAACI,OAAO,CAACxE,iBAAiB,EAAEmE,cAAc,CAAC,EACpD,OAAO,CACR;MACH,CAAC,MAAM;QACL3E,EAAE,CAAC+E,aAAa,CACdL,aAAa,EACbE,SAAS,CAACI,OAAO,CACf,gBAAgB,EACf,OAAML,cAAe,gBAAe,CACtC,EACD,OAAO,CACR;MACH;MAEA1B,QAAQ,CAAC,KAAK,EAAEyB,aAAa,CAAC;IAChC,CAAC,MAAM;MACL1E,EAAE,CAAC+E,aAAa,CACdL,aAAa,EACZ,oBAAmBC,cAAe,kBAAiB,EACpD,OAAO,CACR;MAED1B,QAAQ,CAAC,GAAG,EAAEyB,aAAa,CAAC;IAC9B;IAEA,MAAMlB,OAAO,CAACC,GAAG,CACf,CACE;MAAEC,KAAK,EAAE,CAAC;MAAEuB,SAAS,EAAE;IAAc,CAAC,EACtC;MAAEvB,KAAK,EAAE,GAAG;MAAEuB,SAAS,EAAE;IAAc,CAAC,EACxC;MAAEvB,KAAK,EAAE,CAAC;MAAEuB,SAAS,EAAE;IAAe,CAAC,EACvC;MAAEvB,KAAK,EAAE,CAAC;MAAEuB,SAAS,EAAE;IAAgB,CAAC,EACxC;MAAEvB,KAAK,EAAE,CAAC;MAAEuB,SAAS,EAAE;IAAiB,CAAC,CAC1C,CAACrB,GAAG,CAAC,SAA0B;MAAA,IAAzB;QAAEF,KAAK;QAAEuB;MAAU,CAAC;MACzB,MAAMpB,QAAQ,GAAI,GAAEzD,YAAa,MAAK;MACtC,MAAM+C,QAAQ,GAAGjD,IAAI,CAAC4D,OAAO,CAACS,OAAO,EAAEU,SAAS,EAAEpB,QAAQ,CAAC;MAC3D,MAAMjD,KAAK,GAAGyB,SAAS,GAAGqB,KAAK;MAC/B,MAAM/C,MAAM,GAAGiC,SAAS,CAAChC,KAAK,CAAC;MAE/B,MAAMsE,UAAU,GAAG5E,gCAAgC,GAAGoD,KAAK;;MAE3D;MACA,MAAMyB,MAAM,GAAG,IAAIlF,IAAI,CAACiF,UAAU,EAAEA,UAAU,EAAE,UAAU,CAAC;MAC3D,MAAME,IAAI,GAAG3C,KAAK,CAACsB,KAAK,EAAE,CAACC,MAAM,CAACpD,KAAK,EAAED,MAAM,CAAC;MAEhD,MAAM0E,CAAC,GAAG,CAACH,UAAU,GAAGtE,KAAK,IAAI,CAAC;MAClC,MAAM0E,CAAC,GAAG,CAACJ,UAAU,GAAGvE,MAAM,IAAI,CAAC;MAEnC,OAAOwE,MAAM,CACVI,IAAI,CAACH,IAAI,EAAEC,CAAC,EAAEC,CAAC,CAAC,CAChBrB,OAAO,CAAC,GAAG,CAAC,CACZC,UAAU,CAACf,QAAQ,CAAC,CACpBgB,IAAI,CAAC,MAAM;QACVlB,QAAQ,CAAC,GAAG,EAAEE,QAAQ,EAAE;UAAEvC,KAAK,EAAEsE,UAAU;UAAEvE,MAAM,EAAEuE;QAAW,CAAC,CAAC;MACpE,CAAC,CAAC;IACN,CAAC,CAAC,CACH;EACH;EAEA,IAAIhD,GAAG,EAAE;IACPd,GAAG,CAAE,SAAQjB,EAAE,CAACoD,SAAS,CAAC,KAAK,CAAE,EAAC,CAAC;IAEnC,MAAM;MAAEiC;IAAY,CAAC,GAAGtD,GAAG;IAC3B,MAAMuD,UAAU,GAAGvF,IAAI,CAAC4D,OAAO,CAAC0B,WAAW,EAAE,iBAAiB,CAAC;IAE/D,IAAIxF,EAAE,CAACsD,UAAU,CAACkC,WAAW,CAAC,EAAE;MAC9B,MAAME,cAAc,GAAGxF,IAAI,CAAC4D,OAAO,CAAC0B,WAAW,EAAE,uBAAuB,CAAC;MAEzExF,EAAE,CAAC+E,aAAa,CACdW,cAAc,EACdhF,aAAa,CAAC;QACZC,MAAM,EAAEiC,SAAS,CAACP,SAAS,CAAC;QAC5BzB,KAAK,EAAEyB,SAAS;QAChBxB,eAAe,EAAE8B;MACnB,CAAC,CAAC,EACF,OAAO,CACR;MAEDM,QAAQ,CAAC,GAAG,EAAEyC,cAAc,CAAC;IAC/B,CAAC,MAAM;MACLtE,GAAG,CACA,OAAMoE,WAAY,wDAAuD,CAC3E;IACH;IAEA,IAAIxF,EAAE,CAACsD,UAAU,CAACmC,UAAU,CAAC,EAAE;MAC7B,MAAME,YAAY,GAAGzF,IAAI,CAAC4D,OAAO,CAAC2B,UAAU,EAAEpF,WAAW,GAAG,WAAW,CAAC;MACxEL,EAAE,CAACyE,aAAa,CAACkB,YAAY,CAAC;MAE9B3F,EAAE,CAAC+E,aAAa,CACd7E,IAAI,CAAC4D,OAAO,CAAC6B,YAAY,EAAE,eAAe,CAAC,EAC3ClF,YAAY,EACZ,OAAO,CACR;MAED,MAAM+C,OAAO,CAACC,GAAG,CACf,CACE;QAAEC,KAAK,EAAE,CAAC;QAAEC,MAAM,EAAE;MAAG,CAAC,EACxB;QAAED,KAAK,EAAE,CAAC;QAAEC,MAAM,EAAE;MAAM,CAAC,EAC3B;QAAED,KAAK,EAAE,CAAC;QAAEC,MAAM,EAAE;MAAM,CAAC,CAC5B,CAACC,GAAG,CAAC,SAAuB;QAAA,IAAtB;UAAEF,KAAK;UAAEC;QAAO,CAAC;QACtB,MAAME,QAAQ,GAAI,GAAEzD,YAAa,GAAEuD,MAAO,MAAK;QAC/C,MAAMR,QAAQ,GAAGjD,IAAI,CAAC4D,OAAO,CAAC6B,YAAY,EAAE9B,QAAQ,CAAC;QACrD,MAAMjD,KAAK,GAAGyB,SAAS,GAAGqB,KAAK;QAC/B,MAAM/C,MAAM,GAAGiC,SAAS,CAAChC,KAAK,CAAC;QAE/B,OAAO6B,KAAK,CACTsB,KAAK,EAAE,CACPC,MAAM,CAACpD,KAAK,EAAED,MAAM,CAAC,CACrBsD,OAAO,CAAC,GAAG,CAAC,CACZC,UAAU,CAACf,QAAQ,CAAC,CACpBgB,IAAI,CAAC,MAAM;UACVlB,QAAQ,CAAC,GAAG,EAAEE,QAAQ,EAAE;YAAEvC,KAAK;YAAED;UAAO,CAAC,CAAC;QAC5C,CAAC,CAAC;MACN,CAAC,CAAC,CACH;IACH,CAAC,MAAM;MACLS,GAAG,CACA,OAAMqE,UAAW,oDAAmD,CACtE;IACH;EACF;EAEArE,GAAG,CAAE;AACP,GAAGjB,EAAE,CAACyF,IAAI,CAAC,mDAAmD,CAAE;AAChE,GAAGzF,EAAE,CAACyF,IAAI,CAAC,GAAG,CAAE,SAAQzF,EAAE,CAAC0F,IAAI,CAC3B,yCAAyC,CACzC,KAAI1F,EAAE,CAACyF,IAAI,CAAC,GAAG,CAAE;AACrB,GAAGzF,EAAE,CAACyF,IAAI,CAAC,GAAG,CAAE,kDAAiDzF,EAAE,CAACyF,IAAI,CAAC,GAAG,CAAE;AAC9E,GAAGzF,EAAE,CAACyF,IAAI,CAAC,GAAG,CAAE,KAAIzF,EAAE,CAACoD,SAAS,CAC5B,qCAAqC,CACrC,aAAYpD,EAAE,CAACyF,IAAI,CAAC,GAAG,CAAE;AAC7B,GAAGzF,EAAE,CAACyF,IAAI,CAAC,mDAAmD,CAAE;AAChE,CAAC,CAAC;EAEAxE,GAAG,CAAE,6BAA4BjB,EAAE,CAACoD,SAAS,CAAC,yBAAyB,CAAE,GAAE,CAAC;AAC9E,CAAC"}
@@ -1,11 +1,13 @@
1
1
  import { NativeModules } from "react-native";
2
2
  const NativeModule = NativeModules.RNBootSplash;
3
+ const DEFAULT_DURATION = 220;
3
4
  export function hide() {
4
5
  let config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
5
- return NativeModule.hide({
6
- fade: false,
7
- ...config
8
- }.fade).then(() => {});
6
+ const {
7
+ fade = false,
8
+ duration = DEFAULT_DURATION
9
+ } = config;
10
+ return NativeModule.hide(fade, Math.max(duration, DEFAULT_DURATION)).then(() => {});
9
11
  }
10
12
  export function getVisibilityStatus() {
11
13
  return NativeModule.getVisibilityStatus();
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","NativeModule","RNBootSplash","hide","config","fade","then","getVisibilityStatus"],"sources":["index.ts"],"sourcesContent":["import { NativeModules } from \"react-native\";\n\nexport type VisibilityStatus = \"visible\" | \"hidden\" | \"transitioning\";\nexport type Config = { fade?: boolean };\n\nconst NativeModule: {\n hide: (fade: boolean) => Promise<true>;\n getVisibilityStatus: () => Promise<VisibilityStatus>;\n} = NativeModules.RNBootSplash;\n\nexport function hide(config: Config = {}): Promise<void> {\n return NativeModule.hide({ fade: false, ...config }.fade).then(() => {});\n}\n\nexport function getVisibilityStatus(): Promise<VisibilityStatus> {\n return NativeModule.getVisibilityStatus();\n}\n\nexport default {\n hide,\n getVisibilityStatus,\n};\n"],"mappings":"AAAA,SAASA,aAAT,QAA8B,cAA9B;AAKA,MAAMC,YAGL,GAAGD,aAAa,CAACE,YAHlB;AAKA,OAAO,SAASC,IAAT,GAAkD;EAAA,IAApCC,MAAoC,uEAAnB,EAAmB;EACvD,OAAOH,YAAY,CAACE,IAAb,CAAkB;IAAEE,IAAI,EAAE,KAAR;IAAe,GAAGD;EAAlB,EAA2BC,IAA7C,EAAmDC,IAAnD,CAAwD,MAAM,CAAE,CAAhE,CAAP;AACD;AAED,OAAO,SAASC,mBAAT,GAA0D;EAC/D,OAAON,YAAY,CAACM,mBAAb,EAAP;AACD;AAED,eAAe;EACbJ,IADa;EAEbI;AAFa,CAAf"}
1
+ {"version":3,"names":["NativeModules","NativeModule","RNBootSplash","DEFAULT_DURATION","hide","config","fade","duration","Math","max","then","getVisibilityStatus"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SAASA,aAAa,QAAQ,cAAc;AAK5C,MAAMC,YAGL,GAAGD,aAAa,CAACE,YAAY;AAE9B,MAAMC,gBAAgB,GAAG,GAAG;AAE5B,OAAO,SAASC,IAAI,GAAqC;EAAA,IAApCC,MAAc,uEAAG,CAAC,CAAC;EACtC,MAAM;IAAEC,IAAI,GAAG,KAAK;IAAEC,QAAQ,GAAGJ;EAAiB,CAAC,GAAGE,MAAM;EAC5D,OAAOJ,YAAY,CAACG,IAAI,CAACE,IAAI,EAAEE,IAAI,CAACC,GAAG,CAACF,QAAQ,EAAEJ,gBAAgB,CAAC,CAAC,CAACO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACrF;AAEA,OAAO,SAASC,mBAAmB,GAA8B;EAC/D,OAAOV,YAAY,CAACU,mBAAmB,EAAE;AAC3C;AAEA,eAAe;EACbP,IAAI;EACJO;AACF,CAAC"}
@@ -13,3 +13,4 @@ export declare const generate: ({ android, ios, workingPath, logoPath, backgroun
13
13
  flavor: string;
14
14
  logoWidth: number;
15
15
  }) => Promise<void>;
16
+ //# sourceMappingURL=generate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/generate.ts"],"names":[],"mappings":"AAoHA,eAAO,MAAM,QAAQ;aAWV;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,GAAG,IAAI;SACH;QACH,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,IAAI;iBAEK,MAAM;cACT,MAAM;;qBAGC,MAAM;YACf,MAAM;eACH,MAAM;mBAkNlB,CAAC"}
@@ -1,6 +1,7 @@
1
- export declare type VisibilityStatus = "visible" | "hidden" | "transitioning";
2
- export declare type Config = {
1
+ export type VisibilityStatus = "visible" | "hidden" | "transitioning";
2
+ export type Config = {
3
3
  fade?: boolean;
4
+ duration?: number;
4
5
  };
5
6
  export declare function hide(config?: Config): Promise<void>;
6
7
  export declare function getVisibilityStatus(): Promise<VisibilityStatus>;
@@ -9,3 +10,4 @@ declare const _default: {
9
10
  getVisibilityStatus: typeof getVisibilityStatus;
10
11
  };
11
12
  export default _default;
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,QAAQ,GAAG,eAAe,CAAC;AACtE,MAAM,MAAM,MAAM,GAAG;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAS3D,wBAAgB,IAAI,CAAC,MAAM,GAAE,MAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvD;AAED,wBAAgB,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAE/D;;;;;AAED,wBAGE"}
package/ios/.DS_Store ADDED
Binary file
@@ -85,6 +85,7 @@ RCT_EXPORT_MODULE();
85
85
 
86
86
  RCT_REMAP_METHOD(hide,
87
87
  hideWithFade:(BOOL)fade
88
+ duration:(NSInteger)duration
88
89
  resolver:(RCTPromiseResolveBlock)resolve
89
90
  rejecter:(RCTPromiseRejectBlock)reject) {
90
91
  if (_resolverQueue == nil)
@@ -104,7 +105,7 @@ RCT_REMAP_METHOD(hide,
104
105
  _isTransitioning = true;
105
106
 
106
107
  [UIView transitionWithView:_rootView
107
- duration:0.220
108
+ duration:duration / 1000.0
108
109
  options:UIViewAnimationOptionTransitionCrossDissolve
109
110
  animations:^{
110
111
  _rootView.loadingView.hidden = YES;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-bootsplash",
3
- "version": "4.3.2",
3
+ "version": "4.4.0",
4
4
  "license": "MIT",
5
5
  "description": "Display a bootsplash on your app starts. Hide it when you want.",
6
6
  "author": "Mathieu Acthernoene <zoontek@gmail.com>",
@@ -59,26 +59,20 @@
59
59
  "react-native": ">=0.65.0"
60
60
  },
61
61
  "dependencies": {
62
- "fs-extra": "^10.1.0",
63
- "jimp": "^0.16.1",
62
+ "fs-extra": "^11.1.0",
63
+ "jimp": "^0.16.2",
64
64
  "picocolors": "^1.0.0"
65
65
  },
66
- "overrides": {
67
- "jpeg-js": "0.4.4"
68
- },
69
- "resolutions": {
70
- "jpeg-js": "0.4.4"
71
- },
72
66
  "devDependencies": {
73
67
  "@types/fs-extra": "^9.0.13",
74
- "@types/react-native": "^0.69.5",
75
- "lint-staged": "^13.0.3",
76
- "prettier": "^2.7.1",
77
- "prettier-plugin-organize-imports": "^3.0.3",
78
- "react": "^18.0.0",
79
- "react-native": "^0.69.4",
80
- "react-native-builder-bob": "^0.18.3",
81
- "rescript": "^9.1.4",
82
- "typescript": "^4.7.4"
68
+ "@types/react-native": "^0.70.7",
69
+ "lint-staged": "^13.0.4",
70
+ "prettier": "^2.8.0",
71
+ "prettier-plugin-organize-imports": "^3.2.1",
72
+ "react": "18.1.0",
73
+ "react-native": "0.70.6",
74
+ "react-native-builder-bob": "^0.20.2",
75
+ "rescript": "^10.0.1",
76
+ "typescript": "^4.9.3"
83
77
  }
84
78
  }
package/src/index.ts CHANGED
@@ -1,15 +1,18 @@
1
1
  import { NativeModules } from "react-native";
2
2
 
3
3
  export type VisibilityStatus = "visible" | "hidden" | "transitioning";
4
- export type Config = { fade?: boolean };
4
+ export type Config = { fade?: boolean, duration?: number };
5
5
 
6
6
  const NativeModule: {
7
- hide: (fade: boolean) => Promise<true>;
7
+ hide: (fade: boolean, duration: number) => Promise<true>;
8
8
  getVisibilityStatus: () => Promise<VisibilityStatus>;
9
9
  } = NativeModules.RNBootSplash;
10
10
 
11
+ const DEFAULT_DURATION = 220;
12
+
11
13
  export function hide(config: Config = {}): Promise<void> {
12
- return NativeModule.hide({ fade: false, ...config }.fade).then(() => {});
14
+ const { fade = false, duration = DEFAULT_DURATION } = config;
15
+ return NativeModule.hide(fade, Math.max(duration, DEFAULT_DURATION)).then(() => {});
13
16
  }
14
17
 
15
18
  export function getVisibilityStatus(): Promise<VisibilityStatus> {