You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-01 16:46:54 +03:00
Standard is not as up to date and still uses a old eslint version. Instead, use the airbnb default with a couple of modifications. All required changes are included.
28 lines
941 B
JavaScript
28 lines
941 B
JavaScript
'use strict'
|
|
|
|
const Errors = require('redis-errors')
|
|
const debug = require('./debug')
|
|
const utils = require('./utils')
|
|
|
|
function offlineCommand(client, command) {
|
|
const commandName = command.command.toUpperCase()
|
|
if (client._closing || client._options.enableOfflineQueue === false) {
|
|
const msg = client._closing === true
|
|
? 'The connection is already closed.'
|
|
: client._stream.writable === true
|
|
? 'The connection is not yet established and the offline queue is deactivated.'
|
|
: 'Stream not writeable.'
|
|
const err = new Errors.AbortError(`${commandName} can't be processed. ${msg}`)
|
|
err.code = 'NR_CLOSED'
|
|
err.command = commandName
|
|
err.args = command.args
|
|
utils.replyInOrder(client, command.callback, err)
|
|
} else {
|
|
debug('Queueing %s for next server connection.', commandName)
|
|
client.offlineQueue.push(command)
|
|
}
|
|
client.shouldBuffer = true
|
|
}
|
|
|
|
module.exports = offlineCommand
|