UNPKG

react-native-offline

Version:

Handy toolbelt to deal with offline mode in React Native applications. Cross-platform, provides a smooth redux integration.

47 lines (43 loc) 1.08 kB
import makeHttpRequest from './makeHttpRequest'; import { DEFAULT_HTTP_METHOD, DEFAULT_PING_SERVER_URL, DEFAULT_TIMEOUT, DEFAULT_CUSTOM_HEADERS, } from './constants'; import { HTTPMethod, AddUndefined, HTTPHeaders } from '../types'; type Arguments = { url: string; timeout: number; method?: HTTPMethod; customHeaders: HTTPHeaders; }; const DEFAULT_ARGUMENTS: Arguments = { timeout: DEFAULT_TIMEOUT, url: DEFAULT_PING_SERVER_URL, method: DEFAULT_HTTP_METHOD, customHeaders: DEFAULT_CUSTOM_HEADERS, }; export default function checkInternetAccess( args?: AddUndefined<Arguments>, ): Promise<boolean> { const { timeout = DEFAULT_TIMEOUT, url = DEFAULT_PING_SERVER_URL, method = DEFAULT_HTTP_METHOD, customHeaders = DEFAULT_CUSTOM_HEADERS, } = args || DEFAULT_ARGUMENTS; return new Promise(async (resolve: (value: boolean) => void) => { try { await makeHttpRequest({ method, url, timeout, customHeaders, }); resolve(true); } catch (e) { resolve(false); } }); }