UNPKG

1.61 kBJavaScriptView Raw
1"use strict";
2/*
3 * Copyright © 2018 Atomist, Inc.
4 *
5 * See LICENSE file.
6 */
7Object.defineProperty(exports, "__esModule", { value: true });
8/**
9 * Default success result.
10 */
11exports.Success = {
12 code: 0,
13};
14/**
15 * Default success result wrapped in a promise.
16 */
17exports.SuccessPromise = Promise.resolve(exports.Success);
18/**
19 * Default failure result.
20 */
21exports.Failure = {
22 code: 1,
23};
24/**
25 * Default failure result wrapped in a promise.
26 */
27exports.FailurePromise = Promise.resolve(exports.Failure);
28/**
29 * Function that returns a handler failure result.
30 */
31function failure(err) {
32 return { code: 1, message: err.message, stack: err.stack, error: err };
33}
34exports.failure = failure;
35/**
36 * Function that returns a handler success result.
37 */
38function success() {
39 return exports.Success;
40}
41exports.success = success;
42/**
43 * Combine an array of HandlerResults into a single HandlerResult.
44 * Each HandlerResult.code is summed into the final, single value and
45 * messages are concatenated, separated by a semicolon (;). Useful to
46 * combine the return value from calling Promise.all on the array of
47 * events sent to an event handler.
48 *
49 * @param results array of HandlerResults
50 * @return single, combined result
51 */
52function reduceResults(results) {
53 return results.reduce((acc, cur) => {
54 return {
55 code: acc.code + cur.code,
56 message: (cur.message) ? ((acc.message) ? `${acc.message}; ${cur.message}` : cur.message) : acc.message,
57 };
58 }, exports.Success);
59}
60exports.reduceResults = reduceResults;
61//# sourceMappingURL=HandlerResult.js.map
\No newline at end of file