react-native-bootsplash 6.2.6 → 6.3.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 +5 -5
- package/android/app/build/generated/source/codegen/java/com/facebook/fbreact/specs/NativeRNBootSplashSpec.java +78 -0
- package/android/app/build/generated/source/codegen/jni/CMakeLists.txt +36 -0
- package/android/app/build/generated/source/codegen/jni/RNBootSplashSpec-generated.cpp +44 -0
- package/android/app/build/generated/source/codegen/jni/RNBootSplashSpec.h +31 -0
- package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNBootSplashSpec/RNBootSplashSpecJSI-generated.cpp +39 -0
- package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNBootSplashSpec/RNBootSplashSpecJSI.h +85 -0
- package/cli.js +101 -0
- package/dist/commonjs/addon/index.js +31 -31
- package/dist/commonjs/generate.js +7 -6
- package/dist/commonjs/generate.js.map +1 -1
- package/dist/module/addon/index.js +31 -31
- package/dist/module/generate.js +7 -6
- package/dist/module/generate.js.map +1 -1
- package/dist/typescript/generate.d.ts +1 -4
- package/dist/typescript/generate.d.ts.map +1 -1
- package/package.json +20 -11
- package/react-native.config.js +14 -14
- package/src/generate.ts +6 -15
- package/dist/module/package.json +0 -1
package/README.md
CHANGED
|
@@ -37,15 +37,15 @@ _⚠️ Don't forget going into the `ios` directory to execute a `pod install
|
|
|
37
37
|
In order to speed up the setup, we provide a **CLI** to generate assets, create the Android Drawable XML file and the iOS Storyboard file automatically ✨.
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
|
-
$ npx react-native
|
|
40
|
+
$ npx react-native-bootsplash generate --help
|
|
41
41
|
# --- or ---
|
|
42
|
-
$ yarn react-native
|
|
42
|
+
$ yarn react-native-bootsplash generate --help
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
The command can take multiple arguments:
|
|
46
46
|
|
|
47
47
|
```bash
|
|
48
|
-
Usage: react-native
|
|
48
|
+
Usage: react-native-bootsplash generate [options] <logo>
|
|
49
49
|
|
|
50
50
|
Generate a launch screen using a logo file path (PNG or SVG)
|
|
51
51
|
|
|
@@ -82,7 +82,7 @@ _📍 This license key grants unlimited and unrestricted usage of the generator
|
|
|
82
82
|
|
|
83
83
|
```bash
|
|
84
84
|
# Without license key
|
|
85
|
-
yarn react-native
|
|
85
|
+
yarn react-native-bootsplash generate svgs/light-logo.svg \
|
|
86
86
|
--platforms=android,ios,web \
|
|
87
87
|
--background=F5FCFF \
|
|
88
88
|
--logo-width=100 \
|
|
@@ -91,7 +91,7 @@ yarn react-native generate-bootsplash svgs/light-logo.svg \
|
|
|
91
91
|
--html=public/index.html
|
|
92
92
|
|
|
93
93
|
# With license key 🔑
|
|
94
|
-
yarn react-native
|
|
94
|
+
yarn react-native-bootsplash generate svgs/light-logo.svg \
|
|
95
95
|
--platforms=android,ios,web \
|
|
96
96
|
--background=F5FCFF \
|
|
97
97
|
--logo-width=100 \
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
4
|
+
*
|
|
5
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
6
|
+
* once the code is regenerated.
|
|
7
|
+
*
|
|
8
|
+
* @generated by codegen project: GenerateModuleJavaSpec.js
|
|
9
|
+
*
|
|
10
|
+
* @nolint
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
package com.facebook.fbreact.specs;
|
|
14
|
+
|
|
15
|
+
import com.facebook.proguard.annotations.DoNotStrip;
|
|
16
|
+
import com.facebook.react.bridge.Promise;
|
|
17
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
18
|
+
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
|
19
|
+
import com.facebook.react.bridge.ReactMethod;
|
|
20
|
+
import com.facebook.react.common.build.ReactBuildConfig;
|
|
21
|
+
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
|
22
|
+
import java.util.Arrays;
|
|
23
|
+
import java.util.HashSet;
|
|
24
|
+
import java.util.Map;
|
|
25
|
+
import java.util.Set;
|
|
26
|
+
import javax.annotation.Nonnull;
|
|
27
|
+
import javax.annotation.Nullable;
|
|
28
|
+
|
|
29
|
+
public abstract class NativeRNBootSplashSpec extends ReactContextBaseJavaModule implements TurboModule {
|
|
30
|
+
public static final String NAME = "RNBootSplash";
|
|
31
|
+
|
|
32
|
+
public NativeRNBootSplashSpec(ReactApplicationContext reactContext) {
|
|
33
|
+
super(reactContext);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@Override
|
|
37
|
+
public @Nonnull String getName() {
|
|
38
|
+
return NAME;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
protected abstract Map<String, Object> getTypedExportedConstants();
|
|
42
|
+
|
|
43
|
+
@Override
|
|
44
|
+
@DoNotStrip
|
|
45
|
+
public final @Nullable Map<String, Object> getConstants() {
|
|
46
|
+
Map<String, Object> constants = getTypedExportedConstants();
|
|
47
|
+
if (ReactBuildConfig.DEBUG || ReactBuildConfig.IS_INTERNAL_BUILD) {
|
|
48
|
+
Set<String> obligatoryFlowConstants = new HashSet<>(Arrays.asList(
|
|
49
|
+
"darkModeEnabled"
|
|
50
|
+
));
|
|
51
|
+
Set<String> optionalFlowConstants = new HashSet<>(Arrays.asList(
|
|
52
|
+
"logoSizeRatio",
|
|
53
|
+
"navigationBarHeight",
|
|
54
|
+
"statusBarHeight"
|
|
55
|
+
));
|
|
56
|
+
Set<String> undeclaredConstants = new HashSet<>(constants.keySet());
|
|
57
|
+
undeclaredConstants.removeAll(obligatoryFlowConstants);
|
|
58
|
+
undeclaredConstants.removeAll(optionalFlowConstants);
|
|
59
|
+
if (!undeclaredConstants.isEmpty()) {
|
|
60
|
+
throw new IllegalStateException(String.format("Native Module Flow doesn't declare constants: %s", undeclaredConstants));
|
|
61
|
+
}
|
|
62
|
+
undeclaredConstants = obligatoryFlowConstants;
|
|
63
|
+
undeclaredConstants.removeAll(constants.keySet());
|
|
64
|
+
if (!undeclaredConstants.isEmpty()) {
|
|
65
|
+
throw new IllegalStateException(String.format("Native Module doesn't fill in constants: %s", undeclaredConstants));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return constants;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
@ReactMethod
|
|
72
|
+
@DoNotStrip
|
|
73
|
+
public abstract void hide(boolean fade, Promise promise);
|
|
74
|
+
|
|
75
|
+
@ReactMethod
|
|
76
|
+
@DoNotStrip
|
|
77
|
+
public abstract void isVisible(Promise promise);
|
|
78
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
#
|
|
3
|
+
# This source code is licensed under the MIT license found in the
|
|
4
|
+
# LICENSE file in the root directory of this source tree.
|
|
5
|
+
|
|
6
|
+
cmake_minimum_required(VERSION 3.13)
|
|
7
|
+
set(CMAKE_VERBOSE_MAKEFILE on)
|
|
8
|
+
|
|
9
|
+
file(GLOB react_codegen_SRCS CONFIGURE_DEPENDS *.cpp react/renderer/components/RNBootSplashSpec/*.cpp)
|
|
10
|
+
|
|
11
|
+
add_library(
|
|
12
|
+
react_codegen_RNBootSplashSpec
|
|
13
|
+
OBJECT
|
|
14
|
+
${react_codegen_SRCS}
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
target_include_directories(react_codegen_RNBootSplashSpec PUBLIC . react/renderer/components/RNBootSplashSpec)
|
|
18
|
+
|
|
19
|
+
target_link_libraries(
|
|
20
|
+
react_codegen_RNBootSplashSpec
|
|
21
|
+
fbjni
|
|
22
|
+
jsi
|
|
23
|
+
# We need to link different libraries based on whether we are building rncore or not, that's necessary
|
|
24
|
+
# because we want to break a circular dependency between react_codegen_rncore and reactnative
|
|
25
|
+
reactnative
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
target_compile_options(
|
|
29
|
+
react_codegen_RNBootSplashSpec
|
|
30
|
+
PRIVATE
|
|
31
|
+
-DLOG_TAG=\"ReactNative\"
|
|
32
|
+
-fexceptions
|
|
33
|
+
-frtti
|
|
34
|
+
-std=c++20
|
|
35
|
+
-Wall
|
|
36
|
+
)
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
4
|
+
*
|
|
5
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
6
|
+
* once the code is regenerated.
|
|
7
|
+
*
|
|
8
|
+
* @generated by codegen project: GenerateModuleJniCpp.js
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
#include "RNBootSplashSpec.h"
|
|
12
|
+
|
|
13
|
+
namespace facebook::react {
|
|
14
|
+
|
|
15
|
+
static facebook::jsi::Value __hostFunction_NativeRNBootSplashSpecJSI_getConstants(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
|
16
|
+
static jmethodID cachedMethodId = nullptr;
|
|
17
|
+
return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, ObjectKind, "getConstants", "()Ljava/util/Map;", args, count, cachedMethodId);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
static facebook::jsi::Value __hostFunction_NativeRNBootSplashSpecJSI_hide(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
|
21
|
+
static jmethodID cachedMethodId = nullptr;
|
|
22
|
+
return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "hide", "(ZLcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
static facebook::jsi::Value __hostFunction_NativeRNBootSplashSpecJSI_isVisible(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
|
26
|
+
static jmethodID cachedMethodId = nullptr;
|
|
27
|
+
return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "isVisible", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
NativeRNBootSplashSpecJSI::NativeRNBootSplashSpecJSI(const JavaTurboModule::InitParams ¶ms)
|
|
31
|
+
: JavaTurboModule(params) {
|
|
32
|
+
methodMap_["getConstants"] = MethodMetadata {0, __hostFunction_NativeRNBootSplashSpecJSI_getConstants};
|
|
33
|
+
methodMap_["hide"] = MethodMetadata {1, __hostFunction_NativeRNBootSplashSpecJSI_hide};
|
|
34
|
+
methodMap_["isVisible"] = MethodMetadata {0, __hostFunction_NativeRNBootSplashSpecJSI_isVisible};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
std::shared_ptr<TurboModule> RNBootSplashSpec_ModuleProvider(const std::string &moduleName, const JavaTurboModule::InitParams ¶ms) {
|
|
38
|
+
if (moduleName == "RNBootSplash") {
|
|
39
|
+
return std::make_shared<NativeRNBootSplashSpecJSI>(params);
|
|
40
|
+
}
|
|
41
|
+
return nullptr;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
} // namespace facebook::react
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
4
|
+
*
|
|
5
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
6
|
+
* once the code is regenerated.
|
|
7
|
+
*
|
|
8
|
+
* @generated by codegen project: GenerateModuleJniH.js
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
#pragma once
|
|
12
|
+
|
|
13
|
+
#include <ReactCommon/JavaTurboModule.h>
|
|
14
|
+
#include <ReactCommon/TurboModule.h>
|
|
15
|
+
#include <jsi/jsi.h>
|
|
16
|
+
|
|
17
|
+
namespace facebook::react {
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* JNI C++ class for module 'NativeRNBootSplash'
|
|
21
|
+
*/
|
|
22
|
+
class JSI_EXPORT NativeRNBootSplashSpecJSI : public JavaTurboModule {
|
|
23
|
+
public:
|
|
24
|
+
NativeRNBootSplashSpecJSI(const JavaTurboModule::InitParams ¶ms);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
JSI_EXPORT
|
|
29
|
+
std::shared_ptr<TurboModule> RNBootSplashSpec_ModuleProvider(const std::string &moduleName, const JavaTurboModule::InitParams ¶ms);
|
|
30
|
+
|
|
31
|
+
} // namespace facebook::react
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GenerateModuleCpp.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
#include "RNBootSplashSpecJSI.h"
|
|
11
|
+
|
|
12
|
+
namespace facebook::react {
|
|
13
|
+
|
|
14
|
+
static jsi::Value __hostFunction_NativeRNBootSplashCxxSpecJSI_getConstants(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
15
|
+
return static_cast<NativeRNBootSplashCxxSpecJSI *>(&turboModule)->getConstants(
|
|
16
|
+
rt
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
static jsi::Value __hostFunction_NativeRNBootSplashCxxSpecJSI_hide(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
20
|
+
return static_cast<NativeRNBootSplashCxxSpecJSI *>(&turboModule)->hide(
|
|
21
|
+
rt,
|
|
22
|
+
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asBool()
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
static jsi::Value __hostFunction_NativeRNBootSplashCxxSpecJSI_isVisible(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
26
|
+
return static_cast<NativeRNBootSplashCxxSpecJSI *>(&turboModule)->isVisible(
|
|
27
|
+
rt
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
NativeRNBootSplashCxxSpecJSI::NativeRNBootSplashCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker)
|
|
32
|
+
: TurboModule("RNBootSplash", jsInvoker) {
|
|
33
|
+
methodMap_["getConstants"] = MethodMetadata {0, __hostFunction_NativeRNBootSplashCxxSpecJSI_getConstants};
|
|
34
|
+
methodMap_["hide"] = MethodMetadata {1, __hostFunction_NativeRNBootSplashCxxSpecJSI_hide};
|
|
35
|
+
methodMap_["isVisible"] = MethodMetadata {0, __hostFunction_NativeRNBootSplashCxxSpecJSI_isVisible};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
} // namespace facebook::react
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GenerateModuleH.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
#pragma once
|
|
11
|
+
|
|
12
|
+
#include <ReactCommon/TurboModule.h>
|
|
13
|
+
#include <react/bridging/Bridging.h>
|
|
14
|
+
|
|
15
|
+
namespace facebook::react {
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class JSI_EXPORT NativeRNBootSplashCxxSpecJSI : public TurboModule {
|
|
19
|
+
protected:
|
|
20
|
+
NativeRNBootSplashCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
|
|
21
|
+
|
|
22
|
+
public:
|
|
23
|
+
virtual jsi::Object getConstants(jsi::Runtime &rt) = 0;
|
|
24
|
+
virtual jsi::Value hide(jsi::Runtime &rt, bool fade) = 0;
|
|
25
|
+
virtual jsi::Value isVisible(jsi::Runtime &rt) = 0;
|
|
26
|
+
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
template <typename T>
|
|
30
|
+
class JSI_EXPORT NativeRNBootSplashCxxSpec : public TurboModule {
|
|
31
|
+
public:
|
|
32
|
+
jsi::Value get(jsi::Runtime &rt, const jsi::PropNameID &propName) override {
|
|
33
|
+
return delegate_.get(rt, propName);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
static constexpr std::string_view kModuleName = "RNBootSplash";
|
|
37
|
+
|
|
38
|
+
protected:
|
|
39
|
+
NativeRNBootSplashCxxSpec(std::shared_ptr<CallInvoker> jsInvoker)
|
|
40
|
+
: TurboModule(std::string{NativeRNBootSplashCxxSpec::kModuleName}, jsInvoker),
|
|
41
|
+
delegate_(reinterpret_cast<T*>(this), jsInvoker) {}
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
private:
|
|
45
|
+
class Delegate : public NativeRNBootSplashCxxSpecJSI {
|
|
46
|
+
public:
|
|
47
|
+
Delegate(T *instance, std::shared_ptr<CallInvoker> jsInvoker) :
|
|
48
|
+
NativeRNBootSplashCxxSpecJSI(std::move(jsInvoker)), instance_(instance) {
|
|
49
|
+
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
jsi::Object getConstants(jsi::Runtime &rt) override {
|
|
53
|
+
static_assert(
|
|
54
|
+
bridging::getParameterCount(&T::getConstants) == 1,
|
|
55
|
+
"Expected getConstants(...) to have 1 parameters");
|
|
56
|
+
|
|
57
|
+
return bridging::callFromJs<jsi::Object>(
|
|
58
|
+
rt, &T::getConstants, jsInvoker_, instance_);
|
|
59
|
+
}
|
|
60
|
+
jsi::Value hide(jsi::Runtime &rt, bool fade) override {
|
|
61
|
+
static_assert(
|
|
62
|
+
bridging::getParameterCount(&T::hide) == 2,
|
|
63
|
+
"Expected hide(...) to have 2 parameters");
|
|
64
|
+
|
|
65
|
+
return bridging::callFromJs<jsi::Value>(
|
|
66
|
+
rt, &T::hide, jsInvoker_, instance_, std::move(fade));
|
|
67
|
+
}
|
|
68
|
+
jsi::Value isVisible(jsi::Runtime &rt) override {
|
|
69
|
+
static_assert(
|
|
70
|
+
bridging::getParameterCount(&T::isVisible) == 1,
|
|
71
|
+
"Expected isVisible(...) to have 1 parameters");
|
|
72
|
+
|
|
73
|
+
return bridging::callFromJs<jsi::Value>(
|
|
74
|
+
rt, &T::isVisible, jsInvoker_, instance_);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
private:
|
|
78
|
+
friend class NativeRNBootSplashCxxSpec;
|
|
79
|
+
T *instance_;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
Delegate delegate_;
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
} // namespace facebook::react
|
package/cli.js
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const { Command } = require("commander");
|
|
4
|
+
|
|
5
|
+
const program = new Command();
|
|
6
|
+
const pkg = require("./package.json");
|
|
7
|
+
|
|
8
|
+
const validProjectTypes = ["detect", "bare", "expo"];
|
|
9
|
+
const validPlatforms = ["android", "ios", "web"];
|
|
10
|
+
|
|
11
|
+
program
|
|
12
|
+
.name(pkg.name)
|
|
13
|
+
.description(pkg.description)
|
|
14
|
+
.version(pkg.version)
|
|
15
|
+
.command("generate", { isDefault: true })
|
|
16
|
+
.description("Generate a launch screen using a logo file path (PNG or SVG)")
|
|
17
|
+
.argument("<logo>", "Logo file path (PNG or SVG)")
|
|
18
|
+
.option(
|
|
19
|
+
"--project-type <string>",
|
|
20
|
+
'Project type ("detect", "bare" or "expo")',
|
|
21
|
+
"detect",
|
|
22
|
+
)
|
|
23
|
+
.option(
|
|
24
|
+
"--platforms <list>",
|
|
25
|
+
"Platforms to generate for, separated by a comma",
|
|
26
|
+
validPlatforms.join(","),
|
|
27
|
+
)
|
|
28
|
+
.option(
|
|
29
|
+
"--background <string>",
|
|
30
|
+
"Background color (in hexadecimal format)",
|
|
31
|
+
"#fff",
|
|
32
|
+
)
|
|
33
|
+
.option(
|
|
34
|
+
"--logo-width <number>",
|
|
35
|
+
"Logo width at @1x (in dp - we recommend approximately ~100)",
|
|
36
|
+
100,
|
|
37
|
+
)
|
|
38
|
+
.option(
|
|
39
|
+
"--assets-output <string>",
|
|
40
|
+
"Assets output directory path",
|
|
41
|
+
"assets/bootsplash",
|
|
42
|
+
)
|
|
43
|
+
.option(
|
|
44
|
+
"--flavor <string>",
|
|
45
|
+
"Android flavor build variant (where your resource directory is)",
|
|
46
|
+
"main",
|
|
47
|
+
)
|
|
48
|
+
.option(
|
|
49
|
+
"--html <string>",
|
|
50
|
+
"HTML template file path (your web app entry point)",
|
|
51
|
+
"public/index.html",
|
|
52
|
+
)
|
|
53
|
+
.option(
|
|
54
|
+
"--license-key <string>",
|
|
55
|
+
"License key to enable brand and dark mode assets generation",
|
|
56
|
+
)
|
|
57
|
+
.option("--brand <string>", "Brand file path (PNG or SVG)")
|
|
58
|
+
.option(
|
|
59
|
+
"--brand-width <number>",
|
|
60
|
+
"Brand width at @1x (in dp - we recommend approximately ~80)",
|
|
61
|
+
80,
|
|
62
|
+
)
|
|
63
|
+
.option(
|
|
64
|
+
"--dark-background <string>",
|
|
65
|
+
"[dark mode] Background color (in hexadecimal format)",
|
|
66
|
+
)
|
|
67
|
+
.option("--dark-logo <string>", "[dark mode] Logo file path (PNG or SVG)")
|
|
68
|
+
.option("--dark-brand <string>", "[dark mode] Brand file path (PNG or SVG)")
|
|
69
|
+
.action((logo, options) => {
|
|
70
|
+
const { projectType, platforms, logoWidth, brandWidth, ...rest } = options;
|
|
71
|
+
|
|
72
|
+
const args = {
|
|
73
|
+
...rest,
|
|
74
|
+
|
|
75
|
+
projectType: validProjectTypes.includes(projectType.toLowerCase())
|
|
76
|
+
? projectType.toLowerCase()
|
|
77
|
+
: "detect",
|
|
78
|
+
|
|
79
|
+
platforms: [
|
|
80
|
+
...new Set(
|
|
81
|
+
platforms
|
|
82
|
+
.toLowerCase()
|
|
83
|
+
.split(/[ ,;|]/)
|
|
84
|
+
.map((platform) => platform.trim())
|
|
85
|
+
.filter((item) => validPlatforms.includes(item)),
|
|
86
|
+
),
|
|
87
|
+
],
|
|
88
|
+
|
|
89
|
+
logoWidth: Number.parseInt(logoWidth, 10),
|
|
90
|
+
brandWidth: Number.parseInt(brandWidth, 10),
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
const { generate } = require("./dist/commonjs/generate");
|
|
94
|
+
|
|
95
|
+
generate({ logo, ...args }).catch((error) => {
|
|
96
|
+
console.error(error);
|
|
97
|
+
process.exit(1);
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
program.parse(process.argv);
|