diff --git a/src/android.ts b/src/android.ts
index e0502a5..c891f06 100644
--- a/src/android.ts
+++ b/src/android.ts
@@ -16,10 +16,16 @@ export const getAndroidVersion = async (storeURL = '') => {
});
const matches = response.match(/\[\[\[['"]((\d+\.)+\d+)['"]\]\],/);
+ const releaseNotes = response.match(
+ /
(.*?)<\/div>/gm
+ )?.[0];
- if (!matches) {
+ if (!matches && !releaseNotes) {
throw new Error("can't get android app version.");
}
- return matches[1];
+ return {
+ version: matches?.[1] ?? '',
+ releaseNotes: releaseNotes ?? '',
+ };
};
diff --git a/src/index.ts b/src/index.ts
index 6d3fb61..dc93c96 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -16,8 +16,17 @@ type CheckVersionResponse = {
remote: string;
result: 'new' | 'old' | 'equal';
detail: 'remote > local' | 'remote < local' | 'remote === local';
+ releaseNotes: string;
+
+ packageSize?: number;
};
+interface StoreFetchResponse {
+ version: string;
+ releaseNotes: string;
+ packageSize?: number;
+}
+
export const compareVersion = (
local: string,
remote: string
@@ -49,10 +58,10 @@ const checkVersion = async (
}
/* get version */
- let remoteVersion: string;
+ let dataStore: StoreFetchResponse;
try {
- remoteVersion =
+ dataStore =
Platform.OS === 'ios'
? await getIOSVersion(params.iosStoreURL, params.country || 'jp')
: await getAndroidVersion(params.androidStoreURL);
@@ -64,7 +73,7 @@ const checkVersion = async (
throw new Error(`can't get ${Platform.OS} version`);
}
- const result = compareVersion(params.version, remoteVersion);
+ const result = compareVersion(params.version, dataStore.version);
let detail: CheckVersionResponse['detail'];
switch (result) {
case 'new':
@@ -81,9 +90,11 @@ const checkVersion = async (
/* compare version */
return {
local: params.version,
- remote: remoteVersion,
+ remote: dataStore.version,
result,
detail,
+ releaseNotes: dataStore.releaseNotes,
+ packageSize: dataStore.packageSize,
};
};
diff --git a/src/ios.ts b/src/ios.ts
index c7e4440..e3743ce 100644
--- a/src/ios.ts
+++ b/src/ios.ts
@@ -18,9 +18,15 @@ export const getIOSVersion = async (storeURL = '', country = 'jp') => {
.then((r) => r.text())
.then((r) => JSON.parse(r));
- if (!response || !response.results || response.results.length === 0) {
+ if (!response?.results || response.results.length === 0) {
throw new Error(`appID(${appID[1]}) is not released.`);
}
- return response.results[0].version as string;
+ return {
+ version: response.results[0].version as string,
+ releaseNotes: response.results[0].releaseNotes as string,
+
+ /**kb */
+ packageSize: response.results[0].fileSizeBytes,
+ };
};