@atomist/automation-client
Version:
Atomist API for software low-level client
61 lines • 1.61 kB
JavaScript
;
/*
* Copyright © 2018 Atomist, Inc.
*
* See LICENSE file.
*/
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Default success result.
*/
exports.Success = {
code: 0,
};
/**
* Default success result wrapped in a promise.
*/
exports.SuccessPromise = Promise.resolve(exports.Success);
/**
* Default failure result.
*/
exports.Failure = {
code: 1,
};
/**
* Default failure result wrapped in a promise.
*/
exports.FailurePromise = Promise.resolve(exports.Failure);
/**
* Function that returns a handler failure result.
*/
function failure(err) {
return { code: 1, message: err.message, stack: err.stack, error: err };
}
exports.failure = failure;
/**
* Function that returns a handler success result.
*/
function success() {
return exports.Success;
}
exports.success = success;
/**
* Combine an array of HandlerResults into a single HandlerResult.
* Each HandlerResult.code is summed into the final, single value and
* messages are concatenated, separated by a semicolon (;). Useful to
* combine the return value from calling Promise.all on the array of
* events sent to an event handler.
*
* @param results array of HandlerResults
* @return single, combined result
*/
function reduceResults(results) {
return results.reduce((acc, cur) => {
return {
code: acc.code + cur.code,
message: (cur.message) ? ((acc.message) ? `${acc.message}; ${cur.message}` : cur.message) : acc.message,
};
}, exports.Success);
}
exports.reduceResults = reduceResults;
//# sourceMappingURL=HandlerResult.js.map