model.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var _tslib = require('./_virtual/_tslib.js');
  4. var actions = require('./actions.js');
  5. var Machine = require('./Machine.js');
  6. var utils = require('./utils.js');
  7. function createModel(initialContext, creators) {
  8. var eventCreators = creators === null || creators === void 0 ? void 0 : creators.events;
  9. var actionCreators = creators === null || creators === void 0 ? void 0 : creators.actions;
  10. var model = {
  11. initialContext: initialContext,
  12. assign: actions.assign,
  13. events: eventCreators ? utils.mapValues(eventCreators, function (fn, eventType) {
  14. return function () {
  15. var args = [];
  16. for (var _i = 0; _i < arguments.length; _i++) {
  17. args[_i] = arguments[_i];
  18. }
  19. return _tslib.__assign(_tslib.__assign({}, fn.apply(void 0, _tslib.__spreadArray([], _tslib.__read(args), false))), {
  20. type: eventType
  21. });
  22. };
  23. }) : undefined,
  24. actions: actionCreators ? utils.mapValues(actionCreators, function (fn, actionType) {
  25. return function () {
  26. var args = [];
  27. for (var _i = 0; _i < arguments.length; _i++) {
  28. args[_i] = arguments[_i];
  29. }
  30. return _tslib.__assign(_tslib.__assign({}, fn.apply(void 0, _tslib.__spreadArray([], _tslib.__read(args), false))), {
  31. type: actionType
  32. });
  33. };
  34. }) : undefined,
  35. reset: function () {
  36. return actions.assign(initialContext);
  37. },
  38. createMachine: function (config, implementations) {
  39. return Machine.createMachine('context' in config ? config : _tslib.__assign(_tslib.__assign({}, config), {
  40. context: initialContext
  41. }), implementations);
  42. }
  43. };
  44. return model;
  45. }
  46. exports.createModel = createModel;