CoolFace
Datasetpublic

basant307/AI_Governance_Project

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes48downloads
iterator.js97 linesDownload Raw Back to obliterator
1/**2 * Obliterator Iterator Class3 * ===========================4 *5 * Simple class representing the library's iterators.6 */7 8/**9 * Iterator class.10 *11 * @constructor12 * @param {function} next - Next function.13 */14function Iterator(next) {15  if (typeof next !== 'function')16    throw new Error('obliterator/iterator: expecting a function!');17 18  this.next = next;19}20 21/**22 * If symbols are supported, we add `next` to `Symbol.iterator`.23 */24if (typeof Symbol !== 'undefined')25  Iterator.prototype[Symbol.iterator] = function () {26    return this;27  };28 29/**30 * Returning an iterator of the given values.31 *32 * @param  {any...} values - Values.33 * @return {Iterator}34 */35Iterator.of = function () {36  var args = arguments,37    l = args.length,38    i = 0;39 40  return new Iterator(function () {41    if (i >= l) return {done: true};42 43    return {done: false, value: args[i++]};44  });45};46 47/**48 * Returning an empty iterator.49 *50 * @return {Iterator}51 */52Iterator.empty = function () {53  var iterator = new Iterator(function () {54    return {done: true};55  });56 57  return iterator;58};59 60/**61 * Returning an iterator over the given indexed sequence.62 *63 * @param  {string|Array} sequence - Target sequence.64 * @return {Iterator}65 */66Iterator.fromSequence = function (sequence) {67  var i = 0,68    l = sequence.length;69 70  return new Iterator(function () {71    if (i >= l) return {done: true};72 73    return {done: false, value: sequence[i++]};74  });75};76 77/**78 * Returning whether the given value is an iterator.79 *80 * @param  {any} value - Value.81 * @return {boolean}82 */83Iterator.is = function (value) {84  if (value instanceof Iterator) return true;85 86  return (87    typeof value === 'object' &&88    value !== null &&89    typeof value.next === 'function'90  );91};92 93/**94 * Exporting.95 */96module.exports = Iterator;97 
basant307/AI_Governance_Project · CoolFace