react-native-bootsplash 4.4.2 → 4.5.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
@@ -121,7 +121,7 @@ The command can take multiple arguments:
121
121
  ```bash
122
122
  yarn react-native generate-bootsplash <logoPath>
123
123
 
124
- Generate a launch screen using an original logo file
124
+ Generate a launch screen using an original logo file (PNG or SVG)
125
125
 
126
126
  Options:
127
127
  --background-color <color> color used as launch screen background (in hexadecimal format) (default: "#fff")
@@ -141,17 +141,6 @@ yarn react-native generate-bootsplash assets/bootsplash_logo_original.png \
141
141
  --flavor=main
142
142
  ```
143
143
 
144
- #### Using an SVG
145
-
146
- You might want to use SVG as input file. For that, you can install a CLI tool to convert your logo first:
147
-
148
- ```bash
149
- $ brew install librsvg # available on macOS
150
- $ rsvg-convert -w 3000 bootsplash_logo.svg -o bootsplash_logo.png # create a large PNG with generous leeway for 4x Android xxxhdpi devices
151
- $ react-native generate-bootsplash bootsplash_logo.png
152
- $ rm bootsplash_logo.png # optionally, clean up the PNG
153
- ```
154
-
155
144
  ![](https://raw.githubusercontent.com/zoontek/react-native-bootsplash/master/docs/cli_tool.png?raw=true)
156
145
 
157
146
  This tool relies on the naming conventions that are used in the `/example` project and will therefore create the following files:
Binary file
@@ -0,0 +1,11 @@
1
+ .gradle/
2
+ .idea/
3
+ build/
4
+ gradle/
5
+
6
+ .DS_Store
7
+ .npmignore
8
+ gradlew
9
+ gradlew.bat
10
+ *.iml
11
+ local.properties
Binary file
Binary file
Binary file
Binary file
@@ -5,14 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.generate = void 0;
7
7
  var _fsExtra = _interopRequireDefault(require("fs-extra"));
8
- var _jimp = _interopRequireDefault(require("jimp"));
9
8
  var _path = _interopRequireDefault(require("path"));
10
9
  var _picocolors = _interopRequireDefault(require("picocolors"));
10
+ var _sharp = _interopRequireDefault(require("sharp"));
11
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
12
  const logoFileName = "bootsplash_logo";
13
13
  const xcassetName = "BootSplashLogo";
14
- // https://github.com/androidx/androidx/blob/androidx-main/core/core-splashscreen/src/main/res/values/dimens.xml#L22
15
- const splashScreenIconSizeNoBackground = 288;
16
14
  const androidColorName = "bootsplash_background";
17
15
  const androidColorRegex = /<color name="bootsplash_background">#\w+<\/color>/g;
18
16
  const ContentsJson = `{
@@ -95,9 +93,10 @@ const getStoryboard = _ref => {
95
93
  </document>
96
94
  `;
97
95
  };
