UNPKG

i18next-http-middleware

Version:

i18next-http-middleware is a middleware to be used with Node.js web frameworks like express or Fastify and also for Deno.

141 lines (140 loc) 6.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setUrl = exports.setStatus = exports.setHeader = exports.setContentType = exports.send = exports.getUrl = exports.getSession = exports.getQuery = exports.getPath = exports.getParams = exports.getOriginalUrl = exports.getHeaders = exports.getHeader = exports.getCookies = exports.getBody = exports.extendOptionsWithDefaults = void 0; var getPath = exports.getPath = function getPath(req) { if (req.path) return req.path; if (req.raw && req.raw.path) return req.raw.path; if (req.url) return req.url; console.log('no possibility found to get path'); }; var getUrl = exports.getUrl = function getUrl(req) { if (req.url && req.url.href) return req.url.href; if (req.url) return req.url; if (req.raw && req.raw.url) return req.raw.url; console.log('no possibility found to get url'); }; var setUrl = exports.setUrl = function setUrl(req, url) { if (req.url) { req.url = url; return; } console.log('no possibility found to get url'); }; var getOriginalUrl = exports.getOriginalUrl = function getOriginalUrl(req) { if (req.originalUrl) return req.originalUrl; if (req.raw && req.raw.originalUrl) return req.raw.originalUrl; return getUrl(req); }; var getQuery = exports.getQuery = function getQuery(req) { if (req.query && typeof req.query.entries === 'function' && typeof Object.fromEntries === 'function' && typeof req.query[Symbol.iterator] === 'function') { return Object.fromEntries(req.query); } if (req.query) return req.query; if (req.searchParams) return req.searchParams; if (req.raw && req.raw.query) return req.raw.query; if (req.ctx && req.ctx.queryParams) return req.ctx.queryParams; if (req.url && req.url.searchParams) return req.url.searchParams; var url = req.url || req.raw && req.raw.url; if (url && url.indexOf('?') < 0) return {}; console.log('no possibility found to get query'); return {}; }; var getParams = exports.getParams = function getParams(req) { if (req.params) return req.params; if (req.raw && req.raw.params) return req.raw.params; if (req.ctx && req.ctx.params) return req.ctx.params; console.log('no possibility found to get params'); return {}; }; var getHeaders = exports.getHeaders = function getHeaders(req) { if (req.headers) return req.headers; console.log('no possibility found to get headers'); }; var getCookies = exports.getCookies = function getCookies(req) { if (req.cookies) return req.cookies; if (getHeaders(req)) { var list = {}; var rc = getHeaders(req).cookie; rc && rc.split(';').forEach(function (cookie) { var parts = cookie.split('='); list[parts.shift().trim()] = decodeURI(encodeURI(parts.join('='))); }); return list; } console.log('no possibility found to get cookies'); }; var getBody = exports.getBody = function getBody(req) { if (req.ctx && typeof req.ctx.body === 'function') { return req.ctx.body.bind(req.ctx); } if (req.ctx && req.ctx.body) return req.ctx.body; if (req.json) return req.json; if (req.body) return req.body; if (req.payload) return req.payload; if (req.request && req.request.body) return req.request.body; console.log('no possibility found to get body'); return {}; }; var getHeader = exports.getHeader = function getHeader(res, name) { if (res.getHeader) return res.getHeader(name); if (res.headers) return res.headers[name]; if (getHeaders(res) && getHeaders(res)[name]) return getHeaders(res)[name]; console.log('no possibility found to get header'); return undefined; }; var setHeader = exports.setHeader = function setHeader(res, name, value) { if (res._headerSent || res.headersSent) return; if (typeof res.setHeader === 'function') return res.setHeader(name, value); if (typeof res.header === 'function') return res.header(name, value); if (res.responseHeaders && typeof res.responseHeaders.set === 'function') { return res.responseHeaders.set(name, value); } if (res.headers && typeof res.headers.set === 'function') { return res.headers.set(name, value); } if (typeof res.set === 'function') { return res.set(name, value); } console.log('no possibility found to set header'); }; var setContentType = exports.setContentType = function setContentType(res, type) { if (typeof res.contentType === 'function') return res.contentType(type); if (typeof res.type === 'function') return res.type(type); setHeader(res, 'Content-Type', type); }; var setStatus = exports.setStatus = function setStatus(res, code) { if (typeof res.status === 'function') return res.status(code); if (res.status) return res.status = code; console.log('no possibility found to set status'); }; var send = exports.send = function send(res, body) { if (typeof res.send === 'function') return res.send(body); if (res.request && res.response && res.app) res.body = body; return body; }; var getSession = exports.getSession = function getSession(req) { if (req.session) return req.session; if (req.raw && req.raw.session) return req.raw.session; console.log('no possibility found to get session'); }; var extendOptionsWithDefaults = exports.extendOptionsWithDefaults = function extendOptionsWithDefaults() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; options.getPath = options.getPath || getPath; options.getOriginalUrl = options.getOriginalUrl || getOriginalUrl; options.getUrl = options.getUrl || getUrl; options.setUrl = options.setUrl || setUrl; options.getParams = options.getParams || getParams; options.getSession = options.getSession || getSession; options.getQuery = options.getQuery || getQuery; options.getCookies = options.getCookies || getCookies; options.getBody = options.getBody || getBody; options.getHeaders = options.getHeaders || getHeaders; options.getHeader = options.getHeader || getHeader; options.setHeader = options.setHeader || setHeader; options.setContentType = options.setContentType || setContentType; options.setStatus = options.setStatus || setStatus; options.send = options.send || send; return options; };