react-native-bootsplash 4.4.2 → 4.5.1

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,36 @@ 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.warn("⚠️ Logo width exceed 288dp. It will be cropped on Android.");
139
+ } else if (logoHeight > 288) {
140
+ log.warn("⚠️ Logo height exceed 288dp. It will be cropped on Android.");
141
+ } else if (logoWidth > 192) {
142
+ log.warn("⚠️ Logo width exceed 192dp. It might be cropped on Android.");
143
+ } else if (logoHeight > 192) {
144
+ log.warn("⚠️ Logo height exceed 192dp. It might be cropped on Android.");
145
+ }
146
+ const logWrite = (emoji, filePath, dimensions) => log.text(`${emoji} ${_path.default.relative(workingPath, filePath)}` + (dimensions != null ? ` (${dimensions.width}x${dimensions.height})` : ""));
126
147
  if (assetsPath && _fsExtra.default.existsSync(assetsPath)) {
127
- log(`\n ${_picocolors.default.underline("Assets")}`);
148
+ log.text(`\n ${_picocolors.default.underline("Assets")}`);
128
149
  await Promise.all([{
129
150
  ratio: 1,
130
151
  suffix: ""
@@ -140,16 +161,20 @@ const generate = async _ref2 => {
140
161
  }, {
141
162
  ratio: 4,
142
163
  suffix: "@4x"
143
- }].map(_ref3 => {
164
+ }].map(_ref4 => {
144
165
  let {
145
166
  ratio,
146
167
  suffix
147
- } = _ref3;
168
+ } = _ref4;
148
169
  const fileName = `${logoFileName}${suffix}.png`;
149
170
  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(() => {
171
+ return image.clone().resize(logoWidth * ratio).png({
172
+ quality: 100
173
+ }).toFile(filePath).then(_ref5 => {
174
+ let {
175
+ width,
176
+ height
177
+ } = _ref5;
153
178
  logWrite("✨", filePath, {
154
179
  width,
155
180
  height
@@ -158,7 +183,7 @@ const generate = async _ref2 => {
158
183
  }));
159
184
  }
160
185
  if (android) {
161
- log(`\n ${_picocolors.default.underline("Android")}`);
186
+ log.text(`\n ${_picocolors.default.underline("Android")}`);
162
187
  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
188
 
164
189
  const resPath = _path.default.resolve(appPath, "src", flavor, "res");
@@ -193,23 +218,35 @@ const generate = async _ref2 => {
193
218
  }, {
194
219
  ratio: 4,
195
220
  directory: "mipmap-xxxhdpi"
196
- }].map(_ref4 => {
221
+ }].map(_ref6 => {
197
222
  let {
198
223
  ratio,
199
224
  directory
200
- } = _ref4;
225
+ } = _ref6;
201
226
  const fileName = `${logoFileName}.png`;
202
227
  const filePath = _path.default.resolve(resPath, directory, fileName);
203
- const width = logoWidth * ratio;
204
- const height = getHeight(width);
205
- const canvasSize = splashScreenIconSizeNoBackground * ratio;
228
+ // https://github.com/androidx/androidx/blob/androidx-main/core/core-splashscreen/src/main/res/values/dimens.xml#L22
229
+ const canvasSize = 288 * ratio;
206
230
 
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(() => {
231
+ // https://sharp.pixelplumbing.com/api-constructor
232
+ const canvas = (0, _sharp.default)({
233
+ create: {
234
+ width: canvasSize,
235
+ height: canvasSize,
236
+ channels: 4,
237
+ background: {
238
+ r: 255,
239
+ g: 255,
240
+ b: 255,
241
+ alpha: 0
242
+ }
243
+ }
244
+ });
245
+ return image.clone().resize(logoWidth * ratio).toBuffer().then(input => canvas.composite([{
246
+ input
247
+ }]).png({
248
+ quality: 100
249
+ }).toFile(filePath)).then(() => {
213
250
  logWrite("✨", filePath, {
214
251
  width: canvasSize,
215
252
  height: canvasSize
@@ -218,7 +255,7 @@ const generate = async _ref2 => {
218
255
  }));
219
256
  }
220
257
  if (ios) {
221
- log(`\n ${_picocolors.default.underline("iOS")}`);
258
+ log.text(`\n ${_picocolors.default.underline("iOS")}`);
222
259
  const {
223
260
  projectPath
224
261
  } = ios;
@@ -226,13 +263,13 @@ const generate = async _ref2 => {
226
263
  if (_fsExtra.default.existsSync(projectPath)) {
227
264
  const storyboardPath = _path.default.resolve(projectPath, "BootSplash.storyboard");
228
265
  _fsExtra.default.writeFileSync(storyboardPath, getStoryboard({
229
- height: getHeight(logoWidth),
266
+ height: logoHeight,
230
267
  width: logoWidth,
231
268
  backgroundColor: backgroundColorHex
232
269
  }), "utf-8");
233
270
  logWrite("✨", storyboardPath);
234
271
  } else {
235
- log(`No "${projectPath}" directory found. Skipping iOS storyboard generation…`);
272
+ log.text(`No "${projectPath}" directory found. Skipping iOS storyboard generation…`);
236
273
  }
237
274
  if (_fsExtra.default.existsSync(imagesPath)) {
238
275
  const imageSetPath = _path.default.resolve(imagesPath, xcassetName + ".imageset");
@@ -247,16 +284,20 @@ const generate = async _ref2 => {
247
284
  }, {
248
285
  ratio: 3,
249
286
  suffix: "@3x"
250
- }].map(_ref5 => {
287
+ }].map(_ref7 => {
251
288
  let {
252
289
  ratio,
253
290
  suffix
254
- } = _ref5;
291
+ } = _ref7;
255
292
  const fileName = `${logoFileName}${suffix}.png`;
256
293
  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(() => {
294
+ return image.clone().resize(logoWidth * ratio).png({
295
+ quality: 100
296
+ }).toFile(filePath).then(_ref8 => {
297
+ let {
298
+ width,
299
+ height
300
+ } = _ref8;
260
301
  logWrite("✨", filePath, {
261
302
  width,
262
303
  height
@@ -264,17 +305,16 @@ const generate = async _ref2 => {
264
305
  });
265
306
  }));
266
307
  } else {
267
- log(`No "${imagesPath}" directory found. Skipping iOS images generation…`);
308
+ log.text(`No "${imagesPath}" directory found. Skipping iOS images generation…`);
268
309
  }
269
310
  }
270
- log(`
311
+ log.text(`
271
312
  ${_picocolors.default.blue("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓")}
272
313
  ${_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
314
  ${_picocolors.default.blue("┃")} ${_picocolors.default.underline("https://github.com/sponsors/zoontek")} ${_picocolors.default.blue("┃")}
275
315
  ${_picocolors.default.blue("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛")}
276
316
  `);
277
- log(`✅ Done! Thanks for using ${_picocolors.default.underline("react-native-bootsplash")}.`);
317
+ log.text(`✅ Done! Thanks for using ${_picocolors.default.underline("react-native-bootsplash")}.`);
278
318
  };
279
319
  exports.generate = generate;
280
320
  //# 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,36 @@ 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.warn("⚠️ Logo width exceed 288dp. It will be cropped on Android.");
132
+ } else if (logoHeight > 288) {
133
+ log.warn("⚠️ Logo height exceed 288dp. It will be cropped on Android.");
134
+ } else if (logoWidth > 192) {
135
+ log.warn("⚠️ Logo width exceed 192dp. It might be cropped on Android.");
136
+ } else if (logoHeight > 192) {
137
+ log.warn("⚠️ Logo height exceed 192dp. It might be cropped on Android.");
138
+ }
139
+ const logWrite = (emoji, filePath, dimensions) => log.text(`${emoji} ${path.relative(workingPath, filePath)}` + (dimensions != null ? ` (${dimensions.width}x${dimensions.height})` : ""));
119
140
  if (assetsPath && fs.existsSync(assetsPath)) {
120
- log(`\n ${pc.underline("Assets")}`);
141
+ log.text(`\n ${pc.underline("Assets")}`);
121
142
  await Promise.all([{
122
143
  ratio: 1,
123
144
  suffix: ""
@@ -133,16 +154,20 @@ export const generate = async _ref2 => {
133
154
  }, {
134
155
  ratio: 4,
135
156
  suffix: "@4x"
136
- }].map(_ref3 => {
157
+ }].map(_ref4 => {
137
158
  let {
138
159
  ratio,
139
160
  suffix
140
- } = _ref3;
161
+ } = _ref4;
141
162
  const fileName = `${logoFileName}${suffix}.png`;
142
163
  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(() => {
164
+ return image.clone().resize(logoWidth * ratio).png({
165
+ quality: 100
166
+ }).toFile(filePath).then(_ref5 => {
167
+ let {
168
+ width,
169
+ height
170
+ } = _ref5;
146
171
  logWrite("✨", filePath, {
147
172
  width,
148
173
  height
@@ -151,7 +176,7 @@ export const generate = async _ref2 => {
151
176
  }));
152
177
  }
153
178
  if (android) {
154
- log(`\n ${pc.underline("Android")}`);
179
+ log.text(`\n ${pc.underline("Android")}`);
155
180
  const appPath = android.appName ? path.resolve(android.sourceDir, android.appName) : path.resolve(android.sourceDir); // @react-native-community/cli 2.x & 3.x support
156
181
 
157
182
  const resPath = path.resolve(appPath, "src", flavor, "res");
@@ -186,23 +211,35 @@ export const generate = async _ref2 => {
186
211
  }, {
187
212
  ratio: 4,
188
213
  directory: "mipmap-xxxhdpi"
189
- }].map(_ref4 => {
214
+ }].map(_ref6 => {
190
215
  let {
191
216
  ratio,
192
217
  directory
193
- } = _ref4;
218
+ } = _ref6;
194
219
  const fileName = `${logoFileName}.png`;
195
220
  const filePath = path.resolve(resPath, directory, fileName);
196
- const width = logoWidth * ratio;
197
- const height = getHeight(width);
198
- const canvasSize = splashScreenIconSizeNoBackground * ratio;
221
+ // https://github.com/androidx/androidx/blob/androidx-main/core/core-splashscreen/src/main/res/values/dimens.xml#L22
222
+ const canvasSize = 288 * ratio;
199
223
 
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(() => {
224
+ // https://sharp.pixelplumbing.com/api-constructor
225
+ const canvas = sharp({
226
+ create: {
227
+ width: canvasSize,
228
+ height: canvasSize,
229
+ channels: 4,
230
+ background: {
231
+ r: 255,
232
+ g: 255,
233
+ b: 255,
234
+ alpha: 0
235
+ }
236
+ }
237
+ });
238
+ return image.clone().resize(logoWidth * ratio).toBuffer().then(input => canvas.composite([{
239
+ input
240
+ }]).png({
241
+ quality: 100
242
+ }).toFile(filePath)).then(() => {
206
243
  logWrite("✨", filePath, {
207
244
  width: canvasSize,
208
245
  height: canvasSize
@@ -211,7 +248,7 @@ export const generate = async _ref2 => {
211
248
  }));
212
249
  }
213
250
  if (ios) {
214
- log(`\n ${pc.underline("iOS")}`);
251
+ log.text(`\n ${pc.underline("iOS")}`);
215
252
  const {
216
253
  projectPath
217
254
  } = ios;
@@ -219,13 +256,13 @@ export const generate = async _ref2 => {
219
256
  if (fs.existsSync(projectPath)) {
220
257
  const storyboardPath = path.resolve(projectPath, "BootSplash.storyboard");
221
258
  fs.writeFileSync(storyboardPath, getStoryboard({
222
- height: getHeight(logoWidth),
259
+ height: logoHeight,
223
260
  width: logoWidth,
224
261
  backgroundColor: backgroundColorHex
225
262
  }), "utf-8");
226
263
  logWrite("✨", storyboardPath);
227
264
  } else {
228
- log(`No "${projectPath}" directory found. Skipping iOS storyboard generation…`);
265
+ log.text(`No "${projectPath}" directory found. Skipping iOS storyboard generation…`);
229
266
  }
230
267
  if (fs.existsSync(imagesPath)) {
231
268
  const imageSetPath = path.resolve(imagesPath, xcassetName + ".imageset");
@@ -240,16 +277,20 @@ export const generate = async _ref2 => {
240
277
  }, {
241
278
  ratio: 3,
242
279
  suffix: "@3x"
243
- }].map(_ref5 => {
280
+ }].map(_ref7 => {
244
281
  let {
245
282
  ratio,
246
283
  suffix
247
- } = _ref5;
284
+ } = _ref7;
248
285
  const fileName = `${logoFileName}${suffix}.png`;
249
286
  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(() => {
287
+ return image.clone().resize(logoWidth * ratio).png({
288
+ quality: 100
289
+ }).toFile(filePath).then(_ref8 => {
290
+ let {
291
+ width,
292
+ height
293
+ } = _ref8;
253
294
  logWrite("✨", filePath, {
254
295
  width,
255
296
  height
@@ -257,16 +298,15 @@ export const generate = async _ref2 => {
257
298
  });
258
299
  }));
259
300
  } else {
260
- log(`No "${imagesPath}" directory found. Skipping iOS images generation…`);
301
+ log.text(`No "${imagesPath}" directory found. Skipping iOS images generation…`);
261
302
  }
262
303
  }
263
- log(`
304
+ log.text(`
264
305
  ${pc.blue("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓")}
265
306
  ${pc.blue("┃")} 💖 ${pc.bold("Love this library? Consider sponsoring!")} ${pc.blue("┃")}
266
- ${pc.blue("┃")} One-time amounts are available. ${pc.blue("┃")}
267
307
  ${pc.blue("┃")} ${pc.underline("https://github.com/sponsors/zoontek")} ${pc.blue("┃")}
268
308
  ${pc.blue("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛")}
269
309
  `);
270
- log(`✅ Done! Thanks for using ${pc.underline("react-native-bootsplash")}.`);
310
+ log.text(`✅ Done! Thanks for using ${pc.underline("react-native-bootsplash")}.`);
271
311
  };
272
312
  //# 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;mBA8OlB,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.1",
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.3",
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,42 @@ 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.warn("⚠️ Logo width exceed 288dp. It will be cropped on Android.");
167
+ } else if (logoHeight > 288) {
168
+ log.warn("⚠️ Logo height exceed 288dp. It will be cropped on Android.");
169
+ } else if (logoWidth > 192) {
170
+ log.warn("⚠️ Logo width exceed 192dp. It might be cropped on Android.");
171
+ } else if (logoHeight > 192) {
172
+ log.warn("⚠️ Logo height exceed 192dp. It might be cropped on Android.");
173
+ }
155
174
 
156
175
  const logWrite = (
157
176
  emoji: string,
158
177
  filePath: string,
159
178
  dimensions?: { width: number; height: number },
160
179
  ) =>
161
- log(
180
+ log.text(
162
181
  `${emoji} ${path.relative(workingPath, filePath)}` +
163
182
  (dimensions != null
164
183
  ? ` (${dimensions.width}x${dimensions.height})`
@@ -166,7 +185,7 @@ export const generate = async ({
166
185
  );
167
186
 
168
187
  if (assetsPath && fs.existsSync(assetsPath)) {
169
- log(`\n ${pc.underline("Assets")}`);
188
+ log.text(`\n ${pc.underline("Assets")}`);
170
189
 
171
190
  await Promise.all(
172
191
  [
@@ -178,15 +197,13 @@ export const generate = async ({
178
197
  ].map(({ ratio, suffix }) => {
179
198
  const fileName = `${logoFileName}${suffix}.png`;
180
199
  const filePath = path.resolve(assetsPath, fileName);
181
- const width = logoWidth * ratio;
182
- const height = getHeight(width);
183
200
 
184
201
  return image
185
202
  .clone()
186
- .resize(width, height)
187
- .quality(100)
188
- .writeAsync(filePath)
189
- .then(() => {
203
+ .resize(logoWidth * ratio)
204
+ .png({ quality: 100 })
205
+ .toFile(filePath)
206
+ .then(({ width, height }) => {
190
207
  logWrite("✨", filePath, { width, height });
191
208
  });
192
209
  }),
@@ -194,7 +211,7 @@ export const generate = async ({
194
211
  }
195
212
 
196
213
  if (android) {
197
- log(`\n ${pc.underline("Android")}`);
214
+ log.text(`\n ${pc.underline("Android")}`);
198
215
 
199
216
  const appPath = android.appName
200
217
  ? path.resolve(android.sourceDir, android.appName)
@@ -249,22 +266,34 @@ export const generate = async ({
249
266
  ].map(({ ratio, directory }) => {
250
267
  const fileName = `${logoFileName}.png`;
251
268
  const filePath = path.resolve(resPath, directory, fileName);
252
- const width = logoWidth * ratio;
253
- const height = getHeight(width);
269
+ // https://github.com/androidx/androidx/blob/androidx-main/core/core-splashscreen/src/main/res/values/dimens.xml#L22
270
+ const canvasSize = 288 * ratio;
271
+
272
+ // https://sharp.pixelplumbing.com/api-constructor
273
+ const canvas = sharp({
274
+ create: {
275
+ width: canvasSize,
276
+ height: canvasSize,
277
+ channels: 4,
278
+ background: {
279
+ r: 255,
280
+ g: 255,
281
+ b: 255,
282
+ alpha: 0,
283
+ },
284
+ },
285
+ });
254
286
 
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)
287
+ return image
288
+ .clone()
289
+ .resize(logoWidth * ratio)
290
+ .toBuffer()
291
+ .then((input) =>
292
+ canvas
293
+ .composite([{ input }])
294
+ .png({ quality: 100 })
295
+ .toFile(filePath),
296
+ )
268
297
  .then(() => {
269
298
  logWrite("✨", filePath, { width: canvasSize, height: canvasSize });
270
299
  });
@@ -273,7 +302,7 @@ export const generate = async ({
273
302
  }
274
303
 
275
304
  if (ios) {
276
- log(`\n ${pc.underline("iOS")}`);
305
+ log.text(`\n ${pc.underline("iOS")}`);
277
306
 
278
307
  const { projectPath } = ios;
279
308
  const imagesPath = path.resolve(projectPath, "Images.xcassets");
@@ -284,7 +313,7 @@ export const generate = async ({
284
313
  fs.writeFileSync(
285
314
  storyboardPath,
286
315
  getStoryboard({
287
- height: getHeight(logoWidth),
316
+ height: logoHeight,
288
317
  width: logoWidth,
289
318
  backgroundColor: backgroundColorHex,
290
319
  }),
@@ -293,7 +322,7 @@ export const generate = async ({
293
322
 
294
323
  logWrite("✨", storyboardPath);
295
324
  } else {
296
- log(
325
+ log.text(
297
326
  `No "${projectPath}" directory found. Skipping iOS storyboard generation…`,
298
327
  );
299
328
  }
@@ -316,37 +345,36 @@ export const generate = async ({
316
345
  ].map(({ ratio, suffix }) => {
317
346
  const fileName = `${logoFileName}${suffix}.png`;
318
347
  const filePath = path.resolve(imageSetPath, fileName);
319
- const width = logoWidth * ratio;
320
- const height = getHeight(width);
321
348
 
322
349
  return image
323
350
  .clone()
324
- .resize(width, height)
325
- .quality(100)
326
- .writeAsync(filePath)
327
- .then(() => {
351
+ .resize(logoWidth * ratio)
352
+ .png({ quality: 100 })
353
+ .toFile(filePath)
354
+ .then(({ width, height }) => {
328
355
  logWrite("✨", filePath, { width, height });
329
356
  });
330
357
  }),
331
358
  );
332
359
  } else {
333
- log(
360
+ log.text(
334
361
  `No "${imagesPath}" directory found. Skipping iOS images generation…`,
335
362
  );
336
363
  }
337
364
  }
338
365
 
339
- log(`
366
+ log.text(`
340
367
  ${pc.blue("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓")}
341
368
  ${pc.blue("┃")} 💖 ${pc.bold(
342
369
  "Love this library? Consider sponsoring!",
343
370
  )} ${pc.blue("┃")}
344
- ${pc.blue("┃")} One-time amounts are available. ${pc.blue("┃")}
345
371
  ${pc.blue("┃")} ${pc.underline(
346
372
  "https://github.com/sponsors/zoontek",
347
373
  )} ${pc.blue("┃")}
348
374
  ${pc.blue("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛")}
349
375
  `);
350
376
 
351
- log(`✅ Done! Thanks for using ${pc.underline("react-native-bootsplash")}.`);
377
+ log.text(
378
+ `✅ Done! Thanks for using ${pc.underline("react-native-bootsplash")}.`,
379
+ );
352
380
  };