98
- const log = function (text) {
99
- let dim = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
100
- console.log(dim ? _picocolors.default.dim(text) : text);
96
+ const log = {
97
+ error: text => console.log(_picocolors.default.red(text)),
98
+ text: text => console.log(text),
99
+ warn: text => console.log(_picocolors.default.yellow(text))
101
100
  };
102
101
  const isValidHexadecimal = value => /^#?([0-9A-F]{3}){1,2}$/i.test(value);
103
102
  const toFullHexadecimal = hex => {
@@ -117,14 +116,38 @@ const generate = async _ref2 => {
117
116
  assetsPath
118
117
  } = _ref2;
119
118
  if (!isValidHexadecimal(backgroundColor)) {
120
- throw new Error("--background-color value is not a valid hexadecimal color.");
119
+ log.error("--background-color value is not a valid hexadecimal color.");
120
+ process.exit(1);
121
121
  }
122
- const image = await _jimp.default.read(logoPath);
122
+ const image = (0, _sharp.default)(logoPath);
123
123
  const backgroundColorHex = toFullHexadecimal(backgroundColor);
124
- const getHeight = size => Math.ceil(size * (image.bitmap.height / image.bitmap.width));
125
- const logWrite = (emoji, filePath, dimensions) => log(`${emoji} ${_path.default.relative(workingPath, filePath)}` + (dimensions != null ? ` (${dimensions.width}x${dimensions.height})` : ""));
124
+ const {
125
+ format
126
+ } = await image.metadata();
127
+ if (format !== "png" && format !== "svg") {
128
+ log.error("Input file is an unsupported image format");
129
+ process.exit(1);
130
+ }
131
+ const logoHeight = await image.clone().resize(logoWidth).toBuffer().then(buffer => (0, _sharp.default)(buffer).metadata()).then(_ref3 => {
132
+ let {
133
+ height = 0
134
+ } = _ref3;
135
+ return height;
136
+ });
137
+ if (logoWidth > 288) {
138
+ log.error("Logo width must not exceed 288dp (Android will crop it).");
139
+ process.exit(1);
140
+ } else if (logoHeight > 288) {
141
+ log.error("Logo height must not exceed 288dp (Android will crop it).");
142
+ process.exit(1);
143
+ } else if (logoWidth > 192) {
144
+ log.warn("⚠️ Logo width exceed 192dp. It might be cropped on Android.");
145
+ } else if (logoHeight > 192) {
146
+ log.warn("⚠️ Logo height exceed 192dp. It might be cropped on Android.");
147
+ }
148
+ const logWrite = (emoji, filePath, dimensions) => log.text(`${emoji} ${_path.default.relative(workingPath, filePath)}` + (dimensions != null ? ` (${dimensions.width}x${dimensions.height})` : ""));
126
149
  if (assetsPath && _fsExtra.default.existsSync(assetsPath)) {
127
- log(`\n ${_picocolors.default.underline("Assets")}`);
150
+ log.text(`\n ${_picocolors.default.underline("Assets")}`);
128
151
  await Promise.all([{
129
152
  ratio: 1,
130
153
  suffix: ""
@@ -140,16 +163,20 @@ const generate = async _ref2 => {
140
163
  }, {
141
164
  ratio: 4,
142
165
  suffix: "@4x"
143
- }].map(_ref3 => {
166
+ }].map(_ref4 => {
144
167
  let {
145
168
  ratio,
146
169
  suffix
147
- } = _ref3;
170
+ } = _ref4;
148
171
  const fileName = `${logoFileName}${suffix}.png`;
149
172
  const filePath = _path.default.resolve(assetsPath, fileName);
150
- const width = logoWidth * ratio;
151
- const height = getHeight(width);
152
- return image.clone().resize(width, height).quality(100).writeAsync(filePath).then(() => {
173
+ return image.clone().resize(logoWidth * ratio).png({
174
+ quality: 100
175
+ }).toFile(filePath).then(_ref5 => {
176
+ let {
177
+ width,
178
+ height
179
+ } = _ref5;
153
180
  logWrite("✨", filePath, {
154
181
  width,
155
182
  height
@@ -158,7 +185,7 @@ const generate = async _ref2 => {
158
185
  }));
159
186
  }
160
187
  if (android) {
161
- log(`\n ${_picocolors.default.underline("Android")}`);
188
+ log.text(`\n ${_picocolors.default.underline("Android")}`);
162
189
  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
163
190
 
164
191
  const resPath = _path.default.resolve(appPath, "src", flavor, "res");
@@ -193,23 +220,35 @@ const generate = async _ref2 => {
193
220
  }, {
194
221
  ratio: 4,
195
222
  directory: "mipmap-xxxhdpi"
196
- }].map(_ref4 => {
223
+ }].map(_ref6 => {
197
224
  let {
198
225
  ratio,
199
226
  directory
200
- } = _ref4;
227
+ } = _ref6;
201
228
  const fileName = `${logoFileName}.png`;
202
229
  const filePath = _path.default.resolve(resPath, directory, fileName);
203
- const width = logoWidth * ratio;
204
- const height = getHeight(width);
205
- const canvasSize = splashScreenIconSizeNoBackground * ratio;
230
+ // https://github.com/androidx/androidx/blob/androidx-main/core/core-splashscreen/src/main/res/values/dimens.xml#L22
231
+ const canvasSize = 288 * ratio;
206
232
 
207
- // https://github.com/oliver-moran/jimp/tree/master/packages/jimp#creating-new-images
208
- const canvas = new _jimp.default(canvasSize, canvasSize, 0xffffff00);
209
- const logo = image.clone().resize(width, height);
210
- const x = (canvasSize - width) / 2;
211
- const y = (canvasSize - height) / 2;
212
- return canvas.blit(logo, x, y).quality(100).writeAsync(filePath).then(() => {
233
+ // https://sharp.pixelplumbing.com/api-constructor
234
+ const canvas = (0, _sharp.default)({
235
+ create: {
236
+ width: canvasSize,
237
+ height: canvasSize,
238
+ channels: 4,
239
+ background: {
240
+ r: 255,
241
+ g: 255,
242
+ b: 255,
243
+ alpha: 0
244
+ }
245
+ }
246
+ });
247
+ return image.clone().resize(logoWidth * ratio).toBuffer().then(input => canvas.composite([{
248
+ input
249
+ }]).png({
250
+ quality: 100
251
+ }).toFile(filePath)).then(() => {
213
252
  logWrite("✨", filePath, {
214
253
  width: canvasSize,
215
254
  height: canvasSize
@@ -218,7 +257,7 @@ const generate = async _ref2 => {
218
257
  }));
219
258
  }
220
259
  if (ios) {
221
- log(`\n ${_picocolors.default.underline("iOS")}`);
260
+ log.text(`\n ${_picocolors.default.underline("iOS")}`);
222
261
  const {
223
262
  projectPath
224
263
  } = ios;
@@ -226,13 +265,13 @@ const generate = async _ref2 => {
226
265
  if (_fsExtra.default.existsSync(projectPath)) {
227
266
  const storyboardPath = _path.default.resolve(projectPath, "BootSplash.storyboard");
228
267
  _fsExtra.default.writeFileSync(storyboardPath, getStoryboard({
229
- height: getHeight(logoWidth),
268
+ height: logoHeight,
230
269
  width: logoWidth,
231
270
  backgroundColor: backgroundColorHex
232
271
  }), "utf-8");
233
272
  logWrite("✨", storyboardPath);
234
273
  } else {
235
- log(`No "${projectPath}" directory found. Skipping iOS storyboard generation…`);
274
+ log.text(`No "${projectPath}" directory found. Skipping iOS storyboard generation…`);
236
275
  }
237
276
  if (_fsExtra.default.existsSync(imagesPath)) {
238
277
  const imageSetPath = _path.default.resolve(imagesPath, xcassetName + ".imageset");
@@ -247,16 +286,20 @@ const generate = async _ref2 => {
247
286
  }, {
248
287
  ratio: 3,
249
288
  suffix: "@3x"
250
- }].map(_ref5 => {
289
+ }].map(_ref7 => {
251
290
  let {
252
291
  ratio,
253
292
  suffix
254
- } = _ref5;
293
+ } = _ref7;
255
294
  const fileName = `${logoFileName}${suffix}.png`;
256
295
  const filePath = _path.default.resolve(imageSetPath, fileName);
257
- const width = logoWidth * ratio;
258
- const height = getHeight(width);
259
- return image.clone().resize(width, height).quality(100).writeAsync(filePath).then(() => {
296
+ return image.clone().resize(logoWidth * ratio).png({
297
+ quality: 100
298
+ }).toFile(filePath).then(_ref8 => {
299
+ let {
300
+ width,
301
+ height
302
+ } = _ref8;
260
303
  logWrite("✨", filePath, {
261
304
  width,
262
305
  height
@@ -264,17 +307,16 @@ const generate = async _ref2 => {
264
307
  });
265
308
  }));
266
309
  } else {
267
- log(`No "${imagesPath}" directory found. Skipping iOS images generation…`);
310
+ log.text(`No "${imagesPath}" directory found. Skipping iOS images generation…`);
268
311
  }
269
312
  }
270
- log(`
313
+ log.text(`
271
314
  ${_picocolors.default.blue("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓")}
272
315
  ${_picocolors.default.blue("┃")} 💖 ${_picocolors.default.bold("Love this library? Consider sponsoring!")} ${_picocolors.default.blue("┃")}
273
- ${_picocolors.default.blue("┃")} One-time amounts are available. ${_picocolors.default.blue("┃")}
274
316
  ${_picocolors.default.blue("┃")} ${_picocolors.default.underline("https://github.com/sponsors/zoontek")} ${_picocolors.default.blue("┃")}
275
317
  ${_picocolors.default.blue("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛")}
276
318
  `);
277
- log(`✅ Done! Thanks for using ${_picocolors.default.underline("react-native-bootsplash")}.`);
319
+ log.text(`✅ Done! Thanks for using ${_picocolors.default.underline("react-native-bootsplash")}.`);
278
320
  };
279
321
  exports.generate = generate;
280
322
  //# 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"],"sourceRoot":"../../src","sources":["generate.ts"],"mappings":"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"}
1
+ {"version":3,"names":["logoFileName","xcassetName","androidColorName","androidColorRegex","ContentsJson","getStoryboard","height","width","backgroundColor","hex","r","parseInt","toPrecision","g","b","log","error","text","console","pc","red","warn","yellow","isValidHexadecimal","value","test","toFullHexadecimal","prefixed","up","toUpperCase","length","generate","android","ios","workingPath","logoPath","logoWidth","flavor","assetsPath","process","exit","image","sharp","backgroundColorHex","format","metadata","logoHeight","clone","resize","toBuffer","then","buffer","logWrite","emoji","filePath","dimensions","path","relative","fs","existsSync","underline","Promise","all","ratio","suffix","map","fileName","resolve","png","quality","toFile","appPath","appName","sourceDir","resPath","valuesPath","ensureDirSync","colorsXmlPath","colorsXmlEntry","colorsXml","readFileSync","match","writeFileSync","replace","directory","canvasSize","canvas","create","channels","background","alpha","input","composite","projectPath","imagesPath","storyboardPath","imageSetPath","blue","bold"],"sourceRoot":"../../src","sources":["generate.ts"],"mappings":"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"}
@@ -1,11 +1,9 @@
1
1
  import fs from "fs-extra";
2
- import Jimp from "jimp";
3
2
  import path from "path";
4
3
  import pc from "picocolors";
4
+ import sharp from "sharp";
5
5
  const logoFileName = "bootsplash_logo";
6
6
  const xcassetName = "BootSplashLogo";
7
- // https://github.com/androidx/androidx/blob/androidx-main/core/core-splashscreen/src/main/res/values/dimens.xml#L22
8
- const splashScreenIconSizeNoBackground = 288;
9
7
  const androidColorName = "bootsplash_background";
10
8
  const androidColorRegex = /<color name="bootsplash_background">#\w+<\/color>/g;
11
9
  const ContentsJson = `{
@@ -88,9 +86,10 @@ const getStoryboard = _ref => {
88
86
  </document>
89
87
  `;
90
88
  };
91
- const log = function (text) {
92
- let dim = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
93
- console.log(dim ? pc.dim(text) : text);
89
+ const log = {
90
+ error: text => console.log(pc.red(text)),
91
+ text: text => console.log(text),
92
+ warn: text => console.log(pc.yellow(text))
94
93
  };
95
94
  const isValidHexadecimal = value => /^#?([0-9A-F]{3}){1,2}$/i.test(value);
96
95
  const toFullHexadecimal = hex => {
@@ -110,14 +109,38 @@ export const generate = async _ref2 => {
110
109
  assetsPath
111
110
  } = _ref2;
112
111
  if (!isValidHexadecimal(backgroundColor)) {
113
- throw new Error("--background-color value is not a valid hexadecimal color.");
112
+ log.error("--background-color value is not a valid hexadecimal color.");
113
+ process.exit(1);
114
114
  }
115
- const image = await Jimp.read(logoPath);
115
+ const image = sharp(logoPath);
116
116
  const backgroundColorHex = toFullHexadecimal(backgroundColor);
117
- const getHeight = size => Math.ceil(size * (image.bitmap.height / image.bitmap.width));
118
- const logWrite = (emoji, filePath, dimensions) => log(`${emoji} ${path.relative(workingPath, filePath)}` + (dimensions != null ? ` (${dimensions.width}x${dimensions.height})` : ""));
117
+ const {
118
+ format
119
+ } = await image.metadata();
120
+ if (format !== "png" && format !== "svg") {
121
+ log.error("Input file is an unsupported image format");
122
+ process.exit(1);
123
+ }
124
+ const logoHeight = await image.clone().resize(logoWidth).toBuffer().then(buffer => sharp(buffer).metadata()).then(_ref3 => {
125
+ let {
126
+ height = 0
127
+ } = _ref3;
128
+ return height;
129
+ });
130
+ if (logoWidth > 288) {
131
+ log.error("Logo width must not exceed 288dp (Android will crop it).");
132
+ process.exit(1);
133
+ } else if (logoHeight > 288) {
134
+ log.error("Logo height must not exceed 288dp (Android will crop it).");
135
+ process.exit(1);
136
+ } else if (logoWidth > 192) {
137
+ log.warn("⚠️ Logo width exceed 192dp. It might be cropped on Android.");
138
+ } else if (logoHeight > 192) {
139
+ log.warn("⚠️ Logo height exceed 192dp. It might be cropped on Android.");
140
+ }
141
+ const logWrite = (emoji, filePath, dimensions) => log.text(`${emoji} ${path.relative(workingPath, filePath)}` + (dimensions != null ? ` (${dimensions.width}x${dimensions.height})` : ""));
119
142
  if (assetsPath && fs.existsSync(assetsPath)) {
120
- log(`\n ${pc.underline("Assets")}`);
143
+ log.text(`\n ${pc.underline("Assets")}`);
121
144
  await Promise.all([{
122
145
  ratio: 1,
123
146
  suffix: ""
@@ -133,16 +156,20 @@ export const generate = async _ref2 => {
133
156
  }, {
134
157
  ratio: 4,
135
158
  suffix: "@4x"
136
- }].map(_ref3 => {
159
+ }].map(_ref4 => {
137
160
  let {
138
161
  ratio,
139
162
  suffix
140
- } = _ref3;
163
+ } = _ref4;
141
164
  const fileName = `${logoFileName}${suffix}.png`;
142
165
  const filePath = path.resolve(assetsPath, fileName);
143
- const width = logoWidth * ratio;
144
- const height = getHeight(width);
145
- return image.clone().resize(width, height).quality(100).writeAsync(filePath).then(() => {
166
+ return image.clone().resize(logoWidth * ratio).png({
167
+ quality: 100
168
+ }).toFile(filePath).then(_ref5 => {
169
+ let {
170
+ width,
171
+ height
172
+ } = _ref5;
146
173
  logWrite("✨", filePath, {
147
174
  width,
148
175
  height
@@ -151,7 +178,7 @@ export const generate = async _ref2 => {
151
178
  }));
152
179
  }
153
180
  if (android) {
154
- log(`\n ${pc.underline("Android")}`);
181
+ log.text(`\n ${pc.underline("Android")}`);
155
182
  const appPath = android.appName ? path.resolve(android.sourceDir, android.appName) : path.resolve(android.sourceDir); // @react-native-community/cli 2.x & 3.x support
156
183
 
157
184
  const resPath = path.resolve(appPath, "src", flavor, "res");
@@ -186,23 +213,35 @@ export const generate = async _ref2 => {
186
213
  }, {
187
214
  ratio: 4,
188
215
  directory: "mipmap-xxxhdpi"
189
- }].map(_ref4 => {
216
+ }].map(_ref6 => {
190
217
  let {
191
218
  ratio,
192
219
  directory
193
- } = _ref4;
220
+ } = _ref6;
194
221
  const fileName = `${logoFileName}.png`;
195
222
  const filePath = path.resolve(resPath, directory, fileName);
196
- const width = logoWidth * ratio;
197
- const height = getHeight(width);
198
- const canvasSize = splashScreenIconSizeNoBackground * ratio;
223
+ // https://github.com/androidx/androidx/blob/androidx-main/core/core-splashscreen/src/main/res/values/dimens.xml#L22
224
+ const canvasSize = 288 * ratio;
199
225
 
200
- // https://github.com/oliver-moran/jimp/tree/master/packages/jimp#creating-new-images
201
- const canvas = new Jimp(canvasSize, canvasSize, 0xffffff00);
202
- const logo = image.clone().resize(width, height);
203
- const x = (canvasSize - width) / 2;
204
- const y = (canvasSize - height) / 2;
205
- return canvas.blit(logo, x, y).quality(100).writeAsync(filePath).then(() => {
226
+ // https://sharp.pixelplumbing.com/api-constructor
227
+ const canvas = sharp({
228
+ create: {
229
+ width: canvasSize,
230
+ height: canvasSize,
231
+ channels: 4,
232
+ background: {
233
+ r: 255,
234
+ g: 255,
235
+ b: 255,
236
+ alpha: 0
237
+ }
238
+ }
239
+ });
240
+ return image.clone().resize(logoWidth * ratio).toBuffer().then(input => canvas.composite([{
241
+ input
242
+ }]).png({
243
+ quality: 100
244
+ }).toFile(filePath)).then(() => {
206
245
  logWrite("✨", filePath, {
207
246
  width: canvasSize,
208
247
  height: canvasSize
@@ -211,7 +250,7 @@ export const generate = async _ref2 => {
211
250
  }));
212
251
  }
213
252
  if (ios) {
214
- log(`\n ${pc.underline("iOS")}`);
253
+ log.text(`\n ${pc.underline("iOS")}`);
215
254
  const {
216
255
  projectPath
217
256
  } = ios;
@@ -219,13 +258,13 @@ export const generate = async _ref2 => {
219
258
  if (fs.existsSync(projectPath)) {
220
259
  const storyboardPath = path.resolve(projectPath, "BootSplash.storyboard");
221
260
  fs.writeFileSync(storyboardPath, getStoryboard({
222
- height: getHeight(logoWidth),
261
+ height: logoHeight,
223
262
  width: logoWidth,
224
263
  backgroundColor: backgroundColorHex
225
264
  }), "utf-8");
226
265
  logWrite("✨", storyboardPath);
227
266
  } else {
228
- log(`No "${projectPath}" directory found. Skipping iOS storyboard generation…`);
267
+ log.text(`No "${projectPath}" directory found. Skipping iOS storyboard generation…`);
229
268
  }
230
269
  if (fs.existsSync(imagesPath)) {
231
270
  const imageSetPath = path.resolve(imagesPath, xcassetName + ".imageset");
@@ -240,16 +279,20 @@ export const generate = async _ref2 => {
240
279
  }, {
241
280
  ratio: 3,
242
281
  suffix: "@3x"
243
- }].map(_ref5 => {
282
+ }].map(_ref7 => {
244
283
  let {
245
284
  ratio,
246
285
  suffix
247
- } = _ref5;
286
+ } = _ref7;
248
287
  const fileName = `${logoFileName}${suffix}.png`;
249
288
  const filePath = path.resolve(imageSetPath, fileName);
250
- const width = logoWidth * ratio;
251
- const height = getHeight(width);
252
- return image.clone().resize(width, height).quality(100).writeAsync(filePath).then(() => {
289
+ return image.clone().resize(logoWidth * ratio).png({
290
+ quality: 100
291
+ }).toFile(filePath).then(_ref8 => {
292
+ let {
293
+ width,
294
+ height
295
+ } = _ref8;
253
296
  logWrite("✨", filePath, {
254
297
  width,
255
298
  height
@@ -257,16 +300,15 @@ export const generate = async _ref2 => {
257
300
  });
258
301
  }));
259
302
  } else {
260
- log(`No "${imagesPath}" directory found. Skipping iOS images generation…`);
303
+ log.text(`No "${imagesPath}" directory found. Skipping iOS images generation…`);
261
304
  }
262
305
  }
263
- log(`
306
+ log.text(`
264
307
  ${pc.blue("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓")}
265
308
  ${pc.blue("┃")} 💖 ${pc.bold("Love this library? Consider sponsoring!")} ${pc.blue("┃")}
266
- ${pc.blue("┃")} One-time amounts are available. ${pc.blue("┃")}
267
309
  ${pc.blue("┃")} ${pc.underline("https://github.com/sponsors/zoontek")} ${pc.blue("┃")}
268
310
  ${pc.blue("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛")}
269
311
  `);
270
- log(`✅ Done! Thanks for using ${pc.underline("react-native-bootsplash")}.`);
312
+ log.text(`✅ Done! Thanks for using ${pc.underline("react-native-bootsplash")}.`);
271
313
  };
272
314
  //# sourceMappingURL=generate.js.map
@@ -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"],"sourceRoot":"../../src","sources":["generate.ts"],"mappings":"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"}
1
+ {"version":3,"names":["fs","path","pc","sharp","logoFileName","xcassetName","androidColorName","androidColorRegex","ContentsJson","getStoryboard","height","width","backgroundColor","hex","r","parseInt","toPrecision","g","b","log","error","text","console","red","warn","yellow","isValidHexadecimal","value","test","toFullHexadecimal","prefixed","up","toUpperCase","length","generate","android","ios","workingPath","logoPath","logoWidth","flavor","assetsPath","process","exit","image","backgroundColorHex","format","metadata","logoHeight","clone","resize","toBuffer","then","buffer","logWrite","emoji","filePath","dimensions","relative","existsSync","underline","Promise","all","ratio","suffix","map","fileName","resolve","png","quality","toFile","appPath","appName","sourceDir","resPath","valuesPath","ensureDirSync","colorsXmlPath","colorsXmlEntry","colorsXml","readFileSync","match","writeFileSync","replace","directory","canvasSize","canvas","create","channels","background","alpha","input","composite","projectPath","imagesPath","storyboardPath","imageSetPath","blue","bold"],"sourceRoot":"../../src","sources":["generate.ts"],"mappings":"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"}
@@ -1 +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
+ {"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;mBAgPlB,CAAC"}
package/ios/.DS_Store ADDED
Binary file
package/ios/.npmignore ADDED
@@ -0,0 +1,8 @@
1
+ Pods/
2
+ build/
3
+
4
+ */project.xcworkspace/
5
+ */xcuserdata/
6
+
7
+ .DS_Store
8
+ .npmignore
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-bootsplash",
3
- "version": "4.4.2",
3
+ "version": "4.5.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>",
@@ -60,16 +60,17 @@
60
60
  },
61
61
  "dependencies": {
62
62
  "fs-extra": "^11.1.0",
63
- "jimp": "^0.16.2",
63
+ "sharp": "^0.31.3",
64
64
  "picocolors": "^1.0.0"
65
65
  },
66
66
  "devDependencies": {
67
67
  "@types/fs-extra": "^11.0.1",
68
- "lint-staged": "^13.1.0",
69
- "prettier": "^2.8.3",
68
+ "@types/sharp": "^0.31.1",
69
+ "lint-staged": "^13.1.1",
70
+ "prettier": "^2.8.4",
70
71
  "prettier-plugin-organize-imports": "^3.2.2",
71
72
  "react": "18.2.0",
72
- "react-native": "0.71.1",
73
+ "react-native": "0.71.2",
73
74
  "react-native-builder-bob": "^0.20.3",
74
75
  "rescript": "^10.1.2",
75
76
  "typescript": "^4.9.5"
@@ -5,7 +5,8 @@ module.exports = {
5
5
  commands: [
6
6
  {
7
7
  name: "generate-bootsplash <logoPath>",
8
- description: "Generate a launch screen using an original logo file",
8
+ description:
9
+ "Generate a launch screen using an original logo file (PNG or SVG)",
9
10
  options: [
10
11
  {
11
12
  name: "--background-color <color>",
@@ -40,18 +41,6 @@ module.exports = {
40
41
  const workingPath =
41
42
  process.env.INIT_CWD || process.env.PWD || process.cwd();
42
43
 
43
- if (logoWidth > 288) {
44
- console.log(
45
- "❌ Logo width can't be superior to 288dp as it will be cropped on Android. Exiting…\n",
46
- );
47
-
48
- process.exit(1);
49
- } else if (logoWidth > 192) {
50
- console.log(
51
- "⚠️ As logo width is superior to 192dp, it might be cropped on Android.\n",
52
- );
53
- }
54
-
55
44
  return generate({
56
45
  android,
57
46
 
package/src/generate.ts CHANGED
@@ -1,12 +1,10 @@
1
1
  import fs from "fs-extra";
2
- import Jimp from "jimp";
3
2
  import path from "path";
4
3
  import pc from "picocolors";
4
+ import sharp from "sharp";
5
5
 
6
6
  const logoFileName = "bootsplash_logo";
7
7
  const xcassetName = "BootSplashLogo";
8
- // https://github.com/androidx/androidx/blob/androidx-main/core/core-splashscreen/src/main/res/values/dimens.xml#L22
9
- const splashScreenIconSizeNoBackground = 288;
10
8
  const androidColorName = "bootsplash_background";
11
9
  const androidColorRegex = /<color name="bootsplash_background">#\w+<\/color>/g;
12
10
 
@@ -98,8 +96,10 @@ const getStoryboard = ({
98
96
  `;
99
97
  };
100
98
 
101
- const log = (text: string, dim = false) => {
102
- console.log(dim ? pc.dim(text) : text);
99
+ const log = {
100
+ error: (text: string) => console.log(pc.red(text)),
101
+ text: (text: string) => console.log(text),
102
+ warn: (text: string) => console.log(pc.yellow(text)),
103
103
  };
104
104
 
105
105
  const isValidHexadecimal = (value: string) =>
@@ -142,23 +142,44 @@ export const generate = async ({
142
142
  logoWidth: number;
143
143
  }) => {
144
144
  if (!isValidHexadecimal(backgroundColor)) {
145
- throw new Error(
146
- "--background-color value is not a valid hexadecimal color.",
147
- );
145
+ log.error("--background-color value is not a valid hexadecimal color.");
146
+ process.exit(1);
148
147
  }
149
148
 
150
- const image = await Jimp.read(logoPath);
149
+ const image = sharp(logoPath);
151
150
  const backgroundColorHex = toFullHexadecimal(backgroundColor);
151
+ const { format } = await image.metadata();
152
152
 
153
- const getHeight = (size: number) =>
154
- Math.ceil(size * (image.bitmap.height / image.bitmap.width));
153
+ if (format !== "png" && format !== "svg") {
154
+ log.error("Input file is an unsupported image format");
155
+ process.exit(1);
156
+ }
157
+
158
+ const logoHeight = await image
159
+ .clone()
160
+ .resize(logoWidth)
161
+ .toBuffer()
162
+ .then((buffer) => sharp(buffer).metadata())
163
+ .then(({ height = 0 }) => height);
164
+
165
+ if (logoWidth > 288) {
166
+ log.error("Logo width must not exceed 288dp (Android will crop it).");
167
+ process.exit(1);
168
+ } else if (logoHeight > 288) {
169
+ log.error("Logo height must not exceed 288dp (Android will crop it).");
170
+ process.exit(1);
171
+ } else if (logoWidth > 192) {
172
+ log.warn("⚠️ Logo width exceed 192dp. It might be cropped on Android.");
173
+ } else if (logoHeight > 192) {
174
+ log.warn("⚠️ Logo height exceed 192dp. It might be cropped on Android.");
175
+ }
155
176
 
156
177
  const logWrite = (
157
178
  emoji: string,
158
179
  filePath: string,
159
180
  dimensions?: { width: number; height: number },
160
181
  ) =>
161
- log(
182
+ log.text(
162
183
  `${emoji} ${path.relative(workingPath, filePath)}` +
163
184
  (dimensions != null
164
185
  ? ` (${dimensions.width}x${dimensions.height})`
@@ -166,7 +187,7 @@ export const generate = async ({
166
187
  );
167
188
 
168
189
  if (assetsPath && fs.existsSync(assetsPath)) {
169
- log(`\n ${pc.underline("Assets")}`);
190
+ log.text(`\n ${pc.underline("Assets")}`);
170
191
 
171
192
  await Promise.all(
172
193
  [
@@ -178,15 +199,13 @@ export const generate = async ({
178
199
  ].map(({ ratio, suffix }) => {
179
200
  const fileName = `${logoFileName}${suffix}.png`;
180
201
  const filePath = path.resolve(assetsPath, fileName);
181
- const width = logoWidth * ratio;
182
- const height = getHeight(width);
183
202
 
184
203
  return image
185
204
  .clone()
186
- .resize(width, height)
187
- .quality(100)
188
- .writeAsync(filePath)
189
- .then(() => {
205
+ .resize(logoWidth * ratio)
206
+ .png({ quality: 100 })
207
+ .toFile(filePath)
208
+ .then(({ width, height }) => {
190
209
  logWrite("✨", filePath, { width, height });
191
210
  });
192
211
  }),
@@ -194,7 +213,7 @@ export const generate = async ({
194
213
  }
195
214
 
196
215
  if (android) {
197
- log(`\n ${pc.underline("Android")}`);
216
+ log.text(`\n ${pc.underline("Android")}`);
198
217
 
199
218
  const appPath = android.appName
200
219
  ? path.resolve(android.sourceDir, android.appName)
@@ -249,22 +268,34 @@ export const generate = async ({
249
268
  ].map(({ ratio, directory }) => {
250
269
  const fileName = `${logoFileName}.png`;
251
270
  const filePath = path.resolve(resPath, directory, fileName);
252
- const width = logoWidth * ratio;
253
- const height = getHeight(width);
271
+ // https://github.com/androidx/androidx/blob/androidx-main/core/core-splashscreen/src/main/res/values/dimens.xml#L22
272
+ const canvasSize = 288 * ratio;
273
+
274
+ // https://sharp.pixelplumbing.com/api-constructor
275
+ const canvas = sharp({
276
+ create: {
277
+ width: canvasSize,
278
+ height: canvasSize,
279
+ channels: 4,
280
+ background: {
281
+ r: 255,
282
+ g: 255,
283
+ b: 255,
284
+ alpha: 0,
285
+ },
286
+ },
287
+ });
254
288
 
255
- const canvasSize = splashScreenIconSizeNoBackground * ratio;
256
-
257
- // https://github.com/oliver-moran/jimp/tree/master/packages/jimp#creating-new-images
258
- const canvas = new Jimp(canvasSize, canvasSize, 0xffffff00);
259
- const logo = image.clone().resize(width, height);
260
-
261
- const x = (canvasSize - width) / 2;
262
- const y = (canvasSize - height) / 2;
263
-
264
- return canvas
265
- .blit(logo, x, y)
266
- .quality(100)
267
- .writeAsync(filePath)
289
+ return image
290
+ .clone()
291
+ .resize(logoWidth * ratio)
292
+ .toBuffer()
293
+ .then((input) =>
294
+ canvas
295
+ .composite([{ input }])
296
+ .png({ quality: 100 })
297
+ .toFile(filePath),
298
+ )
268
299
  .then(() => {
269
300
  logWrite("✨", filePath, { width: canvasSize, height: canvasSize });
270
301
  });
@@ -273,7 +304,7 @@ export const generate = async ({
273
304
  }
274
305
 
275
306
  if (ios) {
276
- log(`\n ${pc.underline("iOS")}`);
307
+ log.text(`\n ${pc.underline("iOS")}`);
277
308
 
278
309
  const { projectPath } = ios;
279
310
  const imagesPath = path.resolve(projectPath, "Images.xcassets");
@@ -284,7 +315,7 @@ export const generate = async ({
284
315
  fs.writeFileSync(
285
316
  storyboardPath,
286
317
  getStoryboard({
287
- height: getHeight(logoWidth),
318
+ height: logoHeight,
288
319
  width: logoWidth,
289
320
  backgroundColor: backgroundColorHex,
290
321
  }),
@@ -293,7 +324,7 @@ export const generate = async ({
293
324
 
294
325
  logWrite("✨", storyboardPath);
295
326
  } else {
296
- log(
327
+ log.text(
297
328
  `No "${projectPath}" directory found. Skipping iOS storyboard generation…`,
298
329
  );
299
330
  }
@@ -316,37 +347,36 @@ export const generate = async ({
316
347
  ].map(({ ratio, suffix }) => {
317
348
  const fileName = `${logoFileName}${suffix}.png`;
318
349
  const filePath = path.resolve(imageSetPath, fileName);
319
- const width = logoWidth * ratio;
320
- const height = getHeight(width);
321
350
 
322
351
  return image
323
352
  .clone()
324
- .resize(width, height)
325
- .quality(100)
326
- .writeAsync(filePath)
327
- .then(() => {
353
+ .resize(logoWidth * ratio)
354
+ .png({ quality: 100 })
355
+ .toFile(filePath)
356
+ .then(({ width, height }) => {
328
357
  logWrite("✨", filePath, { width, height });
329
358
  });
330
359
  }),
331
360
  );
332
361
  } else {
333
- log(
362
+ log.text(
334
363
  `No "${imagesPath}" directory found. Skipping iOS images generation…`,
335
364
  );
336
365
  }
337
366
  }
338
367
 
339
- log(`
368
+ log.text(`
340
369
  ${pc.blue("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓")}
341
370
  ${pc.blue("┃")} 💖 ${pc.bold(
342
371
  "Love this library? Consider sponsoring!",
343
372
  )} ${pc.blue("┃")}
344
- ${pc.blue("┃")} One-time amounts are available. ${pc.blue("┃")}
345
373
  ${pc.blue("┃")} ${pc.underline(
346
374
  "https://github.com/sponsors/zoontek",
347
375
  )} ${pc.blue("┃")}
348
376
  ${pc.blue("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛")}
349
377
  `);
350
378
 
351
- log(`✅ Done! Thanks for using ${pc.underline("react-native-bootsplash")}.`);
379
+ log.text(
380
+ `✅ Done! Thanks for using ${pc.underline("react-native-bootsplash")}.`,
381
+ );
352
382
  };