55 lines
1.8 KiB
JavaScript
Executable File
55 lines
1.8 KiB
JavaScript
Executable File
'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;
|