Skip to content

Latest commit

 

History

History
33 lines (26 loc) · 1.43 KB

PLUGIN-ERRORS.md

File metadata and controls

33 lines (26 loc) · 1.43 KB

Custom Error Detection

By default, simple-git will determine that a git task has resulted in an error when the process exit code is anything other than 0 and there has been some data sent to the stdErr stream. Error handlers will be passed the content of both stdOut and stdErr concatenated together.

To change any of this behaviour, configure the simple-git with the errors plugin with a function to be called after every task has been run and should return either undefined when the task is treated as a success, or a Buffer or Error when the task should be treated as a failure.

When the default error handler (or any other plugin) has thrown an error, the first argument to the error detection plugin is the original error. Either return that error directly to allow it to bubble up to the task's error handlers, or implement your own error detection as below:

import simpleGit from 'simple-git';

const git = simpleGit({
   errors(error, result) {
      // optionally pass through any errors reported before this plugin runs
      if (error) return error;

      // customise the `errorCode` values to treat as success
      if (result.errorCode === 0) {
         return;
      }

      // the default error messages include both stdOut and stdErr, but that
      // can be changed here, or completely replaced with some other content
      return Buffer.concat([...result.stdOut, ...result.stdErr]);
   }
})