react-native-update 10.10.2 → 10.11.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/package.json +1 -1
- package/src/client.ts +8 -4
- package/src/context.ts +2 -2
- package/src/provider.tsx +37 -8
- package/src/type.ts +2 -2
package/package.json
CHANGED
package/src/client.ts
CHANGED
|
@@ -17,8 +17,10 @@ import {
|
|
|
17
17
|
const defaultServer = {
|
|
18
18
|
main: 'https://update.react-native.cn/api',
|
|
19
19
|
backups: ['https://update.reactnative.cn/api'],
|
|
20
|
-
|
|
20
|
+
queryUrls: [
|
|
21
|
+
'https://gitee.com/sunnylqm/react-native-pushy/raw/master/endpoints.json',
|
|
21
22
|
'https://cdn.jsdelivr.net/gh/reactnativecn/react-native-pushy@master/endpoints.json',
|
|
23
|
+
],
|
|
22
24
|
};
|
|
23
25
|
|
|
24
26
|
const empty = {};
|
|
@@ -233,9 +235,11 @@ export class Pushy {
|
|
|
233
235
|
if (!server) {
|
|
234
236
|
return [];
|
|
235
237
|
}
|
|
236
|
-
if (server.
|
|
238
|
+
if (server.queryUrls) {
|
|
237
239
|
try {
|
|
238
|
-
const resp = await
|
|
240
|
+
const resp = await Promise.race(
|
|
241
|
+
server.queryUrls.map(queryUrl => fetch(queryUrl)),
|
|
242
|
+
);
|
|
239
243
|
const remoteEndpoints = await resp.json();
|
|
240
244
|
log('fetch endpoints:', remoteEndpoints);
|
|
241
245
|
if (Array.isArray(remoteEndpoints)) {
|
|
@@ -244,7 +248,7 @@ export class Pushy {
|
|
|
244
248
|
);
|
|
245
249
|
}
|
|
246
250
|
} catch (e: any) {
|
|
247
|
-
log('failed to fetch endpoints from: ', server.
|
|
251
|
+
log('failed to fetch endpoints from: ', server.queryUrls);
|
|
248
252
|
}
|
|
249
253
|
}
|
|
250
254
|
return server.backups;
|
package/src/context.ts
CHANGED
|
@@ -14,7 +14,7 @@ export const defaultContext = {
|
|
|
14
14
|
downloadUpdate: asyncNoop,
|
|
15
15
|
downloadAndInstallApk: asyncNoop,
|
|
16
16
|
getCurrentVersionInfo: () => Promise.resolve({}),
|
|
17
|
-
|
|
17
|
+
parseTestQrCode: () => false,
|
|
18
18
|
currentHash: '',
|
|
19
19
|
packageVersion: '',
|
|
20
20
|
};
|
|
@@ -32,7 +32,7 @@ export const PushyContext = createContext<{
|
|
|
32
32
|
description?: string;
|
|
33
33
|
metaInfo?: string;
|
|
34
34
|
}>;
|
|
35
|
-
|
|
35
|
+
parseTestQrCode: (code: string) => boolean;
|
|
36
36
|
currentHash: string;
|
|
37
37
|
packageVersion: string;
|
|
38
38
|
client?: Pushy;
|
package/src/provider.tsx
CHANGED
|
@@ -263,13 +263,7 @@ export const PushyProvider = ({
|
|
|
263
263
|
}, [checkUpdate, options, dismissError, markSuccess]);
|
|
264
264
|
|
|
265
265
|
const parseTestPayload = useCallback(
|
|
266
|
-
|
|
267
|
-
let payload: PushyTestPayload;
|
|
268
|
-
try {
|
|
269
|
-
payload = JSON.parse(code);
|
|
270
|
-
} catch {
|
|
271
|
-
return false;
|
|
272
|
-
}
|
|
266
|
+
(payload: PushyTestPayload) => {
|
|
273
267
|
if (payload && payload.type && payload.type.startsWith('__rnPushy')) {
|
|
274
268
|
const logger = options.logger || (() => {});
|
|
275
269
|
options.logger = ({ type, data }) => {
|
|
@@ -294,6 +288,41 @@ export const PushyProvider = ({
|
|
|
294
288
|
[checkUpdate, options],
|
|
295
289
|
);
|
|
296
290
|
|
|
291
|
+
const parseTestQrCode = useCallback(
|
|
292
|
+
(code: string) => {
|
|
293
|
+
let payload: PushyTestPayload;
|
|
294
|
+
try {
|
|
295
|
+
payload = JSON.parse(code);
|
|
296
|
+
return parseTestPayload(payload);
|
|
297
|
+
} catch {
|
|
298
|
+
return false;
|
|
299
|
+
}
|
|
300
|
+
},
|
|
301
|
+
[parseTestPayload],
|
|
302
|
+
);
|
|
303
|
+
|
|
304
|
+
useEffect(() => {
|
|
305
|
+
const parseLinking = (url: string | null) => {
|
|
306
|
+
if (!url) {
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
const params = new URLSearchParams(url);
|
|
310
|
+
const payload = {
|
|
311
|
+
type: params.get('type'),
|
|
312
|
+
data: params.get('data'),
|
|
313
|
+
};
|
|
314
|
+
parseTestPayload(payload);
|
|
315
|
+
};
|
|
316
|
+
|
|
317
|
+
Linking.getInitialURL().then(parseLinking);
|
|
318
|
+
const linkingListener = Linking.addEventListener('url', ({ url }) =>
|
|
319
|
+
parseLinking(url),
|
|
320
|
+
);
|
|
321
|
+
return () => {
|
|
322
|
+
linkingListener.remove();
|
|
323
|
+
};
|
|
324
|
+
}, [parseTestPayload]);
|
|
325
|
+
|
|
297
326
|
return (
|
|
298
327
|
<PushyContext.Provider
|
|
299
328
|
value={{
|
|
@@ -311,7 +340,7 @@ export const PushyProvider = ({
|
|
|
311
340
|
progress,
|
|
312
341
|
downloadAndInstallApk,
|
|
313
342
|
getCurrentVersionInfo,
|
|
314
|
-
|
|
343
|
+
parseTestQrCode,
|
|
315
344
|
}}>
|
|
316
345
|
{children}
|
|
317
346
|
</PushyContext.Provider>
|
package/src/type.ts
CHANGED
|
@@ -62,7 +62,7 @@ export type UpdateEventsLogger = ({
|
|
|
62
62
|
export interface PushyServerConfig {
|
|
63
63
|
main: string;
|
|
64
64
|
backups?: string[];
|
|
65
|
-
|
|
65
|
+
queryUrls?: string[];
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
export interface PushyOptions {
|
|
@@ -83,6 +83,6 @@ export interface PushyOptions {
|
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
export interface PushyTestPayload {
|
|
86
|
-
type: '__rnPushyVersionHash';
|
|
86
|
+
type: '__rnPushyVersionHash' | string | null;
|
|
87
87
|
data: any;
|
|
88
88
|
}
|