Cucumber-js: JSON рдлрд╝реЙрд░реНрдореЗрдЯрд░: рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдЕрдкрд╡рд╛рдж рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрдХрдбрд╝реА рдЕрднрд┐рдХрдерди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд▓реЙрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рдХреЛ рдирд┐рд░реНрдорд┐рдд 19 рдЕрдХреНрддреВре░ 2017  ┬╖  12рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: cucumber/cucumber-js

рдирдорд╕реНрддреЗ,

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓рд╛рдЗрди 213 рдкрд░ 'json_formatter.js' рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИ, рдиреАрдЪреЗ рд╕реНрдирд┐рдкреЗрдЯ рджреЗрдЦреЗрдВ:

    if (status === _status2.default.FAILED && exception) {
      data.result.error_message = exception.stack || exception;
    }

рдХрд┐рд╕реА рднреА рдЕрд╕рдлрд▓ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рд▓реЙрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рдЖрдИрдПрдордУ рдпрд╣ рдЕрдкрд╡рд╛рдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрдо рд╕реЗ рдХрдо рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рднреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЪрд╛рд▓реВ/рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред

рдХреНрдпрд╛ рдХреЛрдИ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдмрдЧ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдореИрдВ CucumberJS рдХреЗ рд╕рд╛рде NightwatchJS рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ, рдореЗрд░рд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рд╡рд┐рд╡рд░рдг рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

рдиреЛрдб - v8.7.0
рдЦреАрд░рд╛ - v3.03
рдирд╛рдЗрдЯрд╡реЙрдЪ - v0.9.16
рдирд╛рдЗрдЯрд╡реЙрдЪ рдХрдХрдбрд╝реА - v8.2.2
рдмреНрд░рд╛рдЙрдЬрд╝рд░ - рдХреНрд░реЛрдо v61.0.3163.10
рдХреНрд░реЛрдо рдбреНрд░рд╛рдЗрд╡рд░ - v2.32
рд╕реЗрд▓реЗрдирд┐рдпрдо - v3.5.3
рдУрдПрд╕ - рд╡рд┐рдВрдбреЛрдЬ 7

рдореИрдВрдиреЗ рд▓рд╛рдЗрди 86 рдкрд░ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рддреЗ рд╣реБрдП рдЬреЗрд╕рди рдлреЙрд░реНрдореЗрдЯрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреА рдПрдХ рдкреНрд░рддрд┐ рд╕рдВрд▓рдЧреНрди рдХреА рд╣реИ

рд╕рд╛рджрд░,
рдиреЗрд╡рд┐рд▓ рд╣рдореНрдлреНрд░реА

chrome.cucumber.json.zip

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣рд╛рдп рдлрд┐рдирд░реБрдЗрдУрдирд╛,

рдХрдХрдбрд╝реА/lib/formatter/json_formatter.js рдХреЗ рдЖрдкрдХреЗ рд╕реНрдерд╛рдиреАрдп рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЖрдк рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд▓рд╛рдЗрди 213 рдХреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ:

      let error_message = _lodash.includes(exception.stack, exception.message) ? '' : exception.message + '\n';
      error_message += exception.stack;
      data.result.error_message = error_message || exception;

рдпрджрд┐ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдореИрдВ рдЙрдкрд░реЛрдХреНрдд рд╕реБрдзрд╛рд░ рдХреЗ рд╕рд╛рде рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдХрд░реНрд╖рдг рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рд╕рднреА 12 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреНрдпрд╛ рдЗрд╕ рдмрдЧ рдХреЛ рдХрд┐рд╕реА рдФрд░ рдиреЗ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ?

рдореИрдВ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реВрдВ рдпрд╣ рдПрдХ рдмрдЧ рд╣реИред Json_formatter @ 213 рдореЗрдВ рдХреЛрдб рдХреА рдкрдВрдХреНрддрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:

      data.result.error_message = exception.message + exception.stack;

рдФрд░ рдирд╣реАрдВ

  data.result.error_message = exception.stack || exception;

рдЗрд╕ рддрд░рд╣ рдЖрдкрдХреЛ рджрд╛рд╡рд╛ рддреНрд░реБрдЯрд┐ рдФрд░ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдорд┐рд▓рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рджреЗрдЦреА рд╣реИ, рдХреГрдкрдпрд╛ рдХреЛрдИ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдмрдЧ рд╣реИ?

рдХреНрд░реЛрдо рдФрд░ рдиреЛрдб рдореЗрдВ рдпрд╣ рдореЗрд░рд╛ рдЕрдиреБрднрд╡ рд╣реИ рдХрд┐ Error: <message> рд╕реНрдЯреИрдХ рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рд╣реИред Error: <message> error.toString() рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИред рд╣рдо рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

