feat: add internet connectivity check

This commit is contained in:
thecodrr
2020-05-27 10:04:21 +05:00
parent 90fb248e73
commit c301d220a4
3 changed files with 23 additions and 0 deletions

View File

@@ -1,4 +1,5 @@
import { HOST, HEADERS } from "../utils/constants";
import noInternet from "no-internet";
export default class User {
/**
@@ -14,6 +15,7 @@ export default class User {
var user = await this.get();
if (!user) return;
user = await authRequest.call(this, "users", undefined, true, true);
if (!user) return;
delete user.lastSynced;
await this.set(user);
}
@@ -55,6 +57,7 @@ export default class User {
password,
grant_type: "password",
});
if (!response) return;
const key = await this._context.deriveKey(password, response.payload.salt);
let user = userFromResponse(response, key);
await this._context.write("user", user);
@@ -73,6 +76,7 @@ export default class User {
refresh_token: user.refreshToken,
grant_type: "refresh_token",
});
if (!response) return;
user = {
...user,
@@ -94,6 +98,7 @@ export default class User {
password,
email,
});
if (!response) return;
const key = await this._context.deriveKey(password, response.payload.salt);
let user = userFromResponse(response, key);
await this._context.write("user", user);
@@ -113,6 +118,11 @@ function userFromResponse(response, key) {
}
async function authRequest(endpoint, data, auth = false, get = false) {
const offline = await noInternet({
url: HOST,
});
if (offline) return;
var headers = {};
if (auth) {
const token = await this.token();

View File

@@ -22,6 +22,7 @@
"dependencies": {
"fast-sort": "^2.0.1",
"fuzzysearch": "^1.0.3",
"no-internet": "^1.5.2",
"qclone": "^1.0.4",
"transfun": "^1.0.2"
}

View File

@@ -3690,6 +3690,13 @@ nice-try@^1.0.4:
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
no-internet@^1.5.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/no-internet/-/no-internet-1.5.2.tgz#a51e8c314fd4d005c8239eda7e6c4aad7c0cadfb"
integrity sha512-4GnJQsc/BCwcOG+8acwAsm9bYVdgh0V5ORQTAnB+7u9hoKdR4WqSqw6Bhjo3DO/tvhad4wbrw4l07/CG6C+wDg==
dependencies:
set-interval "^2.0.1"
node-fetch@2.6.0:
version "2.6.0"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd"
@@ -4365,6 +4372,11 @@ set-blocking@^2.0.0:
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
set-interval@^2.0.1:
version "2.0.4"
resolved "https://registry.yarnpkg.com/set-interval/-/set-interval-2.0.4.tgz#419266c0a2b05d5fd5bde6e7896b57a27d060a5a"
integrity sha512-Srlnjq2O84WQxv2DkTyf7S0nRebiNE+uD5nd2Iy4ISOtiZbxglSfup88vegIAYRpCn/ITS1rYmjCPuAhn/hdmg==
set-value@^2.0.0, set-value@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"