00001
00002 var nativeMax = Math.max,
00003 nativeMin = Math.min;
00004
00015 function getView(start, end, transforms) {
00016 var index = -1,
00017 length = transforms.length;
00018
00019 while (++index < length) {
00020 var data = transforms[index],
00021 size = data.size;
00022
00023 switch (data.type) {
00024 case 'drop': start += size; break;
00025 case 'dropRight': end -= size; break;
00026 case 'take': end = nativeMin(end, start + size); break;
00027 case 'takeRight': start = nativeMax(start, end - size); break;
00028 }
00029 }
00030 return { 'start': start, 'end': end };
00031 }
00032
00033 module.exports = getView;