File Explorer

/proc/thread-self/root/var/runtime/node_modules/@aws-sdk/node_modules/obliterator

This explorer reads the filesystem of the server it runs on, so /workspace/user isn't present here. Browsing and the terminal still work against this server's own disk from /.

foreach.js3.5 KB · 157 lines
/** * Obliterator ForEach Function * ============================= * * Helper function used to easily iterate over mixed values. */ /** * Constants. */var ARRAY_BUFFER_SUPPORT = typeof ArrayBuffer !== 'undefined',    SYMBOL_SUPPORT = typeof Symbol !== 'undefined'; /** * Function able to iterate over almost any iterable JS value. * * @param  {any}      iterable - Iterable value. * @param  {function} callback - Callback function. */function forEach(iterable, callback) {  var iterator, k, i, l, s;   if (!iterable)    throw new Error('obliterator/forEach: invalid iterable.');   if (typeof callback !== 'function')    throw new Error('obliterator/forEach: expecting a callback.');   // The target is an array or a string or function arguments  if (    Array.isArray(iterable) ||    (ARRAY_BUFFER_SUPPORT && ArrayBuffer.isView(iterable)) ||    typeof iterable === 'string' ||    iterable.toString() === '[object Arguments]'  ) {    for (i = 0, l = iterable.length; i < l; i++)      callback(iterable[i], i);    return;  }   // The target has a #.forEach method  if (typeof iterable.forEach === 'function') {    iterable.forEach(callback);    return;  }   // The target is iterable  if (    SYMBOL_SUPPORT &&    Symbol.iterator in iterable &&    typeof iterable.next !== 'function'  ) {    iterable = iterable[Symbol.iterator]();  }   // The target is an iterator  if (typeof iterable.next === 'function') {    iterator = iterable;    i = 0;     while ((s = iterator.next(), s.done !== true)) {      callback(s.value, i);      i++;    }     return;  }   // The target is a plain object  for (k in iterable) {    if (iterable.hasOwnProperty(k)) {      callback(iterable[k], k);    }  }   return;} /** * Same function as the above `forEach` but will yield `null` when the target * does not have keys. * * @param  {any}      iterable - Iterable value. * @param  {function} callback - Callback function. */forEach.forEachWithNullKeys = function(iterable, callback) {  var iterator, k, i, l, s;   if (!iterable)    throw new Error('obliterator/forEachWithNullKeys: invalid iterable.');   if (typeof callback !== 'function')    throw new Error('obliterator/forEachWithNullKeys: expecting a callback.');   // The target is an array or a string or function arguments  if (    Array.isArray(iterable) ||    (ARRAY_BUFFER_SUPPORT && ArrayBuffer.isView(iterable)) ||    typeof iterable === 'string' ||    iterable.toString() === '[object Arguments]'  ) {    for (i = 0, l = iterable.length; i < l; i++)      callback(iterable[i], null);    return;  }   // The target is a Set  if (iterable instanceof Set) {    iterable.forEach(function(value) {      callback(value, null);    });    return;  }   // The target has a #.forEach method  if (typeof iterable.forEach === 'function') {    iterable.forEach(callback);    return;  }   // The target is iterable  if (    SYMBOL_SUPPORT &&    Symbol.iterator in iterable &&    typeof iterable.next !== 'function'  ) {    iterable = iterable[Symbol.iterator]();  }   // The target is an iterator  if (typeof iterable.next === 'function') {    iterator = iterable;    i = 0;     while ((s = iterator.next(), s.done !== true)) {      callback(s.value, null);      i++;    }     return;  }   // The target is a plain object  for (k in iterable) {    if (iterable.hasOwnProperty(k)) {      callback(iterable[k], k);    }  }   return;}; /** * Exporting. */module.exports = forEach;