summaryrefslogtreecommitdiffstats
path: root/devtools/client/shared/redux/middleware/log.js
blob: 4ea09491ca1c7170c2c965d877c5675086e1ebbc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";

/**
 * A middleware that logs all actions coming through the system
 * to the console.
 */
function log({ dispatch, getState }) {
  return next => action => {
    try {
      // Only print the action type, rather than printing the whole object
      console.log("[DISPATCH] action type:", action.type);
      /*
       * USE WITH CAUTION!! This will output everything from an action object,
       * and these can be quite large. Printing out large objects will slow
       * down tests and cause test failures
       *
       * console.log("[DISPATCH]", JSON.stringify(action, null, 2));
       */
    } catch (e) {
      // this occurs if JSON.stringify throws.
      console.warn(e);
      console.log("[DISPATCH]", action);
    }
    next(action);
  };
}

exports.log = log;