elementAt.js
900 Bytes
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var ArgumentOutOfRangeError_1 = require("../util/ArgumentOutOfRangeError");
var filter_1 = require("./filter");
var throwIfEmpty_1 = require("./throwIfEmpty");
var defaultIfEmpty_1 = require("./defaultIfEmpty");
var take_1 = require("./take");
function elementAt(index, defaultValue) {
if (index < 0) {
throw new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError();
}
var hasDefaultValue = arguments.length >= 2;
return function (source) { return source.pipe(filter_1.filter(function (v, i) { return i === index; }), take_1.take(1), hasDefaultValue
? defaultIfEmpty_1.defaultIfEmpty(defaultValue)
: throwIfEmpty_1.throwIfEmpty(function () { return new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError(); })); };
}
exports.elementAt = elementAt;
//# sourceMappingURL=elementAt.js.map