From 01e7b864b84ea87a2d5a0fc762a68b3fff617823 Mon Sep 17 00:00:00 2001 From: barisusakli <barisusakli@gmail.com> Date: Thu, 3 Nov 2016 23:24:36 +0300 Subject: [PATCH] change batch.js style --- src/batch.js | 200 +++++++++++++++++++++++++-------------------------- 1 file changed, 98 insertions(+), 102 deletions(-) diff --git a/src/batch.js b/src/batch.js index 202a600017..19595df07e 100644 --- a/src/batch.js +++ b/src/batch.js @@ -2,113 +2,109 @@ 'use strict'; -var async = require('async'), - db = require('./database'), - utils = require('../public/src/utils'); - -(function (Batch) { - - var DEFAULT_BATCH_SIZE = 100; - - Batch.processSortedSet = function (setKey, process, options, callback) { - if (typeof options === 'function') { - callback = options; - options = {}; - } - - callback = typeof callback === 'function' ? callback : function () {}; - options = options || {}; - - if (typeof process !== 'function') { - return callback(new Error('[[error:process-not-a-function]]')); - } - - // use the fast path if possible - if (db.processSortedSet && typeof options.doneIf !== 'function' && !utils.isNumber(options.alwaysStartAt)) { - return db.processSortedSet(setKey, process, options.batch || DEFAULT_BATCH_SIZE, callback); - } - - // custom done condition - options.doneIf = typeof options.doneIf === 'function' ? options.doneIf : function () {}; - - var batch = options.batch || DEFAULT_BATCH_SIZE; - var start = 0; - var stop = batch; - var done = false; - - async.whilst( - function () { - return !done; - }, - function (next) { - db.getSortedSetRange(setKey, start, stop, function (err, ids) { - if (err) { - return next(err); - } - if (!ids.length || options.doneIf(start, stop, ids)) { - done = true; - return next(); - } - process(ids, function (err) { - if (err) { - return next(err); - } - start += utils.isNumber(options.alwaysStartAt) ? options.alwaysStartAt : batch + 1; - stop = start + batch; - next(); - }); - }); - }, - callback - ); - }; - - Batch.processArray = function (array, process, options, callback) { - if (typeof options === 'function') { - callback = options; - options = {}; - } - - callback = typeof callback === 'function' ? callback : function () {}; - options = options || {}; - - if (!Array.isArray(array) || !array.length) { - return callback(); - } - if (typeof process !== 'function') { - return callback(new Error('[[error:process-not-a-function]]')); - } - - var batch = options.batch || DEFAULT_BATCH_SIZE; - var start = 0; - var done = false; - - async.whilst( - function () { - return !done; - }, - function (next) { - var currentBatch = array.slice(start, start + batch); - if (!currentBatch.length) { +var async = require('async'); +var db = require('./database'); +var utils = require('../public/src/utils'); + +var DEFAULT_BATCH_SIZE = 100; + +exports.processSortedSet = function (setKey, process, options, callback) { + if (typeof options === 'function') { + callback = options; + options = {}; + } + + callback = typeof callback === 'function' ? callback : function () {}; + options = options || {}; + + if (typeof process !== 'function') { + return callback(new Error('[[error:process-not-a-function]]')); + } + + // use the fast path if possible + if (db.processSortedSet && typeof options.doneIf !== 'function' && !utils.isNumber(options.alwaysStartAt)) { + return db.processSortedSet(setKey, process, options.batch || DEFAULT_BATCH_SIZE, callback); + } + + // custom done condition + options.doneIf = typeof options.doneIf === 'function' ? options.doneIf : function () {}; + + var batch = options.batch || DEFAULT_BATCH_SIZE; + var start = 0; + var stop = batch; + var done = false; + + async.whilst( + function () { + return !done; + }, + function (next) { + db.getSortedSetRange(setKey, start, stop, function (err, ids) { + if (err) { + return next(err); + } + if (!ids.length || options.doneIf(start, stop, ids)) { done = true; return next(); } - process(currentBatch, function (err) { + process(ids, function (err) { if (err) { return next(err); } - start = start + batch; - if (options.interval) { - setTimeout(next, options.interval); - } else { - next(); - } + start += utils.isNumber(options.alwaysStartAt) ? options.alwaysStartAt : batch + 1; + stop = start + batch; + next(); }); - }, - function (err) { - callback(err); + }); + }, + callback + ); +}; + +exports.processArray = function (array, process, options, callback) { + if (typeof options === 'function') { + callback = options; + options = {}; + } + + callback = typeof callback === 'function' ? callback : function () {}; + options = options || {}; + + if (!Array.isArray(array) || !array.length) { + return callback(); + } + if (typeof process !== 'function') { + return callback(new Error('[[error:process-not-a-function]]')); + } + + var batch = options.batch || DEFAULT_BATCH_SIZE; + var start = 0; + var done = false; + + async.whilst( + function () { + return !done; + }, + function (next) { + var currentBatch = array.slice(start, start + batch); + if (!currentBatch.length) { + done = true; + return next(); } - ); - }; - -}(exports)); + process(currentBatch, function (err) { + if (err) { + return next(err); + } + start = start + batch; + if (options.interval) { + setTimeout(next, options.interval); + } else { + next(); + } + }); + }, + function (err) { + callback(err); + } + ); +};