chore: eslint prefer-template

This commit is contained in:
Peter Jaszkowiak
2021-02-03 23:59:08 -07:00
committed by Julian Lam
parent 4ee0f1459d
commit 707b55b6a5
357 changed files with 2425 additions and 2427 deletions

View File

@@ -3,7 +3,7 @@
module.exports.create = function (name) {
const cacheCreate = require('../cacheCreate');
return cacheCreate({
name: name + '-object',
name: `${name}-object`,
max: 40000,
length: function () { return 1; },
maxAge: 0,

View File

@@ -10,7 +10,7 @@ if (!databaseName) {
process.exit();
}
const primaryDB = require('./' + databaseName);
const primaryDB = require(`./${databaseName}`);
primaryDB.parseIntFields = function (data, intFields, requestedFields) {
intFields.forEach((field) => {
@@ -25,7 +25,7 @@ primaryDB.initSessionStore = async function () {
let sessionStoreDB = primaryDB;
if (nconf.get('session_store')) {
sessionStoreDB = require('./' + sessionStoreConfig.name);
sessionStoreDB = require(`./${sessionStoreConfig.name}`);
} else if (nconf.get('redis')) {
// if redis is specified, use it as session store over others
sessionStoreDB = require('./redis');

View File

@@ -12,7 +12,7 @@ connection.getConnectionString = function (mongo) {
var usernamePassword = '';
var uri = mongo.uri || '';
if (mongo.username && mongo.password) {
usernamePassword = nconf.get('mongo:username') + ':' + encodeURIComponent(nconf.get('mongo:password')) + '@';
usernamePassword = `${nconf.get('mongo:username')}:${encodeURIComponent(nconf.get('mongo:password'))}@`;
} else if (!uri.includes('@') || !uri.slice(uri.indexOf('://') + 3, uri.indexOf('@'))) {
winston.warn('You have no mongo username/password setup!');
}
@@ -35,10 +35,10 @@ connection.getConnectionString = function (mongo) {
var servers = [];
for (var i = 0; i < hosts.length; i += 1) {
servers.push(hosts[i] + ':' + ports[i]);
servers.push(`${hosts[i]}:${ports[i]}`);
}
return uri || 'mongodb://' + usernamePassword + servers.join() + '/' + mongo.database;
return uri || `mongodb://${usernamePassword}${servers.join()}/${mongo.database}`;
};
connection.getConnectionOptions = function (mongo) {

View File

@@ -60,7 +60,7 @@ helpers.buildMatchQuery = function (match) {
}
_match = utils.escapeRegexChars(_match);
if (!match.startsWith('*')) {
_match = '^' + _match;
_match = `^${_match}`;
}
if (!match.endsWith('*')) {
_match += '$';

View File

@@ -12,7 +12,7 @@ module.exports = function (module) {
return await sortedSetAddBulk(key, score, value);
}
if (!utils.isNumber(score)) {
throw new Error('[[error:invalid-score, ' + score + ']]');
throw new Error(`[[error:invalid-score, ${score}]]`);
}
value = helpers.valueToString(value);
@@ -35,7 +35,7 @@ module.exports = function (module) {
}
for (let i = 0; i < scores.length; i += 1) {
if (!utils.isNumber(scores[i])) {
throw new Error('[[error:invalid-score, ' + scores[i] + ']]');
throw new Error(`[[error:invalid-score, ${scores[i]}]]`);
}
}
values = values.map(helpers.valueToString);
@@ -54,7 +54,7 @@ module.exports = function (module) {
const isArrayOfScores = Array.isArray(scores);
if ((!isArrayOfScores && !utils.isNumber(scores)) ||
(isArrayOfScores && scores.map(s => utils.isNumber(s)).includes(false))) {
throw new Error('[[error:invalid-score, ' + scores + ']]');
throw new Error(`[[error:invalid-score, ${scores}]]`);
}
if (isArrayOfScores && scores.length !== keys.length) {
@@ -77,7 +77,7 @@ module.exports = function (module) {
var bulk = module.client.collection('objects').initializeUnorderedBulkOp();
data.forEach(function (item) {
if (!utils.isNumber(item[1])) {
throw new Error('[[error:invalid-score, ' + item[1] + ']]');
throw new Error(`[[error:invalid-score, ${item[1]}]]`);
}
bulk.find({ _key: item[0], value: String(item[2]) }).upsert().updateOne({ $set: { score: parseFloat(item[1]) } });
});

View File

@@ -164,7 +164,7 @@ module.exports = function (module) {
const aggregate = {};
if (params.aggregate) {
aggregate['$' + params.aggregate.toLowerCase()] = '$score';
aggregate[`$${params.aggregate.toLowerCase()}`] = '$score';
} else {
aggregate.$sum = '$score';
}

View File

@@ -35,7 +35,7 @@ module.exports = function (module) {
var aggregate = {};
if (params.aggregate) {
aggregate['$' + params.aggregate.toLowerCase()] = '$score';
aggregate[`$${params.aggregate.toLowerCase()}`] = '$score';
} else {
aggregate.$sum = '$score';
}

View File

@@ -55,7 +55,7 @@ postgresModule.init = async function () {
try {
await checkUpgrade(client);
} catch (err) {
winston.error('NodeBB could not connect to your PostgreSQL database. PostgreSQL returned the following error: ' + err.message);
winston.error(`NodeBB could not connect to your PostgreSQL database. PostgreSQL returned the following error: ${err.message}`);
throw err;
} finally {
client.release();
@@ -339,7 +339,7 @@ postgresModule.createIndices = function (callback) {
async.apply(query, `CREATE INDEX IF NOT EXISTS "idx__legacy_object__expireAt" ON "legacy_object"("expireAt" ASC)`),
], function (err) {
if (err) {
winston.error('Error creating index ' + err.message);
winston.error(`Error creating index ${err.message}`);
return callback(err);
}
winston.info('[database] Checking database indices done!');

View File

@@ -48,7 +48,7 @@ SELECT "type"
});
if (res.rows[0].type !== type) {
throw new Error('database: cannot insert ' + JSON.stringify(key) + ' as ' + type + ' because it already exists as ' + res.rows[0].type);
throw new Error(`database: cannot insert ${JSON.stringify(key)} as ${type} because it already exists as ${res.rows[0].type}`);
}
};
@@ -84,8 +84,8 @@ SELECT "_key", "type"
var invalid = res.rows.filter(r => r.type !== type);
if (invalid.length) {
const parts = invalid.map(r => JSON.stringify(r._key) + ' is ' + r.type);
throw new Error('database: cannot insert multiple objects as ' + type + ' because they already exist: ' + parts.join(', '));
const parts = invalid.map(r => `${JSON.stringify(r._key)} is ${r.type}`);
throw new Error(`database: cannot insert multiple objects as ${type} because they already exist: ${parts.join(', ')}`);
}
var missing = keys.filter(function (k) {
@@ -93,7 +93,7 @@ SELECT "_key", "type"
});
if (missing.length) {
throw new Error('database: failed to insert keys for objects: ' + JSON.stringify(missing));
throw new Error(`database: failed to insert keys for objects: ${JSON.stringify(missing)}`);
}
};

View File

@@ -45,10 +45,10 @@ module.exports = function (module) {
module.scan = async function (params) {
let match = params.match;
if (match.startsWith('*')) {
match = '%' + match.substring(1);
match = `%${match.substring(1)}`;
}
if (match.endsWith('*')) {
match = match.substring(0, match.length - 1) + '%';
match = `${match.substring(0, match.length - 1)}%`;
}
const res = await module.pool.query({

View File

@@ -59,7 +59,7 @@ module.exports = function (module) {
}
const res = await module.pool.query({
name: 'getSortedSetRangeWithScores' + (sort > 0 ? 'Asc' : 'Desc'),
name: `getSortedSetRangeWithScores${sort > 0 ? 'Asc' : 'Desc'}`,
text: `
SELECT z."value",
z."score"
@@ -68,7 +68,7 @@ SELECT z."value",
ON o."_key" = z."_key"
AND o."type" = z."type"
WHERE o."_key" = ANY($1::TEXT[])
ORDER BY z."score" ` + (sort > 0 ? 'ASC' : 'DESC') + `
ORDER BY z."score" ${sort > 0 ? 'ASC' : 'DESC'}
LIMIT $3::INTEGER
OFFSET $2::INTEGER`,
values: [key, start, limit],
@@ -124,7 +124,7 @@ OFFSET $2::INTEGER`,
}
const res = await module.pool.query({
name: 'getSortedSetRangeByScoreWithScores' + (sort > 0 ? 'Asc' : 'Desc'),
name: `getSortedSetRangeByScoreWithScores${sort > 0 ? 'Asc' : 'Desc'}`,
text: `
SELECT z."value",
z."score"
@@ -135,7 +135,7 @@ SELECT z."value",
WHERE o."_key" = ANY($1::TEXT[])
AND (z."score" >= $4::NUMERIC OR $4::NUMERIC IS NULL)
AND (z."score" <= $5::NUMERIC OR $5::NUMERIC IS NULL)
ORDER BY z."score" ` + (sort > 0 ? 'ASC' : 'DESC') + `
ORDER BY z."score" ${sort > 0 ? 'ASC' : 'DESC'}
LIMIT $3::INTEGER
OFFSET $2::INTEGER`,
values: [key, start, count, min, max],
@@ -248,13 +248,13 @@ SELECT o."_key" k,
async function getSortedSetRank(sort, keys, values) {
values = values.map(helpers.valueToString);
const res = await module.pool.query({
name: 'getSortedSetRank' + sort,
name: `getSortedSetRank${sort}`,
text: `
SELECT (SELECT r
FROM (SELECT z."value" v,
RANK() OVER (PARTITION BY o."_key"
ORDER BY z."score" ` + sort + `,
z."value" ` + sort + `) - 1 r
ORDER BY z."score" ${sort},
z."value" ${sort}) - 1 r
FROM "legacy_object_live" o
INNER JOIN "legacy_zset" z
ON o."_key" = z."_key"
@@ -518,14 +518,14 @@ RETURNING "score" s`,
var q = buildLexQuery(key, min, max);
const res = await module.pool.query({
name: 'sortedSetLexCount' + q.suffix,
name: `sortedSetLexCount${q.suffix}`,
text: `
SELECT COUNT(*) c
FROM "legacy_object_live" o
INNER JOIN "legacy_zset" z
ON o."_key" = z."_key"
AND o."type" = z."type"
WHERE ` + q.where,
WHERE ${q.where}`,
values: q.values,
});
@@ -540,17 +540,17 @@ SELECT COUNT(*) c
q.values.push(start);
q.values.push(count <= 0 ? null : count);
const res = await module.pool.query({
name: 'sortedSetLex' + (sort > 0 ? 'Asc' : 'Desc') + q.suffix,
name: `sortedSetLex${sort > 0 ? 'Asc' : 'Desc'}${q.suffix}`,
text: `
SELECT z."value" v
FROM "legacy_object_live" o
INNER JOIN "legacy_zset" z
ON o."_key" = z."_key"
AND o."type" = z."type"
WHERE ` + q.where + `
ORDER BY z."value" ` + (sort > 0 ? 'ASC' : 'DESC') + `
LIMIT $` + q.values.length + `::INTEGER
OFFSET $` + (q.values.length - 1) + `::INTEGER`,
WHERE ${q.where}
ORDER BY z."value" ${sort > 0 ? 'ASC' : 'DESC'}
LIMIT $${q.values.length}::INTEGER
OFFSET $${q.values.length - 1}::INTEGER`,
values: q.values,
});
@@ -560,13 +560,13 @@ OFFSET $` + (q.values.length - 1) + `::INTEGER`,
module.sortedSetRemoveRangeByLex = async function (key, min, max) {
var q = buildLexQuery(key, min, max);
await module.pool.query({
name: 'sortedSetRemoveRangeByLex' + q.suffix,
name: `sortedSetRemoveRangeByLex${q.suffix}`,
text: `
DELETE FROM "legacy_zset" z
USING "legacy_object_live" o
WHERE o."_key" = z."_key"
AND o."type" = z."type"
AND ` + q.where,
AND ${q.where}`,
values: q.values,
});
};
@@ -582,15 +582,15 @@ DELETE FROM "legacy_zset" z
if (min.match(/^\(/)) {
q.values.push(min.substr(1));
q.suffix += 'GT';
q.where += ` AND z."value" > $` + q.values.length + `::TEXT COLLATE "C"`;
q.where += ` AND z."value" > $${q.values.length}::TEXT COLLATE "C"`;
} else if (min.match(/^\[/)) {
q.values.push(min.substr(1));
q.suffix += 'GE';
q.where += ` AND z."value" >= $` + q.values.length + `::TEXT COLLATE "C"`;
q.where += ` AND z."value" >= $${q.values.length}::TEXT COLLATE "C"`;
} else {
q.values.push(min);
q.suffix += 'GE';
q.where += ` AND z."value" >= $` + q.values.length + `::TEXT COLLATE "C"`;
q.where += ` AND z."value" >= $${q.values.length}::TEXT COLLATE "C"`;
}
}
@@ -598,15 +598,15 @@ DELETE FROM "legacy_zset" z
if (max.match(/^\(/)) {
q.values.push(max.substr(1));
q.suffix += 'LT';
q.where += ` AND z."value" < $` + q.values.length + `::TEXT COLLATE "C"`;
q.where += ` AND z."value" < $${q.values.length}::TEXT COLLATE "C"`;
} else if (max.match(/^\[/)) {
q.values.push(max.substr(1));
q.suffix += 'LE';
q.where += ` AND z."value" <= $` + q.values.length + `::TEXT COLLATE "C"`;
q.where += ` AND z."value" <= $${q.values.length}::TEXT COLLATE "C"`;
} else {
q.values.push(max);
q.suffix += 'LE';
q.where += ` AND z."value" <= $` + q.values.length + `::TEXT COLLATE "C"`;
q.where += ` AND z."value" <= $${q.values.length}::TEXT COLLATE "C"`;
}
}
@@ -616,11 +616,11 @@ DELETE FROM "legacy_zset" z
module.getSortedSetScan = async function (params) {
let match = params.match;
if (match.startsWith('*')) {
match = '%' + match.substring(1);
match = `%${match.substring(1)}`;
}
if (match.endsWith('*')) {
match = match.substring(0, match.length - 1) + '%';
match = `${match.substring(0, match.length - 1)}%`;
}
const res = await module.pool.query({

View File

@@ -13,7 +13,7 @@ module.exports = function (module) {
return await sortedSetAddBulk(key, score, value);
}
if (!utils.isNumber(score)) {
throw new Error('[[error:invalid-score, ' + score + ']]');
throw new Error(`[[error:invalid-score, ${score}]]`);
}
value = helpers.valueToString(value);
score = parseFloat(score);
@@ -41,7 +41,7 @@ module.exports = function (module) {
}
for (let i = 0; i < scores.length; i += 1) {
if (!utils.isNumber(scores[i])) {
throw new Error('[[error:invalid-score, ' + scores[i] + ']]');
throw new Error(`[[error:invalid-score, ${scores[i]}]]`);
}
}
values = values.map(helpers.valueToString);
@@ -71,7 +71,7 @@ DO UPDATE SET "score" = EXCLUDED."score"`,
const isArrayOfScores = Array.isArray(scores);
if ((!isArrayOfScores && !utils.isNumber(scores)) ||
(isArrayOfScores && scores.map(s => utils.isNumber(s)).includes(false))) {
throw new Error('[[error:invalid-score, ' + scores + ']]');
throw new Error(`[[error:invalid-score, ${scores}]]`);
}
if (isArrayOfScores && scores.length !== keys.length) {
@@ -110,7 +110,7 @@ INSERT INTO "legacy_zset" ("_key", "value", "score")
const scores = [];
data.forEach(function (item) {
if (!utils.isNumber(item[1])) {
throw new Error('[[error:invalid-score, ' + item[1] + ']]');
throw new Error(`[[error:invalid-score, ${item[1]}]]`);
}
keys.push(item[0]);
scores.push(item[1]);

View File

@@ -56,10 +56,10 @@ SELECT COUNT(*) c
}
const res = await module.pool.query({
name: 'getSortedSetIntersect' + aggregate + (params.sort > 0 ? 'Asc' : 'Desc') + 'WithScores',
name: `getSortedSetIntersect${aggregate}${params.sort > 0 ? 'Asc' : 'Desc'}WithScores`,
text: `
WITH A AS (SELECT z."value",
` + aggregate + `(z."score" * k."weight") "score",
${aggregate}(z."score" * k."weight") "score",
COUNT(*) c
FROM UNNEST($1::TEXT[], $2::NUMERIC[]) k("_key", "weight")
INNER JOIN "legacy_object_live" o
@@ -72,7 +72,7 @@ SELECT A."value",
A."score"
FROM A
WHERE c = array_length($1::TEXT[], 1)
ORDER BY A."score" ` + (params.sort > 0 ? 'ASC' : 'DESC') + `
ORDER BY A."score" ${params.sort > 0 ? 'ASC' : 'DESC'}
LIMIT $4::INTEGER
OFFSET $3::INTEGER`,
values: [sets, weights, start, limit],

View File

@@ -50,10 +50,10 @@ SELECT COUNT(DISTINCT z."value") c
}
const res = await module.pool.query({
name: 'getSortedSetUnion' + aggregate + (params.sort > 0 ? 'Asc' : 'Desc') + 'WithScores',
name: `getSortedSetUnion${aggregate}${params.sort > 0 ? 'Asc' : 'Desc'}WithScores`,
text: `
WITH A AS (SELECT z."value",
` + aggregate + `(z."score" * k."weight") "score"
${aggregate}(z."score" * k."weight") "score"
FROM UNNEST($1::TEXT[], $2::NUMERIC[]) k("_key", "weight")
INNER JOIN "legacy_object_live" o
ON o."_key" = k."_key"
@@ -64,7 +64,7 @@ WITH A AS (SELECT z."value",
SELECT A."value",
A."score"
FROM A
ORDER BY A."score" ` + (params.sort > 0 ? 'ASC' : 'DESC') + `
ORDER BY A."score" ${params.sort > 0 ? 'ASC' : 'DESC'}
LIMIT $4::INTEGER
OFFSET $3::INTEGER`,
values: [sets, weights, start, limit],

View File

@@ -83,7 +83,7 @@ redisModule.info = async function (cxn) {
}
});
const keyInfo = redisData['db' + nconf.get('redis:database')];
const keyInfo = redisData[`db${nconf.get('redis:database')}`];
if (keyInfo) {
const split = keyInfo.split(',');
redisData.keys = (split[0] || '').replace('keys=', '');
@@ -108,7 +108,7 @@ redisModule.socketAdapter = async function () {
const pub = await connection.connect(nconf.get('redis'));
const sub = await connection.connect(nconf.get('redis'));
return redisAdapter({
key: 'db:' + nconf.get('redis:database') + ':adapter_key',
key: `db:${nconf.get('redis:database')}:adapter_key`,
pubClient: pub,
subClient: sub,
});

View File

@@ -9,7 +9,7 @@ const connection = require('./connection');
let channelName;
const PubSub = function () {
const self = this;
channelName = 'db:' + nconf.get('redis:database') + ':pubsub_channel';
channelName = `db:${nconf.get('redis:database')}:pubsub_channel`;
connection.connect().then(function (client) {
self.subClient = client;

View File

@@ -268,10 +268,10 @@ module.exports = function (module) {
}
if (min !== minmin && !min.match(/^[[(]/)) {
min = '[' + min;
min = `[${min}`;
}
if (max !== maxmax && !max.match(/^[[(]/)) {
max = '[' + max;
max = `[${max}`;
}
const args = [key, min, max];
if (count) {

View File

@@ -12,7 +12,7 @@ module.exports = function (module) {
return await sortedSetAddMulti(key, score, value);
}
if (!utils.isNumber(score)) {
throw new Error('[[error:invalid-score, ' + score + ']]');
throw new Error(`[[error:invalid-score, ${score}]]`);
}
await module.client.async.zadd(key, score, String(value));
};
@@ -27,7 +27,7 @@ module.exports = function (module) {
}
for (let i = 0; i < scores.length; i += 1) {
if (!utils.isNumber(scores[i])) {
throw new Error('[[error:invalid-score, ' + scores[i] + ']]');
throw new Error(`[[error:invalid-score, ${scores[i]}]]`);
}
}
var args = [key];
@@ -44,7 +44,7 @@ module.exports = function (module) {
const isArrayOfScores = Array.isArray(scores);
if ((!isArrayOfScores && !utils.isNumber(scores)) ||
(isArrayOfScores && scores.map(s => utils.isNumber(s)).includes(false))) {
throw new Error('[[error:invalid-score, ' + scores + ']]');
throw new Error(`[[error:invalid-score, ${scores}]]`);
}
if (isArrayOfScores && scores.length !== keys.length) {
@@ -67,7 +67,7 @@ module.exports = function (module) {
var batch = module.client.batch();
data.forEach(function (item) {
if (!utils.isNumber(item[1])) {
throw new Error('[[error:invalid-score, ' + item[1] + ']]');
throw new Error(`[[error:invalid-score, ${item[1]}]]`);
}
batch.zadd(item[0], item[1], item[2]);
});

View File

@@ -7,7 +7,7 @@ module.exports = function (module) {
if (!Array.isArray(keys) || !keys.length) {
return 0;
}
var tempSetName = 'temp_' + Date.now();
var tempSetName = `temp_${Date.now()}`;
var interParams = [tempSetName, keys.length].concat(keys);
@@ -35,7 +35,7 @@ module.exports = function (module) {
var stop = params.hasOwnProperty('stop') ? params.stop : -1;
var weights = params.weights || [];
var tempSetName = 'temp_' + Date.now();
var tempSetName = `temp_${Date.now()}`;
var interParams = [tempSetName, sets.length].concat(sets);
if (weights.length) {

View File

@@ -4,7 +4,7 @@
module.exports = function (module) {
const helpers = require('../helpers');
module.sortedSetUnionCard = async function (keys) {
var tempSetName = 'temp_' + Date.now();
var tempSetName = `temp_${Date.now()}`;
if (!keys.length) {
return 0;
}
@@ -31,7 +31,7 @@ module.exports = function (module) {
return [];
}
var tempSetName = 'temp_' + Date.now();
var tempSetName = `temp_${Date.now()}`;
var rangeParams = [tempSetName, params.start, params.stop];
if (params.withScores) {