1 | import { __assign, __spreadArray, __read } from './_virtual/_tslib.js';
|
2 | import { assign } from './actions.js';
|
3 | import { createMachine } from './Machine.js';
|
4 | import { mapValues } from './utils.js';
|
5 |
|
6 | function 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 |
|
50 | export { createModel };
|