export function createSequence()

in fuse-ui-shared/decorators/retry.ts [56:94]


export function createSequence(type: SequenceType): Sequence<number> {
  switch (type) {
    case 'constant':
      return { next: () => 1 };
    case 'exponential': {
      let prev = 0;

      return {
        next: () => {
          const result = Math.pow(2, prev);
          prev++;

          return result;
        }
      };
    }
    case 'linear': {
      let prev = 0;

      return { next: () => ++prev };
    }
    case 'fibonacci': {
      let prev = 0;
      let cur = 1;

      return {
        next: () => {
          const result = prev + cur;
          prev = cur;
          cur = result;

          return result;
        }
      };
    }
    default:
      throw new Error(`unknown sequence type ${type}`);
  }
}