UNPKG

2.53 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _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
9exports.default = callFactory;
10
11var _validate = require('./utils/validate');
12
13var _logging = require('./utils/logging');
14
15var _createActions2 = require('./createActions');
16
17var _createActions3 = _interopRequireDefault(_createActions2);
18
19function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
21function 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