diff options
Diffstat (limited to 'node_modules/lodash/_getView.js')
| -rw-r--r-- | node_modules/lodash/_getView.js | 33 | 
1 files changed, 33 insertions, 0 deletions
diff --git a/node_modules/lodash/_getView.js b/node_modules/lodash/_getView.js new file mode 100644 index 0000000..df1e5d4 --- /dev/null +++ b/node_modules/lodash/_getView.js @@ -0,0 +1,33 @@ +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max, +    nativeMin = Math.min; + +/** + * Gets the view, applying any `transforms` to the `start` and `end` positions. + * + * @private + * @param {number} start The start of the view. + * @param {number} end The end of the view. + * @param {Array} transforms The transformations to apply to the view. + * @returns {Object} Returns an object containing the `start` and `end` + *  positions of the view. + */ +function getView(start, end, transforms) { +  var index = -1, +      length = transforms.length; + +  while (++index < length) { +    var data = transforms[index], +        size = data.size; + +    switch (data.type) { +      case 'drop':      start += size; break; +      case 'dropRight': end -= size; break; +      case 'take':      end = nativeMin(end, start + size); break; +      case 'takeRight': start = nativeMax(start, end - size); break; +    } +  } +  return { 'start': start, 'end': end }; +} + +module.exports = getView;  | 
