Skip to content

Commit 18fac10

Browse files
committed
release
1 parent 7f8e846 commit 18fac10

File tree

6 files changed

+24
-17
lines changed

6 files changed

+24
-17
lines changed

.travis.yml

-13
This file was deleted.

CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
### 2.6.2
2+
3+
- improve network error detection across browsers [152](https://github.com/i18next/i18next-http-backend/pull/152)
4+
15
### 2.6.1
26

37
- optimize "Failed to fetch" retry case [147](https://github.com/i18next/i18next-http-backend/issues/147)

README.md

-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
[![Actions](https://github.com/i18next/i18next-http-backend/workflows/node/badge.svg)](https://github.com/i18next/i18next-http-backend/actions?query=workflow%3Anode)
44
[![Actions deno](https://github.com/i18next/i18next-http-backend/workflows/deno/badge.svg)](https://github.com/i18next/i18next-http-backend/actions?query=workflow%3Adeno)
5-
[![Travis](https://img.shields.io/travis/i18next/i18next-http-backend/master.svg?style=flat-square)](https://travis-ci.org/i18next/i18next-http-backend)
65
[![npm version](https://img.shields.io/npm/v/i18next-http-backend.svg?style=flat-square)](https://www.npmjs.com/package/i18next-http-backend)
76

87
This is a simple i18next backend to be used in Node.js, in the browser and for Deno. It will load resources from a backend server using the XMLHttpRequest or the fetch API.

i18nextHttpBackend.js

+9-1
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,15 @@ var Backend = function () {
131131
this.options.request(this.options, url, payload, function (err, res) {
132132
if (res && (res.status >= 500 && res.status < 600 || !res.status)) return callback('failed loading ' + url + '; status code: ' + res.status, true);
133133
if (res && res.status >= 400 && res.status < 500) return callback('failed loading ' + url + '; status code: ' + res.status, false);
134-
if (!res && err && err.message && err.message.toLowerCase().indexOf('failed') > -1 && (err.message.indexOf('fetch') > -1 || err.message.toLowerCase().indexOf('network') > -1)) return callback('failed loading ' + url + ': ' + err.message, true);
134+
if (!res && err && err.message) {
135+
var errorMessage = err.message.toLowerCase();
136+
var isNetworkError = ['failed', 'fetch', 'network', 'load'].find(function (term) {
137+
return errorMessage.indexOf(term) > -1;
138+
});
139+
if (isNetworkError) {
140+
return callback('failed loading ' + url + ': ' + err.message, true);
141+
}
142+
}
135143
if (err) return callback(err, false);
136144
var ret, parseErr;
137145
try {

i18nextHttpBackend.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/index.js

+10-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,16 @@ class Backend {
7676
if (res && res.status >= 400 && res.status < 500) return callback('failed loading ' + url + '; status code: ' + res.status, false /* no retry */)
7777
if (!res && err && err.message) {
7878
const errorMessage = err.message.toLowerCase()
79-
const isNetworkError = errorMessage.includes('failed') || errorMessage.includes('fetch') || errorMessage.includes('network') || errorMessage.includes('load')
79+
// for example:
80+
// Chrome: "Failed to fetch"
81+
// Firefox: "NetworkError when attempting to fetch resource."
82+
// Safari: "Load failed"
83+
const isNetworkError = [
84+
'failed',
85+
'fetch',
86+
'network',
87+
'load'
88+
].find((term) => errorMessage.indexOf(term) > -1)
8089
if (isNetworkError) {
8190
return callback('failed loading ' + url + ': ' + err.message, true /* retry */)
8291
}

0 commit comments

Comments
 (0)