00001 var LazyWrapper = require('./_LazyWrapper'), 00002 LodashWrapper = require('./_LodashWrapper'), 00003 baseAt = require('./_baseAt'), 00004 flatRest = require('./_flatRest'), 00005 isIndex = require('./_isIndex'), 00006 thru = require('./thru'); 00007 00024 var wrapperAt = flatRest(function(paths) { 00025 var length = paths.length, 00026 start = length ? paths[0] : 0, 00027 value = this.__wrapped__, 00028 interceptor = function(object) { return baseAt(object, paths); }; 00029 00030 if (length > 1 || this.__actions__.length || 00031 !(value instanceof LazyWrapper) || !isIndex(start)) { 00032 return this.thru(interceptor); 00033 } 00034 value = value.slice(start, +start + (length ? 1 : 0)); 00035 value.__actions__.push({ 00036 'func': thru, 00037 'args': [interceptor], 00038 'thisArg': undefined 00039 }); 00040 return new LodashWrapper(value, this.__chain__).thru(function(array) { 00041 if (length && !array.length) { 00042 array.push(undefined); 00043 } 00044 return array; 00045 }); 00046 }); 00047 00048 module.exports = wrapperAt;