UNPKG

xstate

Version:

Finite State Machines and Statecharts for the Modern Web.

55 lines (46 loc) 1.79 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _tslib = require('./_virtual/_tslib.js'); var actions = require('./actions.js'); var Machine = require('./Machine.js'); var utils = require('./utils.js'); function createModel(initialContext, creators) { var eventCreators = creators === null || creators === void 0 ? void 0 : creators.events; var actionCreators = creators === null || creators === void 0 ? void 0 : creators.actions; var model = { initialContext: initialContext, assign: actions.assign, events: eventCreators ? utils.mapValues(eventCreators, function (fn, eventType) { return function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } return _tslib.__assign(_tslib.__assign({}, fn.apply(void 0, _tslib.__spreadArray([], _tslib.__read(args), false))), { type: eventType }); }; }) : undefined, actions: actionCreators ? utils.mapValues(actionCreators, function (fn, actionType) { return function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } return _tslib.__assign(_tslib.__assign({}, fn.apply(void 0, _tslib.__spreadArray([], _tslib.__read(args), false))), { type: actionType }); }; }) : undefined, reset: function () { return actions.assign(initialContext); }, createMachine: function (config, implementations) { return Machine.createMachine('context' in config ? config : _tslib.__assign(_tslib.__assign({}, config), { context: initialContext }), implementations); } }; return model; } exports.createModel = createModel;