@os-team/i18next-express-middleware
Advanced tools
Comparing version 1.0.3 to 1.0.4
@@ -1,4 +0,42 @@ | ||
export { default as i18nextMiddleware } from './utils/i18nextMiddleware'; | ||
export { default as LanguageDetector } from './utils/LanguageDetector'; | ||
export * from './utils/types'; | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
var _exportNames = { | ||
i18nextMiddleware: true, | ||
LanguageDetector: true | ||
}; | ||
Object.defineProperty(exports, "i18nextMiddleware", { | ||
enumerable: true, | ||
get: function get() { | ||
return _i18nextMiddleware.default; | ||
} | ||
}); | ||
Object.defineProperty(exports, "LanguageDetector", { | ||
enumerable: true, | ||
get: function get() { | ||
return _LanguageDetector.default; | ||
} | ||
}); | ||
var _i18nextMiddleware = _interopRequireDefault(require("./utils/i18nextMiddleware")); | ||
var _LanguageDetector = _interopRequireDefault(require("./utils/LanguageDetector")); | ||
var _types = require("./utils/types"); | ||
Object.keys(_types).forEach(function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; | ||
if (key in exports && exports[key] === _types[key]) return; | ||
Object.defineProperty(exports, key, { | ||
enumerable: true, | ||
get: function get() { | ||
return _types[key]; | ||
} | ||
}); | ||
}); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
//# sourceMappingURL=index.js.map |
@@ -1,9 +0,16 @@ | ||
const cookieDetector = { | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.default = void 0; | ||
var cookieDetector = { | ||
name: 'cookie', | ||
detect: (req, options) => { | ||
const cookieKey = options && options.cookie ? options.cookie : 'i18next'; | ||
var cookieKey = options && options.cookie ? options.cookie : 'i18next'; | ||
return req.cookies ? req.cookies[cookieKey] : undefined; | ||
} | ||
}; | ||
export default cookieDetector; | ||
var _default = cookieDetector; | ||
exports.default = _default; | ||
//# sourceMappingURL=cookieDetector.js.map |
@@ -1,6 +0,12 @@ | ||
const headerDetector = { | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.default = void 0; | ||
var headerDetector = { | ||
name: 'header', | ||
detect: (req, options) => { | ||
const headerKey = options && options.header ? options.header : 'Accept-Language'; | ||
const headerValue = req.get(headerKey); // E.g. fr-CH, en;q=0.8, fr;q=0.9 | ||
var headerKey = options && options.header ? options.header : 'Accept-Language'; | ||
var headerValue = req.get(headerKey); // E.g. fr-CH, en;q=0.8, fr;q=0.9 | ||
@@ -10,4 +16,4 @@ if (!headerValue) return undefined; | ||
.map(item => { | ||
const parts = item.split(';'); | ||
const q = parts[1] ? Number(parts[1].replace('q=', '')) : undefined; | ||
var parts = item.split(';'); | ||
var q = parts[1] ? Number(parts[1].replace('q=', '')) : undefined; | ||
return [parts[0], q || 1]; | ||
@@ -19,3 +25,4 @@ }) // E.g. [["fr-CH", 1], ["en", 0.8], ["fr", 0.9]] | ||
}; | ||
export default headerDetector; | ||
var _default = headerDetector; | ||
exports.default = _default; | ||
//# sourceMappingURL=headerDetector.js.map |
@@ -1,2 +0,9 @@ | ||
const getFallbackLng = value => { | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.default = void 0; | ||
var getFallbackLng = value => { | ||
if (typeof value === 'string') return value; | ||
@@ -8,3 +15,4 @@ if (Array.isArray(value)) return value[0]; | ||
export default getFallbackLng; | ||
var _default = getFallbackLng; | ||
exports.default = _default; | ||
//# sourceMappingURL=getFallbackLng.js.map |
@@ -1,26 +0,46 @@ | ||
import getFallbackLng from './getFallbackLng'; | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.default = void 0; | ||
var _getFallbackLng = _interopRequireDefault(require("./getFallbackLng")); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } | ||
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } | ||
/* eslint-disable consistent-return */ | ||
const i18nextMiddleware = i18next => async (req, _, next) => { | ||
// Clone the i18next instance | ||
const clonedI18next = i18next.cloneInstance({ | ||
initImmediate: false | ||
}); // Detect the language | ||
var i18nextMiddleware = i18next => /*#__PURE__*/function () { | ||
var _ref = _asyncToGenerator(function* (req, _, next) { | ||
// Clone the i18next instance | ||
var clonedI18next = i18next.cloneInstance({ | ||
initImmediate: false | ||
}); // Detect the language | ||
const { | ||
languageDetector | ||
} = i18next.services; | ||
const detectedLanguage = languageDetector ? languageDetector.detect(req) : undefined; | ||
const lng = detectedLanguage || getFallbackLng(i18next.options.fallbackLng); // Change the language | ||
var { | ||
languageDetector | ||
} = i18next.services; | ||
var detectedLanguage = languageDetector ? languageDetector.detect(req) : undefined; | ||
var lng = detectedLanguage || (0, _getFallbackLng.default)(i18next.options.fallbackLng); // Change the language | ||
if (clonedI18next.language !== lng) await clonedI18next.changeLanguage(lng); // Pass language and the t function to req | ||
if (clonedI18next.language !== lng) yield clonedI18next.changeLanguage(lng); // Pass language and the t function to req | ||
req.language = lng; | ||
req.t = clonedI18next.t.bind(clonedI18next); // Load the language if necessary | ||
req.language = lng; | ||
req.t = clonedI18next.t.bind(clonedI18next); // Load the language if necessary | ||
if (lng) return next(); | ||
await i18next.loadLanguages(lng, next); | ||
}; | ||
if (lng) return next(); | ||
yield i18next.loadLanguages(lng, next); | ||
}); | ||
export default i18nextMiddleware; | ||
return function (_x, _x2, _x3) { | ||
return _ref.apply(this, arguments); | ||
}; | ||
}(); | ||
var _default = i18nextMiddleware; | ||
exports.default = _default; | ||
//# sourceMappingURL=i18nextMiddleware.js.map |
@@ -1,4 +0,14 @@ | ||
import headerDetector from './detectors/headerDetector'; | ||
import cookieDetector from './detectors/cookieDetector'; | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.default = void 0; | ||
var _headerDetector = _interopRequireDefault(require("./detectors/headerDetector")); | ||
var _cookieDetector = _interopRequireDefault(require("./detectors/cookieDetector")); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
/* eslint-disable no-restricted-syntax,no-continue */ | ||
@@ -20,4 +30,4 @@ class LanguageDetector { | ||
this.detectorOptions = detectorOptions; | ||
this.addDetector(headerDetector); | ||
this.addDetector(cookieDetector); | ||
this.addDetector(_headerDetector.default); | ||
this.addDetector(_cookieDetector.default); | ||
} | ||
@@ -27,11 +37,11 @@ | ||
if (!req || !this.services) return undefined; | ||
const { | ||
var { | ||
languageUtils | ||
} = this.services; | ||
const order = this.detectorOptions && this.detectorOptions.order && this.detectorOptions.order.length > 0 ? this.detectorOptions.order : ['header']; | ||
var order = this.detectorOptions && this.detectorOptions.order && this.detectorOptions.order.length > 0 ? this.detectorOptions.order : ['header']; | ||
for (const detectorName of order) { | ||
const detector = this.detectorsMap[detectorName]; | ||
for (var detectorName of order) { | ||
var detector = this.detectorsMap[detectorName]; | ||
if (!detector) continue; | ||
let detectedLanguages = detector.detect(req, this.detectorOptions); | ||
var detectedLanguages = detector.detect(req, this.detectorOptions); | ||
if (!detectedLanguages) continue; | ||
@@ -43,4 +53,4 @@ | ||
for (const lng of detectedLanguages) { | ||
const formattedLanguage = languageUtils.formatLanguageCode(lng); | ||
for (var lng of detectedLanguages) { | ||
var formattedLanguage = languageUtils.formatLanguageCode(lng); | ||
@@ -59,3 +69,4 @@ if (languageUtils.isWhitelisted(formattedLanguage)) { | ||
LanguageDetector.type = 'languageDetector'; | ||
export default LanguageDetector; | ||
var _default = LanguageDetector; | ||
exports.default = _default; | ||
//# sourceMappingURL=LanguageDetector.js.map |
@@ -1,2 +0,2 @@ | ||
"use strict"; | ||
//# sourceMappingURL=types.js.map |
{ | ||
"name": "@os-team/i18next-express-middleware", | ||
"version": "1.0.3", | ||
"version": "1.0.4", | ||
"license": "MIT", | ||
@@ -40,3 +40,3 @@ "repository": "git@gitlab.com:os-team/libs/utils.git", | ||
}, | ||
"gitHead": "07e4b2ac448f33eb1ab9f2a19e9f8896fdf7356c" | ||
"gitHead": "13c1eb95a749a3eff99931c905b7436388091b34" | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
47933
456
0