UNPKG

glance-dom

Version:
85 lines (62 loc) 1.98 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.negativeIndex = exports.index = undefined; var _log = require('../../utils/log'); var _log2 = _interopRequireDefault(_log); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var index = { filter: { check: function check(_ref) { var option = _ref.option; return option !== null && !isNaN(option) && parseInt(option) > 0; }, filter: function filter(_ref2) { var elements = _ref2.elements, option = _ref2.option; _log2.default.debug('Filtering by index'); if (option !== null && !isNaN(option)) { var position = parseInt(option); _log2.default.debug('Selecting the', position, 'element out of', elements.length); if (position === 0) { throw new Error('Position 0 not supported, must be 1 or greater'); } if (elements.length < position) { throw new Error('Position ' + position + ' out of range'); } var i = position - 1; return [elements[i]]; } return elements; } } }; var negativeIndex = { filter: { check: function check(_ref3) { var option = _ref3.option; return option !== null && !isNaN(option) && parseInt(option) < 0; }, filter: function filter(_ref4) { var elements = _ref4.elements, option = _ref4.option; _log2.default.debug('Filtering by negative index'); if (option !== null && !isNaN(option)) { var position = parseInt(option); _log2.default.debug('Selecting the', position, 'element out of', elements.length); if (position === 0) { throw new Error('Position 0 not supported, must be -1 or lower'); } if (elements.length < Math.abs(position)) { throw new Error('Position ' + position + ' out of range'); } var i = position; return [elements[elements.length + position]]; } return elements; } } }; exports.index = index; exports.negativeIndex = negativeIndex;