visitRuntimeAfter()

in lib/generator.js [2215:2231]


  visitRuntimeAfter(ast, level) {
    const errorName = this.getRealModelName(ERROR);
    this.emit(`} catch (${errorName} $e) {\n`, level + 1);
    const retryContextName = this.getRealModelName(RETRY_CONTEXT);
    this.emit(`$_context = new ${retryContextName}([\n`, level + 2);
    this.emit('\'retriesAttempted\' => $_retriesAttempted,\n', level + 3);
    this.emit('\'lastRequest\' => $_lastRequest,\n', level + 3);
    this.emit('\'lastResponse\' => $_lastResponse,\n', level + 3);
    this.emit('\'exception\' => $e,\n', level + 3);
    this.emit(']);\n', level + 2);
    this.emit('continue;\n', level + 2);
    this.emit('}\n', level + 1);
    this.emit('}\n', level);
    this.emit('\n');
    const unretryErrorName = this.getRealModelName(UNRETRY_ERROR);
    this.emit(`throw new ${unretryErrorName}($_context);\n`, level);
  }