BVB Source Codes

reactide Show reporter.js Source code

Return Download reactide: download reporter.js Source code - Download reactide Source code - Type:.js
  1. var inherits = require('inherits');
  2.  
  3. function Reporter(options) {
  4.   this._reporterState = {
  5.     obj: null,
  6.     path: [],
  7.     options: options || {},
  8.     errors: []
  9.   };
  10. }
  11. exports.Reporter = Reporter;
  12.  
  13. Reporter.prototype.isError = function isError(obj) {
  14.   return obj instanceof ReporterError;
  15. };
  16.  
  17. Reporter.prototype.save = function save() {
  18.   var state = this._reporterState;
  19.  
  20.   return { obj: state.obj, pathLen: state.path.length };
  21. };
  22.  
  23. Reporter.prototype.restore = function restore(data) {
  24.   var state = this._reporterState;
  25.  
  26.   state.obj = data.obj;
  27.   state.path = state.path.slice(0, data.pathLen);
  28. };
  29.  
  30. Reporter.prototype.enterKey = function enterKey(key) {
  31.   return this._reporterState.path.push(key);
  32. };
  33.  
  34. Reporter.prototype.exitKey = function exitKey(index) {
  35.   var state = this._reporterState;
  36.  
  37.   state.path = state.path.slice(0, index - 1);
  38. };
  39.  
  40. Reporter.prototype.leaveKey = function leaveKey(index, key, value) {
  41.   var state = this._reporterState;
  42.  
  43.   this.exitKey(index);
  44.   if (state.obj !== null)
  45.     state.obj[key] = value;
  46. };
  47.  
  48. Reporter.prototype.path = function path() {
  49.   return this._reporterState.path.join('/');
  50. };
  51.  
  52. Reporter.prototype.enterObject = function enterObject() {
  53.   var state = this._reporterState;
  54.  
  55.   var prev = state.obj;
  56.   state.obj = {};
  57.   return prev;
  58. };
  59.  
  60. Reporter.prototype.leaveObject = function leaveObject(prev) {
  61.   var state = this._reporterState;
  62.  
  63.   var now = state.obj;
  64.   state.obj = prev;
  65.   return now;
  66. };
  67.  
  68. Reporter.prototype.error = function error(msg) {
  69.   var err;
  70.   var state = this._reporterState;
  71.  
  72.   var inherited = msg instanceof ReporterError;
  73.   if (inherited) {
  74.     err = msg;
  75.   } else {
  76.     err = new ReporterError(state.path.map(function(elem) {
  77.       return '[' + JSON.stringify(elem) + ']';
  78.     }).join(''), msg.message || msg, msg.stack);
  79.   }
  80.  
  81.   if (!state.options.partial)
  82.     throw err;
  83.  
  84.   if (!inherited)
  85.     state.errors.push(err);
  86.  
  87.   return err;
  88. };
  89.  
  90. Reporter.prototype.wrapResult = function wrapResult(result) {
  91.   var state = this._reporterState;
  92.   if (!state.options.partial)
  93.     return result;
  94.  
  95.   return {
  96.     result: this.isError(result) ? null : result,
  97.     errors: state.errors
  98.   };
  99. };
  100.  
  101. function ReporterError(path, msg) {
  102.   this.path = path;
  103.   this.rethrow(msg);
  104. };
  105. inherits(ReporterError, Error);
  106.  
  107. ReporterError.prototype.rethrow = function rethrow(msg) {
  108.   this.message = msg + ' at: ' + (this.path || '(shallow)');
  109.   if (Error.captureStackTrace)
  110.     Error.captureStackTrace(this, ReporterError);
  111.  
  112.   if (!this.stack) {
  113.     try {
  114.       // IE only adds stack when thrown
  115.       throw new Error(this.message);
  116.     } catch (e) {
  117.       this.stack = e.stack;
  118.     }
  119.   }
  120.   return this;
  121. };
  122.  
downloadreporter.js Source code - Download reactide Source code
Related Source Codes/Software:
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
postal - 2017-06-11
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top