UNPKG

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