"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var each_1 = require("./each");
function map(list, iterator, _a) {
    var _b = _a === void 0 ? { concurrency: null } : _a, context = _b.context, concurrency = _b.concurrency;
    var results = [];
    return each_1.each.call(this, list, function (value, i) {
        var result = iterator.call(context, value, i, list);
        results.push(result);
        return result;
    }, { concurrency: concurrency })
        .then(function () { return Promise.all(results); });
}
exports.map = map;
