xstate
Version:
Finite State Machines and Statecharts for the Modern Web.
55 lines (46 loc) • 1.79 kB
JavaScript
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;
;