18 lines
900 B
JavaScript
18 lines
900 B
JavaScript
|
"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
|