1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.default = handlerFactory;
|
7 |
|
8 | var _createActions = require('./createActions');
|
9 |
|
10 | var _createActions2 = _interopRequireDefault(_createActions);
|
11 |
|
12 | var _logging = require('./utils/logging');
|
13 |
|
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
15 |
|
16 | function handlerFactory(action) {
|
17 | var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
18 | _ref$namespace = _ref.namespace,
|
19 | namespace = _ref$namespace === undefined ? 'global' : _ref$namespace,
|
20 | _ref$logger = _ref.logger,
|
21 | logger = _ref$logger === undefined ? (0, _logging.createLogger)(action.id || action) : _ref$logger;
|
22 |
|
23 | var name = action.id || action;
|
24 | action = typeof action === 'string' ? (0, _createActions2.default)(namespace, action)[action] : action;
|
25 | return {
|
26 | create: function create(createDefinition) {
|
27 | var definition = {
|
28 | name: name,
|
29 | action: action,
|
30 | namespace: namespace,
|
31 | logger: logger
|
32 | };
|
33 | if (typeof createDefinition === 'function') {
|
34 | return Object.assign(definition, createDefinition({ namespace: namespace, logger: logger }));
|
35 | } else {
|
36 | return Object.assign(definition, createDefinition);
|
37 | }
|
38 | }
|
39 | };
|
40 | } |
\ | No newline at end of file |