1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 |
|
7 | var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
8 |
|
9 | exports.default = callFactory;
|
10 |
|
11 | var _validate = require('./utils/validate');
|
12 |
|
13 | var _logging = require('./utils/logging');
|
14 |
|
15 | var _createActions2 = require('./createActions');
|
16 |
|
17 | var _createActions3 = _interopRequireDefault(_createActions2);
|
18 |
|
19 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
20 |
|
21 | function callFactory(name) {
|
22 | var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
23 | _ref$namespace = _ref.namespace,
|
24 | namespace = _ref$namespace === undefined ? 'global' : _ref$namespace,
|
25 | _ref$defaultActions = _ref.defaultActions,
|
26 | defaultActions = _ref$defaultActions === undefined ? ['loading', 'error', 'success'] : _ref$defaultActions,
|
27 | _ref$actions = _ref.actions,
|
28 | actions = _ref$actions === undefined ? (0, _createActions3.default)(namespace + ':' + name, defaultActions) : _ref$actions,
|
29 | _ref$logger = _ref.logger,
|
30 | logger = _ref$logger === undefined ? (0, _logging.createLogger)(namespace + ':' + name) : _ref$logger;
|
31 |
|
32 | var errors = (0, _validate.validateCreator)({ name: name, actions: actions, logger: logger }, logger);
|
33 | var errorKeys = errors && Object.keys(errors);
|
34 | if (errorKeys && errorKeys.length) {
|
35 | throw new Error(errors[errorKeys[0]]);
|
36 | }
|
37 |
|
38 | return {
|
39 | name: name,
|
40 | actions: actions,
|
41 |
|
42 | create: function create(definition) {
|
43 | var createDefinition = typeof definition === 'function' ? definition : function () {
|
44 | return definition;
|
45 | };
|
46 | var call = Object.assign(createDefinition({ name: name, actions: actions, logger: logger }), {
|
47 | name: name,
|
48 | actions: actions,
|
49 | logger: logger
|
50 | });
|
51 | if ((0, _validate.validateDefinition)(call, logger)) {
|
52 | throw new Error('Invalid call');
|
53 | }
|
54 | call.dataSource = _extends({}, call.actions || {}, call.dataSource || {});
|
55 | return call;
|
56 | },
|
57 | createActions: function createActions(actionNames) {
|
58 | return (0, _createActions3.default)(namespace + ':' + name, actionNames);
|
59 | }
|
60 | };
|
61 | } |
\ | No newline at end of file |