performance improvements (#8795)

* perf: nconf/winston/render

cache nconf.get calls
modify middleware.pageView to call next earlier
don't call winston.verbose on every hook see https://github.com/winstonjs/winston/issues/1669
translate header/footer separately and cache results for guests

* fix: copy paste fail

* refactor: style and fire hook only log in dev mode

* fix: cache key, header changes based on template

* perf: change replace

* fix: add missing await

* perf: category

* perf: lodash clone

* perf: remove escapeRegexChars
This commit is contained in:
Barış Soner Uşaklı
2020-10-26 10:43:18 -04:00
committed by GitHub
parent 822c13f199
commit a05905f196
34 changed files with 230 additions and 193 deletions

View File

@@ -15,11 +15,17 @@ const languages = require('../languages');
const apiController = module.exports;
const relative_path = nconf.get('relative_path');
const upload_url = nconf.get('upload_url');
const socketioTransports = nconf.get('socket.io:transports') || ['polling', 'websocket'];
const socketioOrigins = nconf.get('socket.io:origins');
const websocketAddress = nconf.get('socket.io:address') || '';
apiController.loadConfig = async function (req) {
let config = {
relative_path: nconf.get('relative_path'),
upload_url: nconf.get('upload_url'),
assetBaseUrl: `${nconf.get('relative_path')}/assets`,
relative_path,
upload_url,
assetBaseUrl: `${relative_path}/assets`,
siteTitle: validator.escape(String(meta.config.title || meta.config.browserTitle || 'NodeBB')),
browserTitle: validator.escape(String(meta.config.browserTitle || meta.config.title || 'NodeBB')),
titleLayout: (meta.config.titleLayout || '{pageTitle} | {browserTitle}').replace(/{/g, '{').replace(/}/g, '}'),
@@ -40,9 +46,9 @@ apiController.loadConfig = async function (req) {
disableChat: meta.config.disableChat === 1,
disableChatMessageEditing: meta.config.disableChatMessageEditing === 1,
maximumChatMessageLength: meta.config.maximumChatMessageLength || 1000,
socketioTransports: nconf.get('socket.io:transports') || ['polling', 'websocket'],
socketioOrigins: nconf.get('socket.io:origins'),
websocketAddress: nconf.get('socket.io:address') || '',
socketioTransports,
socketioOrigins,
websocketAddress,
maxReconnectionAttempts: meta.config.maxReconnectionAttempts || 5,
reconnectionDelay: meta.config.reconnectionDelay || 1500,
topicsPerPage: meta.config.topicsPerPage || 20,