32 lines
894 B
JavaScript
32 lines
894 B
JavaScript
'use strict';
|
|
|
|
function MapConfigAdapter (adapters) {
|
|
this.adapters = Array.isArray(adapters) ? adapters : Array.apply(null, arguments);
|
|
}
|
|
|
|
module.exports = MapConfigAdapter;
|
|
|
|
MapConfigAdapter.prototype.getMapConfig = function (user, requestMapConfig, params, context, callback) {
|
|
var self = this;
|
|
var i = 0;
|
|
var tasksLeft = this.adapters.length;
|
|
|
|
let mapConfigStats = {};
|
|
|
|
function next (err, _requestMapConfig, adapterStats = {}) {
|
|
if (err) {
|
|
return callback(err);
|
|
}
|
|
|
|
mapConfigStats = Object.assign(mapConfigStats, adapterStats);
|
|
|
|
if (tasksLeft-- === 0) {
|
|
return callback(null, _requestMapConfig, mapConfigStats);
|
|
}
|
|
var nextAdapter = self.adapters[i++];
|
|
nextAdapter.getMapConfig(user, _requestMapConfig, params, context, next);
|
|
}
|
|
|
|
next(null, requestMapConfig, mapConfigStats);
|
|
};
|