@homecheck/logger
Version:
A simple logger for Web, Node, Capacitor apps.
41 lines (40 loc) • 1.34 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.isOnline = isOnline;
exports.checkServerReachable = checkServerReachable;
function isOnline() {
try {
// 브라우저 환경에서는 navigator.onLine 사용
if (typeof navigator !== 'undefined' && 'onLine' in navigator)
return navigator.onLine;
// Node.js 환경에서는 항상 온라인으로 간주
return true;
}
catch (error) {
return true; // 기본적으로 온라인으로 간주
}
}
async function checkServerReachable(url) {
try {
// 서버 연결 가능 여부 확인
const controller = new AbortController();
const timeoutId = setTimeout(() => controller.abort(), 5000); // 5초 타임아웃
const response = await fetch(url, {
method: 'HEAD',
signal: controller.signal,
// 캐시 방지
cache: 'no-store',
headers: {
'Cache-Control': 'no-cache'
}
});
clearTimeout(timeoutId);
return response.ok;
}
catch (error) {
if (!(error instanceof DOMException && error.name === 'AbortError')) {
console.error(`[Logger] Failed to check server reachability: ${error}`);
}
return false;
}
}
;