summaryrefslogtreecommitdiff
path: root/src/client/app/common/scripts/check-for-update.ts
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-03-29 20:32:18 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-03-29 20:32:18 +0900
commitcf33e483f7e6f40e8cbbbc0118a7df70bdaf651f (patch)
tree318279530d3392ee40d91968477fc0e78d5cf0f7 /src/client/app/common/scripts/check-for-update.ts
parentUpdate .travis.yml (diff)
downloadsharkey-cf33e483f7e6f40e8cbbbc0118a7df70bdaf651f.tar.gz
sharkey-cf33e483f7e6f40e8cbbbc0118a7df70bdaf651f.tar.bz2
sharkey-cf33e483f7e6f40e8cbbbc0118a7df70bdaf651f.zip
整理した
Diffstat (limited to 'src/client/app/common/scripts/check-for-update.ts')
-rw-r--r--src/client/app/common/scripts/check-for-update.ts33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/client/app/common/scripts/check-for-update.ts b/src/client/app/common/scripts/check-for-update.ts
new file mode 100644
index 0000000000..81c1eb9812
--- /dev/null
+++ b/src/client/app/common/scripts/check-for-update.ts
@@ -0,0 +1,33 @@
+import MiOS from '../mios';
+import { version as current } from '../../config';
+
+export default async function(mios: MiOS, force = false, silent = false) {
+ const meta = await mios.getMeta(force);
+ const newer = meta.version;
+
+ if (newer != current) {
+ localStorage.setItem('should-refresh', 'true');
+ localStorage.setItem('v', newer);
+
+ // Clear cache (serive worker)
+ try {
+ if (navigator.serviceWorker.controller) {
+ navigator.serviceWorker.controller.postMessage('clear');
+ }
+
+ navigator.serviceWorker.getRegistrations().then(registrations => {
+ registrations.forEach(registration => registration.unregister());
+ });
+ } catch (e) {
+ console.error(e);
+ }
+
+ if (!silent) {
+ alert('%i18n:common.update-available%'.replace('{newer}', newer).replace('{current}', current));
+ }
+
+ return newer;
+ } else {
+ return null;
+ }
+}