All files / src/emulator/plugins HistoryKeyboardPlugin.js

100% Statements 12/12
100% Branches 2/2
100% Functions 6/6
100% Lines 12/12

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 421x     6x 6x 6x                   14x 14x         18x   18x       7x   7x         25x 8x            
import BoundedHistoryIterator from 'emulator/plugins/BoundedHistoryIterator';
 
export default class HistoryKeyboardPlugin {
  constructor(state) {
    this._nullableHistoryIterator = null;
    this.historyStack = state.getHistory();
  }
 
  // Plugin contract
  onExecuteStarted(state, str) {
    // no-op
  }
 
  // Plugin contract
  onExecuteCompleted(state) {
    this._nullableHistoryIterator = null;
    this.historyStack = state.getHistory();
  }
 
  // Plugin API
  completeUp() {
    this.createHistoryIteratorIfNull();
 
    return this._nullableHistoryIterator.up();
  }
 
  completeDown() {
    this.createHistoryIteratorIfNull();
 
    return this._nullableHistoryIterator.down();
  }
 
  // Private methods
  createHistoryIteratorIfNull() {
    if (!this._nullableHistoryIterator) {
      this._nullableHistoryIterator = new BoundedHistoryIterator(
        this.historyStack
      );
    }
  }
}