artdaq_node_server  v1_00_07
 All Classes Namespaces Files Variables Pages
wrapperAt.js
1 var LazyWrapper = require('./_LazyWrapper'),
2  LodashWrapper = require('./_LodashWrapper'),
3  baseAt = require('./_baseAt'),
4  flatRest = require('./_flatRest'),
5  isIndex = require('./_isIndex'),
6  thru = require('./thru');
7 
24 var wrapperAt = flatRest(function(paths) {
25  var length = paths.length,
26  start = length ? paths[0] : 0,
27  value = this.__wrapped__,
28  interceptor = function(object) { return baseAt(object, paths); };
29 
30  if (length > 1 || this.__actions__.length ||
31  !(value instanceof LazyWrapper) || !isIndex(start)) {
32  return this.thru(interceptor);
33  }
34  value = value.slice(start, +start + (length ? 1 : 0));
35  value.__actions__.push({
36  'func': thru,
37  'args': [interceptor],
38  'thisArg': undefined
39  });
40  return new LodashWrapper(value, this.__chain__).thru(function(array) {
41  if (length && !array.length) {
42  array.push(undefined);
43  }
44  return array;
45  });
46 });
47 
48 module.exports = wrapperAt;