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
JavaScript
"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;
};