@hot-updater/react-native 0.0.4 → 0.0.5
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/ios/HotUpdater/HotUpdater.h +4 -1
- package/ios/HotUpdater/HotUpdater.mm +14 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +21 -12
- package/lib/types.d.ts +16 -0
- package/lib/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -8,6 +8,12 @@ static NSURL *_bundleURL = nil;
|
|
|
8
8
|
|
|
9
9
|
#pragma mark - Bundle URL Management
|
|
10
10
|
|
|
11
|
+
+ (void)reload {
|
|
12
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
13
|
+
RCTTriggerReloadCommandListeners(@"HotUpdater requested a reload");
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
|
|
11
17
|
+ (void)setVersionId:(NSString*)versionId {
|
|
12
18
|
static dispatch_once_t onceToken;
|
|
13
19
|
dispatch_once(&onceToken, ^{
|
|
@@ -66,6 +72,10 @@ static NSURL *_bundleURL = nil;
|
|
|
66
72
|
return [self cachedURLFromBundle] ?: [self fallbackURL];
|
|
67
73
|
}
|
|
68
74
|
|
|
75
|
+
+ (NSURL *)bundleURLWithoutFallback {
|
|
76
|
+
return [self cachedURLFromBundle];
|
|
77
|
+
}
|
|
78
|
+
|
|
69
79
|
#pragma mark - Utility Methods
|
|
70
80
|
|
|
71
81
|
+ (NSString *)convertFileSystemPathFromBasePath:(NSString *)basePath {
|
|
@@ -141,6 +151,10 @@ static NSURL *_bundleURL = nil;
|
|
|
141
151
|
|
|
142
152
|
#pragma mark - React Native Exports
|
|
143
153
|
|
|
154
|
+
RCT_EXPORT_METHOD(reload) {
|
|
155
|
+
[HotUpdater reload];
|
|
156
|
+
}
|
|
157
|
+
|
|
144
158
|
RCT_EXPORT_METHOD(getAppVersionId:(RCTResponseSenderBlock)callback) {
|
|
145
159
|
NSString *versionId = [HotUpdater getVersionId];
|
|
146
160
|
callback(@[versionId ?: [NSNull null]]);
|
package/lib/index.d.ts
CHANGED
|
@@ -15,6 +15,10 @@ export declare const getAppVersionId: () => Promise<string | null>;
|
|
|
15
15
|
* @returns {Promise<boolean>} Resolves with true if download was successful, otherwise rejects with an error.
|
|
16
16
|
*/
|
|
17
17
|
export declare const downloadFilesFromURLs: (urlStrings: string[], prefix: string) => Promise<boolean>;
|
|
18
|
+
/**
|
|
19
|
+
* Reloads the app.
|
|
20
|
+
*/
|
|
21
|
+
export declare const reload: () => void;
|
|
18
22
|
export type HotUpdaterStatus = "INSTALLING_UPDATE" | "UP_TO_DATE";
|
|
19
23
|
export interface HotUpdaterInit {
|
|
20
24
|
metadata: HotUpdaterMetaData | (() => HotUpdaterMetaData) | (() => Promise<HotUpdaterMetaData>);
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAM7C;;;;;GAKG;AACH,eAAO,MAAM,eAAe,QAAa,QAAQ,MAAM,GAAG,IAAI,CAM7D,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,eACpB,MAAM,EAAE,UACZ,MAAM,KACb,QAAQ,OAAO,CAqBjB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,YAAY,CAAC;AAElE,MAAM,WAAW,cAAc;IAC7B,QAAQ,EACJ,kBAAkB,GAClB,CAAC,MAAM,kBAAkB,CAAC,GAC1B,CAAC,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAExC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC/C,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAClC;AAED,eAAO,MAAM,IAAI,wCAId,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAM7C;;;;;GAKG;AACH,eAAO,MAAM,eAAe,QAAa,QAAQ,MAAM,GAAG,IAAI,CAM7D,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,eACpB,MAAM,EAAE,UACZ,MAAM,KACb,QAAQ,OAAO,CAqBjB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,YAElB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,YAAY,CAAC;AAElE,MAAM,WAAW,cAAc;IAC7B,QAAQ,EACJ,kBAAkB,GAClB,CAAC,MAAM,kBAAkB,CAAC,GAC1B,CAAC,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAExC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC/C,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAClC;AAED,eAAO,MAAM,IAAI,wCAId,cAAc,kBAqChB,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -79,37 +79,46 @@ export var downloadFilesFromURLs = function (urlStrings, prefix) {
|
|
|
79
79
|
});
|
|
80
80
|
});
|
|
81
81
|
};
|
|
82
|
+
/**
|
|
83
|
+
* Reloads the app.
|
|
84
|
+
*/
|
|
85
|
+
export var reload = function () {
|
|
86
|
+
HotUpdater.reload();
|
|
87
|
+
};
|
|
82
88
|
export var init = function (_a) {
|
|
83
89
|
var metadata = _a.metadata, onSuccess = _a.onSuccess, onFailure = _a.onFailure;
|
|
84
90
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
85
|
-
var _b, files, id, _c, appVersionId, allDownloadFiles, e_1;
|
|
86
|
-
return __generator(this, function (
|
|
87
|
-
switch (
|
|
91
|
+
var _b, files, id, _c, reloadAfterUpdate, _d, appVersionId, allDownloadFiles, e_1;
|
|
92
|
+
return __generator(this, function (_e) {
|
|
93
|
+
switch (_e.label) {
|
|
88
94
|
case 0:
|
|
89
95
|
if (!["ios", "android"].includes(Platform.OS)) {
|
|
90
96
|
throw new HotUpdaterError("HotUpdater is only supported on iOS and Android");
|
|
91
97
|
}
|
|
92
|
-
|
|
98
|
+
_e.label = 1;
|
|
93
99
|
case 1:
|
|
94
|
-
|
|
100
|
+
_e.trys.push([1, 8, , 9]);
|
|
95
101
|
if (!(typeof metadata === "function")) return [3 /*break*/, 3];
|
|
96
102
|
return [4 /*yield*/, wrapNetworkError(metadata)];
|
|
97
103
|
case 2:
|
|
98
|
-
|
|
104
|
+
_d = _e.sent();
|
|
99
105
|
return [3 /*break*/, 4];
|
|
100
106
|
case 3:
|
|
101
|
-
|
|
102
|
-
|
|
107
|
+
_d = metadata;
|
|
108
|
+
_e.label = 4;
|
|
103
109
|
case 4:
|
|
104
|
-
_b =
|
|
110
|
+
_b = _d, files = _b.files, id = _b.id, _c = _b.reloadAfterUpdate, reloadAfterUpdate = _c === void 0 ? false : _c;
|
|
105
111
|
return [4 /*yield*/, getAppVersionId()];
|
|
106
112
|
case 5:
|
|
107
|
-
appVersionId =
|
|
113
|
+
appVersionId = _e.sent();
|
|
108
114
|
if (!(id !== appVersionId)) return [3 /*break*/, 7];
|
|
109
115
|
return [4 /*yield*/, downloadFilesFromURLs(files, id)];
|
|
110
116
|
case 6:
|
|
111
|
-
allDownloadFiles =
|
|
117
|
+
allDownloadFiles = _e.sent();
|
|
112
118
|
if (allDownloadFiles) {
|
|
119
|
+
if (reloadAfterUpdate) {
|
|
120
|
+
reload();
|
|
121
|
+
}
|
|
113
122
|
onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess("INSTALLING_UPDATE");
|
|
114
123
|
}
|
|
115
124
|
else {
|
|
@@ -120,7 +129,7 @@ export var init = function (_a) {
|
|
|
120
129
|
onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess("UP_TO_DATE");
|
|
121
130
|
return [3 /*break*/, 9];
|
|
122
131
|
case 8:
|
|
123
|
-
e_1 =
|
|
132
|
+
e_1 = _e.sent();
|
|
124
133
|
if (onFailure) {
|
|
125
134
|
onFailure(e_1);
|
|
126
135
|
return [2 /*return*/];
|
package/lib/types.d.ts
CHANGED
|
@@ -1,7 +1,23 @@
|
|
|
1
1
|
export type Version = `${number}.${number}.${number}` | `${number}.${number}` | `${number}`;
|
|
2
|
+
/**
|
|
3
|
+
* Metadata associated with a hot update.
|
|
4
|
+
*/
|
|
2
5
|
export type HotUpdaterMetaData = {
|
|
6
|
+
/**
|
|
7
|
+
* List of files associated with the update.
|
|
8
|
+
*/
|
|
3
9
|
files: string[];
|
|
10
|
+
/**
|
|
11
|
+
* Version information for the update.
|
|
12
|
+
*/
|
|
4
13
|
version: Version;
|
|
14
|
+
/**
|
|
15
|
+
* Unique identifier for the update. This is used as a prefix when downloading files.
|
|
16
|
+
*/
|
|
5
17
|
id: string;
|
|
18
|
+
/**
|
|
19
|
+
* Indicates whether the application should reload after the update is applied.
|
|
20
|
+
*/
|
|
21
|
+
reloadAfterUpdate?: boolean;
|
|
6
22
|
};
|
|
7
23
|
//# sourceMappingURL=types.d.ts.map
|
package/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GACf,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,GAC/B,GAAG,MAAM,IAAI,MAAM,EAAE,GACrB,GAAG,MAAM,EAAE,CAAC;AAEhB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GACf,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,GAC/B,GAAG,MAAM,IAAI,MAAM,EAAE,GACrB,GAAG,MAAM,EAAE,CAAC;AAEhB;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;OAEG;IACH,KAAK,EAAE,MAAM,EAAE,CAAC;IAEhB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC"}
|