let msg = exception
if (exception.stack) {
  msg = exception.stack
  if (!_.includes(msg, error.toString()) {
    msg = error.toString() + '\n' + msg
  }
}
data.result.error_message = msg

рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕реНрдЯреИрдХ рдореЗрдВ рд╕рдлрд╛рд░реА рдореЗрдВ рд╕рдВрджреЗрд╢ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдХреНрд░реЛрдо 61 рдФрд░ рдиреЛрдб 8 рдореЗрдВ рд╕реНрдЯреИрдХ рдореЗрдВ рд╕рдВрджреЗрд╢ рджреЗрдЦрддрд╛ рд╣реВрдВред

рдореБрдЭреЗ рдирд╛рдЗрдЯрд╡реЙрдЪ рдХрдХрдбрд╝реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ (рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЕрдХреНрд╕рд░ рдПрдХ рд╕реНрдЯреИрдХ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╣реЛрддрд╛ рд╣реИ)ред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдмрдЧ рд╣реИ

let error_message = _.includes(exception.stack, exception.message) ? '' : exception.message + '\n';
error_message += exception.stack;
data.result.error_message = error_message || exception;

рдпрджрд┐ рдЕрдкрд╡рд╛рдж рд╕рдВрджреЗрд╢ рдХреЛ рд╕реНрдЯреИрдХ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдорд╛рдзрд╛рди рдмрд┐рдирд╛ рджреЛрд╣рд░рд╛рд╡ рдХреЗ рдПрдХ error_message рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛ рдЕрдкрд╡рд╛рдж рд╕рдВрджреЗрд╢ рдкрд╣рд▓реЗ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред

рдирдорд╕реНрддреЗ,

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рддрддреНрд╡ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд╛рд░рдгред
рдЙрддреНрдкрдиреНрди json рд░рд┐рдкреЛрд░реНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, error_message рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рдПрдХ рд╡рд╕реНрддреБ рд╣реИред рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдпрд╣рд╛рдВ рдПрдХрд░реВрдкрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ? рдЗрд╕ рдкрд░ рд▓реЛрдЧреЛрдВ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдЬрд╛рдирдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рд╣реИред

рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рд╣рдо json рд╕реЗ html рд░рд┐рдкреЛрд░реНрдЯ рдЬреЗрдирд░реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рд╕рдордп, рдХрдХрдбрд╝реА-рдПрдЪрдЯреАрдПрдордПрд▓-рд░рд┐рдкреЛрд░реНрдЯрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЗрд╕ error_message рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛрдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рдЬрдм рд╣рдо рдЗрд╕реЗ рдПрдХ рд╡рд╕реНрддреБ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ html рд░рд┐рдкреЛрд░реНрдЯрд░ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЖрдЧреЗ рдЬрд╛рдХрд░, рд╣рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдХрд╛рд░рдг рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдВрддрд░ рдорд┐рд▓рддрд╛ рд╣реИред рдЬрдм рднреА рд╣рдо webdriverio рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рд░рд┐рдкреЛрд░реНрдЯ рдЬрдирд░реЗрд╢рди рдкрд╛рд╕ рд╣реЛ рдЬрд╛рддреА рд╣реИред рд▓реЗрдХрд┐рди webdriverjs-angular рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, report.json рдореЗрдВ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ error_message рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ html рд░рд┐рдкреЛрд░реНрдЯ рдЬрдирд░реЗрдЯ рдХрд░рддреЗ рд╕рдордп рд╡рд┐рдлрд▓рддрд╛ рд╣реЛрдЧреАред

рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдореБрдЭреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реНрдерд╛рди рдкрд░ рдЙрдард╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рдпрд╣ рджреЗрдЦрдирд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдо error_message рдкреНрд░рдХрд╛рд░ рдкрд░ рдПрдХрд░реВрдкрддрд╛ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдзрдиреНрдпрд╡рд╛рдж!

рд╣рд╛рдп рдлрд┐рдирд░реБрдЗрдУрдирд╛,

рдХрдХрдбрд╝реА/lib/formatter/json_formatter.js рдХреЗ рдЖрдкрдХреЗ рд╕реНрдерд╛рдиреАрдп рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЖрдк рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд▓рд╛рдЗрди 213 рдХреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ:

      let error_message = _lodash.includes(exception.stack, exception.message) ? '' : exception.message + '\n';
      error_message += exception.stack;
      data.result.error_message = error_message || exception;

рдпрджрд┐ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдореИрдВ рдЙрдкрд░реЛрдХреНрдд рд╕реБрдзрд╛рд░ рдХреЗ рд╕рд╛рде рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдХрд░реНрд╖рдг рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рд╣рд╛рдп @ рд╣рдореНрдлреНрд░реЗрдпрди

рджрд░рдЕрд╕рд▓, рдЙрдкрд░реЛрдХреНрдд рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рд╕реЗ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред рдореИрдВ рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕реНрдЯреИрдХ рдкрд░ рдПрдХ if рднреА рдЬреЛрдбрд╝реВрдВрдЧрд╛, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдЬреЛрдбрд╝ рд░рд╣рд╛ рдерд╛ред
javascript let error_message = _lodash.includes(exception.stack, exception.message) ? '' : exception.message + '\n'; if (exception.stack) { error_message += exception.stack; } data.result.error_message = error_message || exception;

рдзрдиреНрдпрд╡рд╛рдж!

рдореИрдВрдиреЗ рдпрд╣ рдорд╛рди рд▓рд┐рдпрд╛ рдХрд┐ рдЕрдкрд╡рд╛рдж рд╕рдВрджреЗрд╢ рдФрд░ рд╕реНрдЯреИрдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдПрдХ рд╡рд╕реНрддреБ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдРрд╕рд╛ рд╣рдореЗрд╢рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдЫреЛрдЯреЗ рд╕рдорд╛рдпреЛрдЬрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:

let msg = exception.message || '';
let stack = exception.stack || '';
msg = _.includes(stack, msg) ? '' : (msg + '\n');
data.result.error_message = (msg + stack) || exception;

рдпрджрд┐ рд╕рдВрджреЗрд╢ рдпрд╛ рд╕реНрдЯреИрдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИрдВ рддреЛ рдпрд╣ рдХреЛрдб "рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд" рдХреЛ error_message рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред рдпрджрд┐ рджреЛрдиреЛрдВ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдпрд╛ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИрдВ рддреЛ рдЕрдкрд╡рд╛рдж рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ error_message рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдЧрд░ рд╣рдо рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ error_message рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рд╣рдо JSON.stringify рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

let msg = exception.message || '';
let stack = exception.stack || '';
msg = _.includes(stack, msg) ? '' : (msg + '\n');
data.result.error_message = (msg + stack) || JSON.stringify(exception);

@finaruioana рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╛рдзрд╛рди рдареАрдХ рд░рд╣реЗрдЧрд╛ (рд╕реНрдерд╛рдиреАрдп рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ _lodash рдмрдЬрд╛рдп _ )

let msg = exception.message || '';
let stack = exception.stack || '';
msg = _lodash.includes(stack, msg) ? '' : (msg + '\n');
data.result.error_message = (msg + stack) || exception;

рд╣рд╛рдБ, рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ @innocentivред рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдФрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред

@innocentiv , рдореИрдВ рдпрд╣ рднреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╡реЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреНрд░реЛрдо рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛рдиреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реЗрдЯ рдЕрдк рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕:
рдиреЛрдбрдЬ: v8.9.0
рдХрдХрдбрд╝реАрдЬ: рд╡реА 3.1.0
рдирд╛рдЗрдЯрд╡реЙрдЪ-рдХрдХрдбрд╝реА: v0.9.16
рд╕реЗрд▓реЗрдирд┐рдпрдо-рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди: v3.4.0
рдпрд╛рдиреА рд╡реЗрдмрдбреНрд░рд╛рдЗрд╡рд░: v3.4.0
рдХреНрд░реЛрдо рд╡реЗрдмрдбреНрд░рд╛рдЗрд╡рд░: v2.33
рдЫрд┐рдкрдХрд▓реА (рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕) рд╡реЗрдмрдбреНрд░рд╛рдЗрд╡рд░: v0.19.1

рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рд╕реБрдзрд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВрдЧреЗ?

@humfreyn рдкреБрд▓ рдЕрдиреБрд░реЛрдз: #973

рдореИрдВрдиреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЕрдкрд╡рд╛рдж рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреЛ рдЕрднреА рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

          if (_lodash2.default.isString(exception)) {
            data.result.error_message = exception;
          } else {
            var _exception$message = exception.message,
                message = _exception$message === undefined ? '' : _exception$message,
                _exception$stack = exception.stack,
                stack = _exception$stack === undefined ? '' : _exception$stack;

            message = _lodash2.default.includes(stack, message) ? '' : message + '\n';
            data.result.error_message = message + stack || JSON.stringify(exception);
          }

рдЗрд╕ рдереНрд░реЗрдб рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓реЙрдХ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдХреГрдкрдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд рдмрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

jan-molak picture jan-molak  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

travi picture travi  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Niceplace picture Niceplace  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

zanona picture zanona  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

hdorgeval picture hdorgeval  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