UNPKG

glance-selector

Version:
58 lines (44 loc) 1.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _arrayUtils = require("../utils/array-utils"); var _log = require("../log"); var _log2 = _interopRequireDefault(_log); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = { filter: { useDefaultFiltersIfFirst: true, apply: function apply(_ref) { var elements = _ref.elements, target = _ref.target; var resultHandler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (err, result) { return result; }; _log2.default.debug("Filtering by index"); var attributes = target.properties.filter(function (p) { return !isNaN(p); }); if (attributes.length > 0) { return (0, _arrayUtils.reduce)(attributes, [], function (result, attribute, callback) { var position = attribute; _log2.default.debug("Selecting the", position, "element out of", elements.length); if (position == null) { return callback(null, result.concat(elements)); } if (position <= 0) { console.log("Positions start at 1"); return callback("Positions start at 1", result.concat([])); } if (elements.length < position) { console.log("Position " + position + " out of range"); return callback("Position " + position + " out of range", result.concat([])); } var i = position - 1; return callback(null, result.concat(elements[i])); }, resultHandler); } return resultHandler(null, elements); } } };