react-elmish 2.2.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -27,3 +27,6 @@ export interface ErrorMessage {
27
27
  name: "error";
28
28
  error: Error;
29
29
  }
30
+ export declare const errorMsg: {
31
+ error: (error: Error) => ErrorMessage;
32
+ };
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.handleError = void 0;
6
+ exports.handleError = exports.errorMsg = void 0;
7
7
 
8
8
  var _Init = require("./Init");
9
9
 
@@ -23,4 +23,13 @@ var handleError = function handleError(error) {
23
23
  };
24
24
 
25
25
  exports.handleError = handleError;
26
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9FbG1VdGlsaXRpZXMudHMiXSwibmFtZXMiOlsiaGFuZGxlRXJyb3IiLCJlcnJvciIsImVycm9yTWlkZGxld2FyZSIsIkxvZ2dlclNlcnZpY2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxJQUFNQSxXQUFXLEdBQUcsU0FBZEEsV0FBYyxDQUFlQyxLQUFmLEVBQWdFO0FBQ3ZGLE1BQUlDLHFCQUFKLEVBQXFCO0FBQ2pCLCtCQUFnQkQsS0FBaEI7QUFDSDs7QUFDREUsZ0dBQWVGLEtBQWYsQ0FBcUJBLEtBQXJCO0FBRUEsU0FBTyxDQUFDLEVBQUQsQ0FBUDtBQUNILENBUE0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlcnJvck1pZGRsZXdhcmUsIExvZ2dlclNlcnZpY2UgfSBmcm9tIFwiLi9Jbml0XCI7XG5pbXBvcnQgeyBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4vRWxtQ29tcG9uZW50XCI7XG5cbi8qKlxuICogSGFuZGxlcyBhbiBlcnJvci5cbiAqIExvZ3MgdGhlIGVycm9yIGlmIGEgTG9nZ2VyIHdhcyBzcGVjaWZpZWQuXG4gKiBDYWxscyB0aGUgZXJyb3IgaGFuZGxpbmcgbWlkZGxld2FyZSBpZiBzcGVjaWZpZWQuXG4gKiBAcGFyYW0ge0Vycm9yfSBlcnJvciBUaGUgZXJyb3IuXG4gKi9cbmV4cG9ydCBjb25zdCBoYW5kbGVFcnJvciA9IDxUTW9kZWwsIFRNc2c+KGVycm9yOiBFcnJvcik6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTXNnPiA9PiB7XG4gICAgaWYgKGVycm9yTWlkZGxld2FyZSkge1xuICAgICAgICBlcnJvck1pZGRsZXdhcmUoZXJyb3IpO1xuICAgIH1cbiAgICBMb2dnZXJTZXJ2aWNlPy5lcnJvcihlcnJvcik7XG5cbiAgICByZXR1cm4gW3t9XTtcbn07XG5cbmV4cG9ydCB0eXBlIE51bGxhYmxlPFQ+ID0gVCB8IG51bGw7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZUJhc2Uge1xuICAgIG5hbWU6IHN0cmluZyB8IHN5bWJvbCxcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgTXNnU291cmNlIHR5cGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTXNnU291cmNlPFQgZXh0ZW5kcyBzdHJpbmc+IHtcbiAgICBzb3VyY2U6IFQsXG59XG5cbi8qKlxuICogVHlwZSBmb3IgbWFwcGluZyBtZXNzYWdlcyB0byBmdW5jdGlvbnMuXG4gKiBVc2UgdGhpcyB0eXBlIHRvIGNyZWF0ZSB5b3VyIHVwZGF0ZSBsb2dpYyBmb3IgdGhlIHVzZUVsbWlzaE1hcCBob29rLlxuICovXG5leHBvcnQgdHlwZSBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNc2cgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gPSB7XG4gICAgW00gaW4gVE1zZyBhcyBNW1wibmFtZVwiXV06IChtc2c6IE0sIG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpID0+IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTXNnPjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JNZXNzYWdlIHtcbiAgICBuYW1lOiBcImVycm9yXCIsXG4gICAgZXJyb3I6IEVycm9yLFxufSJdfQ==
26
+ var errorMsg = {
27
+ error: function error(_error) {
28
+ return {
29
+ name: "error",
30
+ error: _error
31
+ };
32
+ }
33
+ };
34
+ exports.errorMsg = errorMsg;
35
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9FbG1VdGlsaXRpZXMudHMiXSwibmFtZXMiOlsiaGFuZGxlRXJyb3IiLCJlcnJvciIsImVycm9yTWlkZGxld2FyZSIsIkxvZ2dlclNlcnZpY2UiLCJlcnJvck1zZyIsIm5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxJQUFNQSxXQUFXLEdBQUcsU0FBZEEsV0FBYyxDQUFlQyxLQUFmLEVBQWdFO0FBQ3ZGLE1BQUlDLHFCQUFKLEVBQXFCO0FBQ2pCLCtCQUFnQkQsS0FBaEI7QUFDSDs7QUFDREUsZ0dBQWVGLEtBQWYsQ0FBcUJBLEtBQXJCO0FBRUEsU0FBTyxDQUFDLEVBQUQsQ0FBUDtBQUNILENBUE07OztBQW1DQSxJQUFNRyxRQUFRLEdBQUc7QUFDcEJILEVBQUFBLEtBQUssRUFBRSxlQUFDQSxNQUFEO0FBQUEsV0FBaUM7QUFBRUksTUFBQUEsSUFBSSxFQUFFLE9BQVI7QUFBaUJKLE1BQUFBLEtBQUssRUFBTEE7QUFBakIsS0FBakM7QUFBQTtBQURhLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXJyb3JNaWRkbGV3YXJlLCBMb2dnZXJTZXJ2aWNlIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHsgVXBkYXRlUmV0dXJuVHlwZSB9IGZyb20gXCIuL0VsbUNvbXBvbmVudFwiO1xuXG4vKipcbiAqIEhhbmRsZXMgYW4gZXJyb3IuXG4gKiBMb2dzIHRoZSBlcnJvciBpZiBhIExvZ2dlciB3YXMgc3BlY2lmaWVkLlxuICogQ2FsbHMgdGhlIGVycm9yIGhhbmRsaW5nIG1pZGRsZXdhcmUgaWYgc3BlY2lmaWVkLlxuICogQHBhcmFtIHtFcnJvcn0gZXJyb3IgVGhlIGVycm9yLlxuICovXG5leHBvcnQgY29uc3QgaGFuZGxlRXJyb3IgPSA8VE1vZGVsLCBUTXNnPihlcnJvcjogRXJyb3IpOiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1zZz4gPT4ge1xuICAgIGlmIChlcnJvck1pZGRsZXdhcmUpIHtcbiAgICAgICAgZXJyb3JNaWRkbGV3YXJlKGVycm9yKTtcbiAgICB9XG4gICAgTG9nZ2VyU2VydmljZT8uZXJyb3IoZXJyb3IpO1xuXG4gICAgcmV0dXJuIFt7fV07XG59O1xuXG5leHBvcnQgdHlwZSBOdWxsYWJsZTxUPiA9IFQgfCBudWxsO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VCYXNlIHtcbiAgICBuYW1lOiBzdHJpbmcgfCBzeW1ib2wsXG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIE1zZ1NvdXJjZSB0eXBlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1zZ1NvdXJjZTxUIGV4dGVuZHMgc3RyaW5nPiB7XG4gICAgc291cmNlOiBULFxufVxuXG4vKipcbiAqIFR5cGUgZm9yIG1hcHBpbmcgbWVzc2FnZXMgdG8gZnVuY3Rpb25zLlxuICogVXNlIHRoaXMgdHlwZSB0byBjcmVhdGUgeW91ciB1cGRhdGUgbG9naWMgZm9yIHRoZSB1c2VFbG1pc2hNYXAgaG9vay5cbiAqL1xuZXhwb3J0IHR5cGUgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTXNnIGV4dGVuZHMgTWVzc2FnZUJhc2U+ID0ge1xuICAgIFtNIGluIFRNc2cgYXMgTVtcIm5hbWVcIl1dOiAobXNnOiBNLCBtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKSA9PiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1zZz47XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yTWVzc2FnZSB7XG4gICAgbmFtZTogXCJlcnJvclwiLFxuICAgIGVycm9yOiBFcnJvcixcbn1cblxuZXhwb3J0IGNvbnN0IGVycm9yTXNnID0ge1xuICAgIGVycm9yOiAoZXJyb3I6IEVycm9yKTogRXJyb3JNZXNzYWdlID0+ICh7IG5hbWU6IFwiZXJyb3JcIiwgZXJyb3IgfSksXG59OyJdfQ==
@@ -8,7 +8,7 @@ exports.getOfMsgParams = getOfMsgParams;
8
8
  exports.getUpdateFn = getUpdateFn;
9
9
  exports.runSingleOfPromiseCmd = runSingleOfPromiseCmd;
10
10
 
11
- var _useElmishMap = require("../useElmishMap");
11
+ var _useElmish = require("../useElmish");
12
12
 
13
13
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
14
14
 
@@ -142,7 +142,7 @@ function _execCmd() {
142
142
 
143
143
  function getUpdateFn(updateMap) {
144
144
  return function (msg, model, props) {
145
- return (0, _useElmishMap.callUpdateMap)(updateMap, msg, model, props);
145
+ return (0, _useElmish.callUpdateMap)(updateMap, msg, model, props);
146
146
  };
147
147
  }
148
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9UZXN0aW5nL2luZGV4LnRzIl0sIm5hbWVzIjpbInJ1blNpbmdsZU9mUHJvbWlzZUNtZCIsImNtZCIsIlByb21pc2UiLCJyZXNvbHZlIiwiZGlzcGF0Y2giLCJnZXRPZk1zZ1BhcmFtcyIsIm1zZ05hbWVzIiwibXNnIiwicHVzaCIsIm1hcCIsImN1cnJlbnRDbWQiLCJleGVjQ21kIiwiY2FsbGVycyIsInJlamVjdCIsImVycm9yIiwiYWxsIiwicmVzdWx0cyIsImdldFVwZGF0ZUZuIiwidXBkYXRlTWFwIiwibW9kZWwiLCJwcm9wcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUNBOzs7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO1NBQ3NCQSxxQjs7O0FBUXRCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7bUZBWk8saUJBQTRDQyxHQUE1QztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsNkNBQ0ksSUFBSUMsT0FBSixDQUFrQixVQUFBQyxPQUFPLEVBQUk7QUFDaEMsa0JBQU1DLFFBQVEsR0FBRyxTQUFYQSxRQUFXO0FBQUEsdUJBQVlELE9BQU8sRUFBbkI7QUFBQSxlQUFqQjs7QUFFQUYsY0FBQUEsR0FBRyxDQUFDLENBQUQsQ0FBSCxDQUFPRyxRQUFQO0FBQ0gsYUFKTSxDQURKOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEc7Ozs7QUFhQSxTQUFTQyxjQUFULENBQStCSixHQUEvQixFQUF5RDtBQUM1RCxNQUFNSyxRQUFpQixHQUFHLEVBQTFCOztBQUVBLE1BQU1GLFFBQVEsR0FBRyxTQUFYQSxRQUFXLENBQUNHLEdBQUQsRUFBcUI7QUFDbENELElBQUFBLFFBQVEsQ0FBQ0UsSUFBVCxDQUFjRCxHQUFkO0FBQ0gsR0FGRDs7QUFJQU4sRUFBQUEsR0FBRyxTQUFILElBQUFBLEdBQUcsV0FBSCxZQUFBQSxHQUFHLENBQUVRLEdBQUwsQ0FBUyxVQUFBQyxVQUFVO0FBQUEsV0FBSUEsVUFBVSxDQUFDTixRQUFELENBQWQ7QUFBQSxHQUFuQjtBQUVBLFNBQU9FLFFBQVA7QUFDSDtBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztTQUNzQkssTzs7Ozs7cUVBQWYsa0JBQThCVixHQUE5QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQkFDRUEsR0FERjtBQUFBO0FBQUE7QUFBQTs7QUFBQSw4Q0FFUSxFQUZSOztBQUFBO0FBS0dXLFlBQUFBLE9BTEgsR0FLYVgsR0FBRyxDQUFDUSxHQUFKO0FBQUEsaUZBQVEsa0JBQU1DLFVBQU47QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDBEQUFvQixJQUFJUixPQUFKLENBQTRCLFVBQUNDLE9BQUQsRUFBVVUsTUFBVixFQUFxQjtBQUN6Riw4QkFBTVQsUUFBUSxHQUFHLFNBQVhBLFFBQVcsQ0FBQ0csR0FBRDtBQUFBLG1DQUFxQkosT0FBTyxDQUFDSSxHQUFELENBQTVCO0FBQUEsMkJBQWpCOztBQUVBRywwQkFBQUEsVUFBVSxDQUFDTixRQUFELEVBQVcsVUFBQVUsS0FBSyxFQUFJO0FBQzFCLGdDQUFJQSxLQUFKLEVBQVc7QUFDUEQsOEJBQUFBLE1BQU0sQ0FBQ0MsS0FBRCxDQUFOO0FBQ0gsNkJBRkQsTUFFTztBQUNIWCw4QkFBQUEsT0FBTyxDQUFDLElBQUQsQ0FBUDtBQUNIO0FBQ0osMkJBTlMsQ0FBVjtBQU9ILHlCQVYyQyxDQUFwQjs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQUFSOztBQUFBO0FBQUE7QUFBQTtBQUFBLGdCQUxiO0FBQUE7QUFBQSxtQkFpQm1CRCxPQUFPLENBQUNhLEdBQVIsQ0FBWUgsT0FBWixDQWpCbkI7O0FBQUE7QUFpQkdJLFlBQUFBLE9BakJIO0FBQUEsOENBbUJJQSxPQW5CSjs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxHOzs7O0FBc0JBLFNBQVNDLFdBQVQsQ0FBb0VDLFNBQXBFLEVBQXlNO0FBQzVNLFNBQU8sVUFBVVgsR0FBVixFQUF5QlksS0FBekIsRUFBd0NDLEtBQXhDLEVBQTJGO0FBQzlGLFdBQU8saUNBQWNGLFNBQWQsRUFBeUJYLEdBQXpCLEVBQThCWSxLQUE5QixFQUFxQ0MsS0FBckMsQ0FBUDtBQUNILEdBRkQ7QUFHSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2VCYXNlLCBOdWxsYWJsZSwgVXBkYXRlTWFwIH0gZnJvbSBcIi4uL0VsbVV0aWxpdGllc1wiO1xuaW1wb3J0IHsgY2FsbFVwZGF0ZU1hcCB9IGZyb20gXCIuLi91c2VFbG1pc2hNYXBcIjtcbmltcG9ydCB7IENtZCB9IGZyb20gXCIuLi9DbWRcIjtcbmltcG9ydCB7IFVwZGF0ZVJldHVyblR5cGUgfSBmcm9tIFwiLi4vRWxtQ29tcG9uZW50XCI7XG5cbi8qKlxuICogRXhlY3V0ZXMgYSBzaW5nbGUgY29tbWFuZCBjcmVhdGVkIGJ5IG9uZSBvZiB0aGUgb2ZQcm9taXNlIGZ1bmN0aW9ucy5cbiAqIEBwYXJhbSBjbWQgVGhlIGNvbW1hbmQgdG8gcHJvY2Vzcy5cbiAqIEBkZXByZWNhdGVkIFVzZSBleGVjQ21kIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5TaW5nbGVPZlByb21pc2VDbWQ8VE1zZz4gKGNtZDogQ21kPFRNc2c+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KHJlc29sdmUgPT4ge1xuICAgICAgICBjb25zdCBkaXNwYXRjaCA9ICgpOiB2b2lkID0+IHJlc29sdmUoKTtcblxuICAgICAgICBjbWRbMF0oZGlzcGF0Y2gpO1xuICAgIH0pO1xufVxuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBtZXNzYWdlcyBvdXQgb2YgYSBjb21tYW5kLlxuICogQHBhcmFtIGNtZCBUaGUgY29tbWFuZCB0byBwcm9jZXNzLlxuICogQHJldHVybnMgVGhlIGFycmF5IG9mIG1lc3NhZ2VzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2ZNc2dQYXJhbXM8VE1zZz4gKGNtZD86IENtZDxUTXNnPik6IFRNc2cgW10ge1xuICAgIGNvbnN0IG1zZ05hbWVzOiBUTXNnIFtdID0gW107XG5cbiAgICBjb25zdCBkaXNwYXRjaCA9IChtc2c6IFRNc2cpOiB2b2lkID0+IHtcbiAgICAgICAgbXNnTmFtZXMucHVzaChtc2cpO1xuICAgIH07XG5cbiAgICBjbWQ/Lm1hcChjdXJyZW50Q21kID0+IGN1cnJlbnRDbWQoZGlzcGF0Y2gpKTtcblxuICAgIHJldHVybiBtc2dOYW1lcztcbn1cblxuLyoqXG4gKiBFeGVjdXRlcyBhbGwgY29tbWFuZHMgYW5kIHJlc29sdmVzIHRoZSBtZXNzYWdlcy5cbiAqIEBwYXJhbSBjbWQgVGhlIGNvbW1hbmQgdG8gcHJvY2Vzcy5cbiAqIEByZXR1cm5zIFRoZSBhcnJheSBvZiBwcm9jZXNzZWQgbWVzc2FnZXMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBleGVjQ21kPFRNc2c+IChjbWQ/OiBDbWQ8VE1zZz4pOiBQcm9taXNlPE51bGxhYmxlPFRNc2c+IFtdPiB7XG4gICAgaWYgKCFjbWQpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IGNhbGxlcnMgPSBjbWQubWFwKGFzeW5jIGN1cnJlbnRDbWQgPT4gbmV3IFByb21pc2U8TnVsbGFibGU8VE1zZz4+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgZGlzcGF0Y2ggPSAobXNnOiBUTXNnKTogdm9pZCA9PiByZXNvbHZlKG1zZyk7XG5cbiAgICAgICAgY3VycmVudENtZChkaXNwYXRjaCwgZXJyb3IgPT4ge1xuICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSkpO1xuXG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKGNhbGxlcnMpO1xuXG4gICAgcmV0dXJuIHJlc3VsdHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVcGRhdGVGbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKHVwZGF0ZU1hcDogVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pOiAobXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcykgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChtc2c6IFRNZXNzYWdlLCBtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG4gICAgICAgIHJldHVybiBjYWxsVXBkYXRlTWFwKHVwZGF0ZU1hcCwgbXNnLCBtb2RlbCwgcHJvcHMpO1xuICAgIH07XG59Il19
148
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9UZXN0aW5nL2luZGV4LnRzIl0sIm5hbWVzIjpbInJ1blNpbmdsZU9mUHJvbWlzZUNtZCIsImNtZCIsIlByb21pc2UiLCJyZXNvbHZlIiwiZGlzcGF0Y2giLCJnZXRPZk1zZ1BhcmFtcyIsIm1zZ05hbWVzIiwibXNnIiwicHVzaCIsIm1hcCIsImN1cnJlbnRDbWQiLCJleGVjQ21kIiwiY2FsbGVycyIsInJlamVjdCIsImVycm9yIiwiYWxsIiwicmVzdWx0cyIsImdldFVwZGF0ZUZuIiwidXBkYXRlTWFwIiwibW9kZWwiLCJwcm9wcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUNBOzs7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO1NBQ3NCQSxxQjs7O0FBUXRCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7bUZBWk8saUJBQTRDQyxHQUE1QztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsNkNBQ0ksSUFBSUMsT0FBSixDQUFrQixVQUFBQyxPQUFPLEVBQUk7QUFDaEMsa0JBQU1DLFFBQVEsR0FBRyxTQUFYQSxRQUFXO0FBQUEsdUJBQVlELE9BQU8sRUFBbkI7QUFBQSxlQUFqQjs7QUFFQUYsY0FBQUEsR0FBRyxDQUFDLENBQUQsQ0FBSCxDQUFPRyxRQUFQO0FBQ0gsYUFKTSxDQURKOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEc7Ozs7QUFhQSxTQUFTQyxjQUFULENBQStCSixHQUEvQixFQUF5RDtBQUM1RCxNQUFNSyxRQUFpQixHQUFHLEVBQTFCOztBQUVBLE1BQU1GLFFBQVEsR0FBRyxTQUFYQSxRQUFXLENBQUNHLEdBQUQsRUFBcUI7QUFDbENELElBQUFBLFFBQVEsQ0FBQ0UsSUFBVCxDQUFjRCxHQUFkO0FBQ0gsR0FGRDs7QUFJQU4sRUFBQUEsR0FBRyxTQUFILElBQUFBLEdBQUcsV0FBSCxZQUFBQSxHQUFHLENBQUVRLEdBQUwsQ0FBUyxVQUFBQyxVQUFVO0FBQUEsV0FBSUEsVUFBVSxDQUFDTixRQUFELENBQWQ7QUFBQSxHQUFuQjtBQUVBLFNBQU9FLFFBQVA7QUFDSDtBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztTQUNzQkssTzs7Ozs7cUVBQWYsa0JBQThCVixHQUE5QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQkFDRUEsR0FERjtBQUFBO0FBQUE7QUFBQTs7QUFBQSw4Q0FFUSxFQUZSOztBQUFBO0FBS0dXLFlBQUFBLE9BTEgsR0FLYVgsR0FBRyxDQUFDUSxHQUFKO0FBQUEsaUZBQVEsa0JBQU1DLFVBQU47QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDBEQUFvQixJQUFJUixPQUFKLENBQTRCLFVBQUNDLE9BQUQsRUFBVVUsTUFBVixFQUFxQjtBQUN6Riw4QkFBTVQsUUFBUSxHQUFHLFNBQVhBLFFBQVcsQ0FBQ0csR0FBRDtBQUFBLG1DQUFxQkosT0FBTyxDQUFDSSxHQUFELENBQTVCO0FBQUEsMkJBQWpCOztBQUVBRywwQkFBQUEsVUFBVSxDQUFDTixRQUFELEVBQVcsVUFBQVUsS0FBSyxFQUFJO0FBQzFCLGdDQUFJQSxLQUFKLEVBQVc7QUFDUEQsOEJBQUFBLE1BQU0sQ0FBQ0MsS0FBRCxDQUFOO0FBQ0gsNkJBRkQsTUFFTztBQUNIWCw4QkFBQUEsT0FBTyxDQUFDLElBQUQsQ0FBUDtBQUNIO0FBQ0osMkJBTlMsQ0FBVjtBQU9ILHlCQVYyQyxDQUFwQjs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQUFSOztBQUFBO0FBQUE7QUFBQTtBQUFBLGdCQUxiO0FBQUE7QUFBQSxtQkFpQm1CRCxPQUFPLENBQUNhLEdBQVIsQ0FBWUgsT0FBWixDQWpCbkI7O0FBQUE7QUFpQkdJLFlBQUFBLE9BakJIO0FBQUEsOENBbUJJQSxPQW5CSjs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxHOzs7O0FBc0JBLFNBQVNDLFdBQVQsQ0FBb0VDLFNBQXBFLEVBQXlNO0FBQzVNLFNBQU8sVUFBVVgsR0FBVixFQUF5QlksS0FBekIsRUFBd0NDLEtBQXhDLEVBQTJGO0FBQzlGLFdBQU8sOEJBQWNGLFNBQWQsRUFBeUJYLEdBQXpCLEVBQThCWSxLQUE5QixFQUFxQ0MsS0FBckMsQ0FBUDtBQUNILEdBRkQ7QUFHSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2VCYXNlLCBOdWxsYWJsZSwgVXBkYXRlTWFwIH0gZnJvbSBcIi4uL0VsbVV0aWxpdGllc1wiO1xuaW1wb3J0IHsgY2FsbFVwZGF0ZU1hcCB9IGZyb20gXCIuLi91c2VFbG1pc2hcIjtcbmltcG9ydCB7IENtZCB9IGZyb20gXCIuLi9DbWRcIjtcbmltcG9ydCB7IFVwZGF0ZVJldHVyblR5cGUgfSBmcm9tIFwiLi4vRWxtQ29tcG9uZW50XCI7XG5cbi8qKlxuICogRXhlY3V0ZXMgYSBzaW5nbGUgY29tbWFuZCBjcmVhdGVkIGJ5IG9uZSBvZiB0aGUgb2ZQcm9taXNlIGZ1bmN0aW9ucy5cbiAqIEBwYXJhbSBjbWQgVGhlIGNvbW1hbmQgdG8gcHJvY2Vzcy5cbiAqIEBkZXByZWNhdGVkIFVzZSBleGVjQ21kIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5TaW5nbGVPZlByb21pc2VDbWQ8VE1zZz4gKGNtZDogQ21kPFRNc2c+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KHJlc29sdmUgPT4ge1xuICAgICAgICBjb25zdCBkaXNwYXRjaCA9ICgpOiB2b2lkID0+IHJlc29sdmUoKTtcblxuICAgICAgICBjbWRbMF0oZGlzcGF0Y2gpO1xuICAgIH0pO1xufVxuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBtZXNzYWdlcyBvdXQgb2YgYSBjb21tYW5kLlxuICogQHBhcmFtIGNtZCBUaGUgY29tbWFuZCB0byBwcm9jZXNzLlxuICogQHJldHVybnMgVGhlIGFycmF5IG9mIG1lc3NhZ2VzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2ZNc2dQYXJhbXM8VE1zZz4gKGNtZD86IENtZDxUTXNnPik6IFRNc2cgW10ge1xuICAgIGNvbnN0IG1zZ05hbWVzOiBUTXNnIFtdID0gW107XG5cbiAgICBjb25zdCBkaXNwYXRjaCA9IChtc2c6IFRNc2cpOiB2b2lkID0+IHtcbiAgICAgICAgbXNnTmFtZXMucHVzaChtc2cpO1xuICAgIH07XG5cbiAgICBjbWQ/Lm1hcChjdXJyZW50Q21kID0+IGN1cnJlbnRDbWQoZGlzcGF0Y2gpKTtcblxuICAgIHJldHVybiBtc2dOYW1lcztcbn1cblxuLyoqXG4gKiBFeGVjdXRlcyBhbGwgY29tbWFuZHMgYW5kIHJlc29sdmVzIHRoZSBtZXNzYWdlcy5cbiAqIEBwYXJhbSBjbWQgVGhlIGNvbW1hbmQgdG8gcHJvY2Vzcy5cbiAqIEByZXR1cm5zIFRoZSBhcnJheSBvZiBwcm9jZXNzZWQgbWVzc2FnZXMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBleGVjQ21kPFRNc2c+IChjbWQ/OiBDbWQ8VE1zZz4pOiBQcm9taXNlPE51bGxhYmxlPFRNc2c+IFtdPiB7XG4gICAgaWYgKCFjbWQpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IGNhbGxlcnMgPSBjbWQubWFwKGFzeW5jIGN1cnJlbnRDbWQgPT4gbmV3IFByb21pc2U8TnVsbGFibGU8VE1zZz4+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgZGlzcGF0Y2ggPSAobXNnOiBUTXNnKTogdm9pZCA9PiByZXNvbHZlKG1zZyk7XG5cbiAgICAgICAgY3VycmVudENtZChkaXNwYXRjaCwgZXJyb3IgPT4ge1xuICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSkpO1xuXG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKGNhbGxlcnMpO1xuXG4gICAgcmV0dXJuIHJlc3VsdHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVcGRhdGVGbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKHVwZGF0ZU1hcDogVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pOiAobXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcykgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChtc2c6IFRNZXNzYWdlLCBtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG4gICAgICAgIHJldHVybiBjYWxsVXBkYXRlTWFwKHVwZGF0ZU1hcCwgbXNnLCBtb2RlbCwgcHJvcHMpO1xuICAgIH07XG59Il19
package/dist/index.d.ts CHANGED
@@ -3,6 +3,5 @@ import { ElmComponent, UpdateReturnType } from "./ElmComponent";
3
3
  import { ErrorMessage, handleError, MsgSource, UpdateMap } from "./ElmUtilities";
4
4
  import { init, Logger, Message } from "./Init";
5
5
  import { useElmish } from "./useElmish";
6
- import { useElmishMap } from "./useElmishMap";
7
6
  export type { Logger, Message, Cmd, Dispatch, UpdateReturnType, MsgSource, UpdateMap, ErrorMessage, };
8
- export { init, createCmd, ElmComponent, handleError, useElmish, useElmishMap, };
7
+ export { init, createCmd, ElmComponent, handleError, useElmish, };
package/dist/index.js CHANGED
@@ -33,12 +33,6 @@ Object.defineProperty(exports, "useElmish", {
33
33
  return _useElmish.useElmish;
34
34
  }
35
35
  });
36
- Object.defineProperty(exports, "useElmishMap", {
37
- enumerable: true,
38
- get: function get() {
39
- return _useElmishMap.useElmishMap;
40
- }
41
- });
42
36
 
43
37
  var _Cmd = require("./Cmd");
44
38
 
@@ -49,6 +43,4 @@ var _ElmUtilities = require("./ElmUtilities");
49
43
  var _Init = require("./Init");
50
44
 
51
45
  var _useElmish = require("./useElmish");
52
-
53
- var _useElmishMap = require("./useElmishMap");
54
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENtZCwgY3JlYXRlQ21kLCBEaXNwYXRjaCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgRWxtQ29tcG9uZW50LCBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4vRWxtQ29tcG9uZW50XCI7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2UsIGhhbmRsZUVycm9yLCBNc2dTb3VyY2UsIFVwZGF0ZU1hcCB9IGZyb20gXCIuL0VsbVV0aWxpdGllc1wiO1xuaW1wb3J0IHsgaW5pdCwgTG9nZ2VyLCBNZXNzYWdlIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHsgdXNlRWxtaXNoIH0gZnJvbSBcIi4vdXNlRWxtaXNoXCI7XG5pbXBvcnQgeyB1c2VFbG1pc2hNYXAgfSBmcm9tIFwiLi91c2VFbG1pc2hNYXBcIjtcblxuZXhwb3J0IHR5cGUge1xuICAgIExvZ2dlcixcbiAgICBNZXNzYWdlLFxuICAgIENtZCxcbiAgICBEaXNwYXRjaCxcbiAgICBVcGRhdGVSZXR1cm5UeXBlLFxuICAgIE1zZ1NvdXJjZSxcbiAgICBVcGRhdGVNYXAsXG4gICAgRXJyb3JNZXNzYWdlLFxufTtcblxuZXhwb3J0IHtcbiAgICBpbml0LFxuICAgIGNyZWF0ZUNtZCxcbiAgICBFbG1Db21wb25lbnQsXG4gICAgaGFuZGxlRXJyb3IsXG4gICAgdXNlRWxtaXNoLFxuICAgIHVzZUVsbWlzaE1hcCxcbn07Il19
46
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENtZCwgY3JlYXRlQ21kLCBEaXNwYXRjaCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgRWxtQ29tcG9uZW50LCBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4vRWxtQ29tcG9uZW50XCI7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2UsIGhhbmRsZUVycm9yLCBNc2dTb3VyY2UsIFVwZGF0ZU1hcCB9IGZyb20gXCIuL0VsbVV0aWxpdGllc1wiO1xuaW1wb3J0IHsgaW5pdCwgTG9nZ2VyLCBNZXNzYWdlIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHsgdXNlRWxtaXNoIH0gZnJvbSBcIi4vdXNlRWxtaXNoXCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgICBMb2dnZXIsXG4gICAgTWVzc2FnZSxcbiAgICBDbWQsXG4gICAgRGlzcGF0Y2gsXG4gICAgVXBkYXRlUmV0dXJuVHlwZSxcbiAgICBNc2dTb3VyY2UsXG4gICAgVXBkYXRlTWFwLFxuICAgIEVycm9yTWVzc2FnZSxcbn07XG5cbmV4cG9ydCB7XG4gICAgaW5pdCxcbiAgICBjcmVhdGVDbWQsXG4gICAgRWxtQ29tcG9uZW50LFxuICAgIGhhbmRsZUVycm9yLFxuICAgIHVzZUVsbWlzaCxcbn07Il19
@@ -0,0 +1,15 @@
1
+ import { Cmd, Dispatch } from "../Cmd";
2
+ import { MessageBase } from "../ElmUtilities";
3
+ import { UpdateFunction } from "../ElmComponent";
4
+ /**
5
+ * Hook to use the Elm architecture pattern in a function component.
6
+ * @param props The props of the component.
7
+ * @param init Function to initialize the model.
8
+ * @param update The update function.
9
+ * @param name The name of the component.
10
+ * @returns A tuple containing the current model and the dispatcher.
11
+ * @example
12
+ * const [model, dispatch] = useElmish(props, init, update, "MyComponent");
13
+ * @deprecated Use `useElmish` with an options object instead.
14
+ */
15
+ export declare function useElmish<TProps, TModel, TMsg extends MessageBase>(props: TProps, init: (props: TProps) => [TModel, Cmd<TMsg>], update: UpdateFunction<TProps, TModel, TMsg>, name: string): [TModel, Dispatch<TMsg>];
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useElmish = useElmish;
7
+
8
+ var _Init = require("../Init");
9
+
10
+ var _react = require("react");
11
+
12
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
+
14
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15
+
16
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
+
18
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
19
+
20
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
21
+
22
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
23
+
24
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
25
+
26
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
27
+
28
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
29
+
30
+ /**
31
+ * Hook to use the Elm architecture pattern in a function component.
32
+ * @param props The props of the component.
33
+ * @param init Function to initialize the model.
34
+ * @param update The update function.
35
+ * @param name The name of the component.
36
+ * @returns A tuple containing the current model and the dispatcher.
37
+ * @example
38
+ * const [model, dispatch] = useElmish(props, init, update, "MyComponent");
39
+ * @deprecated Use `useElmish` with an options object instead.
40
+ */
41
+ function useElmish(props, init, update, name) {
42
+ var reentered = false;
43
+ var buffer = [];
44
+ var currentModel = {};
45
+
46
+ var _useState = (0, _react.useState)(null),
47
+ _useState2 = _slicedToArray(_useState, 2),
48
+ model = _useState2[0],
49
+ setModel = _useState2[1];
50
+
51
+ var initializedModel = model;
52
+ var execCmd = (0, _react.useCallback)(function (cmd) {
53
+ cmd.forEach(function (call) {
54
+ try {
55
+ call(dispatch);
56
+ } catch (ex) {
57
+ _Init.LoggerService === null || _Init.LoggerService === void 0 ? void 0 : _Init.LoggerService.error(ex);
58
+ }
59
+ });
60
+ }, []);
61
+ var dispatch = (0, _react.useCallback)(function (msg) {
62
+ if (!initializedModel) {
63
+ return;
64
+ }
65
+
66
+ var modelHasChanged = function modelHasChanged(updatedModel) {
67
+ return updatedModel !== initializedModel && Object.getOwnPropertyNames(updatedModel).length > 0;
68
+ };
69
+
70
+ if (_Init.dispatchMiddleware) {
71
+ (0, _Init.dispatchMiddleware)(msg);
72
+ }
73
+
74
+ if (reentered) {
75
+ buffer.push(msg);
76
+ } else {
77
+ reentered = true;
78
+ var nextMsg = msg;
79
+ var modified = false;
80
+
81
+ while (nextMsg) {
82
+ _Init.LoggerService === null || _Init.LoggerService === void 0 ? void 0 : _Init.LoggerService.info("Elm", "message from", name, nextMsg.name);
83
+ _Init.LoggerService === null || _Init.LoggerService === void 0 ? void 0 : _Init.LoggerService.debug("Elm", "message from", name, nextMsg);
84
+
85
+ try {
86
+ var _update = update(_objectSpread(_objectSpread({}, initializedModel), currentModel), nextMsg, props),
87
+ _update2 = _slicedToArray(_update, 2),
88
+ newModel = _update2[0],
89
+ cmd = _update2[1];
90
+
91
+ if (modelHasChanged(newModel)) {
92
+ currentModel = _objectSpread(_objectSpread({}, currentModel), newModel);
93
+ modified = true;
94
+ }
95
+
96
+ if (cmd) {
97
+ execCmd(cmd);
98
+ }
99
+ } catch (ex) {
100
+ _Init.LoggerService === null || _Init.LoggerService === void 0 ? void 0 : _Init.LoggerService.error(ex);
101
+ }
102
+
103
+ nextMsg = buffer.shift();
104
+ }
105
+
106
+ reentered = false;
107
+
108
+ if (modified) {
109
+ setModel(function (prevModel) {
110
+ var updatedModel = _objectSpread(_objectSpread({}, prevModel), currentModel);
111
+
112
+ _Init.LoggerService === null || _Init.LoggerService === void 0 ? void 0 : _Init.LoggerService.debug("Elm", "update model for", name, updatedModel);
113
+ return updatedModel;
114
+ });
115
+ }
116
+ }
117
+ }, []);
118
+
119
+ if (!initializedModel) {
120
+ var _init = init(props),
121
+ _init2 = _slicedToArray(_init, 2),
122
+ initModel = _init2[0],
123
+ initCmd = _init2[1];
124
+
125
+ initializedModel = initModel;
126
+ setModel(initializedModel);
127
+ execCmd(initCmd);
128
+ }
129
+
130
+ return [initializedModel, dispatch];
131
+ }
132
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sZWdhY3kvdXNlRWxtaXNoLnRzIl0sIm5hbWVzIjpbInVzZUVsbWlzaCIsInByb3BzIiwiaW5pdCIsInVwZGF0ZSIsIm5hbWUiLCJyZWVudGVyZWQiLCJidWZmZXIiLCJjdXJyZW50TW9kZWwiLCJtb2RlbCIsInNldE1vZGVsIiwiaW5pdGlhbGl6ZWRNb2RlbCIsImV4ZWNDbWQiLCJjbWQiLCJmb3JFYWNoIiwiY2FsbCIsImRpc3BhdGNoIiwiZXgiLCJMb2dnZXJTZXJ2aWNlIiwiZXJyb3IiLCJtc2ciLCJtb2RlbEhhc0NoYW5nZWQiLCJ1cGRhdGVkTW9kZWwiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwibGVuZ3RoIiwiZGlzcGF0Y2hNaWRkbGV3YXJlIiwicHVzaCIsIm5leHRNc2ciLCJtb2RpZmllZCIsImluZm8iLCJkZWJ1ZyIsIm5ld01vZGVsIiwic2hpZnQiLCJwcmV2TW9kZWwiLCJpbml0TW9kZWwiLCJpbml0Q21kIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0E7O0FBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNBLFNBQVQsQ0FBOERDLEtBQTlELEVBQTZFQyxJQUE3RSxFQUEySEMsTUFBM0gsRUFBeUtDLElBQXpLLEVBQWlOO0FBQ3BOLE1BQUlDLFNBQVMsR0FBRyxLQUFoQjtBQUNBLE1BQU1DLE1BQWUsR0FBRyxFQUF4QjtBQUNBLE1BQUlDLFlBQTZCLEdBQUcsRUFBcEM7O0FBRUEsa0JBQTBCLHFCQUEyQixJQUEzQixDQUExQjtBQUFBO0FBQUEsTUFBT0MsS0FBUDtBQUFBLE1BQWNDLFFBQWQ7O0FBQ0EsTUFBSUMsZ0JBQWdCLEdBQUdGLEtBQXZCO0FBRUEsTUFBTUcsT0FBTyxHQUFHLHdCQUFZLFVBQUNDLEdBQUQsRUFBMEI7QUFDbERBLElBQUFBLEdBQUcsQ0FBQ0MsT0FBSixDQUFZLFVBQUFDLElB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ZnJvbSBcIi4uL0NtZFwiO1xuaW1wb3J0IHsgZGlzcGF0Y2hNaWRkbGV3YXJlLCBMb2dnZXJTZXJ2aWNlIH0gZnJvbSBcIi4uL0luaXRcIjtcbmltcG9ydCB7IE1lc3NhZ2VCYXNlLCBOdWxsYWJsZSB9IGZyb20gXCIuLi9FbG1VdGlsaXRpZXNcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgVXBkYXRlRnVuY3Rpb24gfSBmcm9tIFwiLi4vRWxtQ29tcG9uZW50XCI7XG5cbi8qKlxuICogSG9vayB0byB1c2UgdGhlIEVsbSBhcmNoaXRlY3R1cmUgcGF0dGVybiBpbiBhIGZ1bmN0aW9uIGNvbXBvbmVudC5cbiAqIEBwYXJhbSBwcm9wcyBUaGUgcHJvcHMgb2YgdGhlIGNvbXBvbmVudC5cbiAqIEBwYXJhbSBpbml0IEZ1bmN0aW9uIHRvIGluaXRpYWxpemUgdGhlIG1vZGVsLlxuICogQHBhcmFtIHVwZGF0ZSBUaGUgdXBkYXRlIGZ1bmN0aW9uLlxuICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudC5cbiAqIEByZXR1cm5zIEEgdHVwbGUgY29udGFpbmluZyB0aGUgY3VycmVudCBtb2RlbCBhbmQgdGhlIGRpc3BhdGNoZXIuXG4gKiBAZXhhbXBsZVxuICogY29uc3QgW21vZGVsLCBkaXNwYXRjaF0gPSB1c2VFbG1pc2gocHJvcHMsIGluaXQsIHVwZGF0ZSwgXCJNeUNvbXBvbmVudFwiKTtcbiAqIEBkZXByZWNhdGVkIFVzZSBgdXNlRWxtaXNoYCB3aXRoIGFuIG9wdGlvbnMgb2JqZWN0IGluc3RlYWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VFbG1pc2g8VFByb3BzLCBUTW9kZWwsIFRNc2cgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKHByb3BzOiBUUHJvcHMsIGluaXQ6IChwcm9wczogVFByb3BzKSA9PiBbVE1vZGVsLCBDbWQ8VE1zZz5dLCB1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTXNnPiwgbmFtZTogc3RyaW5nKTogW1RNb2RlbCwgRGlzcGF0Y2g8VE1zZz5dIHtcbiAgICBsZXQgcmVlbnRlcmVkID0gZmFsc2U7XG4gICAgY29uc3QgYnVmZmVyOiBUTXNnIFtdID0gW107XG4gICAgbGV0IGN1cnJlbnRNb2RlbDogUGFydGlhbDxUTW9kZWw+ID0ge307XG5cbiAgICBjb25zdCBbbW9kZWwsIHNldE1vZGVsXSA9IHVzZVN0YXRlPE51bGxhYmxlPFRNb2RlbD4+KG51bGwpO1xuICAgIGxldCBpbml0aWFsaXplZE1vZGVsID0gbW9kZWw7XG5cbiAgICBjb25zdCBleGVjQ21kID0gdXNlQ2FsbGJhY2soKGNtZDogQ21kPFRNc2c+KTogdm9pZCA9PiB7XG4gICAgICAgIGNtZC5mb3JFYWNoKGNhbGwgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjYWxsKGRpc3BhdGNoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGV4OiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uZXJyb3IoZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBkaXNwYXRjaCA9IHVzZUNhbGxiYWNrKChtc2c6IFRNc2cpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKCFpbml0aWFsaXplZE1vZGVsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtb2RlbEhhc0NoYW5nZWQgPSAodXBkYXRlZE1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4pOiBib29sZWFuID0+IHVwZGF0ZWRNb2RlbCAhPT0gaW5pdGlhbGl6ZWRNb2RlbCAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh1cGRhdGVkTW9kZWwpLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgaWYgKGRpc3BhdGNoTWlkZGxld2FyZSkge1xuICAgICAgICAgICAgZGlzcGF0Y2hNaWRkbGV3YXJlKG1zZyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVlbnRlcmVkKSB7XG4gICAgICAgICAgICBidWZmZXIucHVzaChtc2cpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVlbnRlcmVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgbGV0IG5leHRNc2c6IFRNc2cgfCB1bmRlZmluZWQgPSBtc2c7XG4gICAgICAgICAgICBsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgd2hpbGUgKG5leHRNc2cpIHtcbiAgICAgICAgICAgICAgICBMb2dnZXJTZXJ2aWNlPy5pbmZvKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIG5hbWUsIG5leHRNc2cubmFtZSk7XG4gICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uZGVidWcoXCJFbG1cIiwgXCJtZXNzYWdlIGZyb21cIiwgbmFtZSwgbmV4dE1zZyk7XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBbbmV3TW9kZWwsIGNtZF0gPSB1cGRhdGUoeyAuLi5pbml0aWFsaXplZE1vZGVsLCAuLi5jdXJyZW50TW9kZWwgfSwgbmV4dE1zZywgcHJvcHMpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChtb2RlbEhhc0NoYW5nZWQobmV3TW9kZWwpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50TW9kZWwgPSB7IC4uLmN1cnJlbnRNb2RlbCwgLi4ubmV3TW9kZWwgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGNtZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXhlY0NtZChjbWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uZXJyb3IoZXgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG5leHRNc2cgPSBidWZmZXIuc2hpZnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlZW50ZXJlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAobW9kaWZpZWQpIHtcbiAgICAgICAgICAgICAgICBzZXRNb2RlbChwcmV2TW9kZWwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkTW9kZWwgPSB7IC4uLnByZXZNb2RlbCBhcyBUTW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9O1xuXG4gICAgICAgICAgICAgICAgICAgIExvZ2dlclNlcnZpY2U/LmRlYnVnKFwiRWxtXCIsIFwidXBkYXRlIG1vZGVsIGZvclwiLCBuYW1lLCB1cGRhdGVkTW9kZWwpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB1cGRhdGVkTW9kZWw7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG5cbiAgICBpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcbiAgICAgICAgY29uc3QgW2luaXRNb2RlbCwgaW5pdENtZF0gPSBpbml0KHByb3BzKTtcblxuICAgICAgICBpbml0aWFsaXplZE1vZGVsID0gaW5pdE1vZGVsO1xuICAgICAgICBzZXRNb2RlbChpbml0aWFsaXplZE1vZGVsKTtcblxuICAgICAgICBleGVjQ21kKGluaXRDbWQpO1xuICAgIH1cblxuICAgIHJldHVybiBbaW5pdGlhbGl6ZWRNb2RlbCwgZGlzcGF0Y2hdO1xufSJdfQ==
@@ -0,0 +1,14 @@
1
+ import { Cmd, Dispatch } from "../Cmd";
2
+ import { MessageBase, UpdateMap } from "../ElmUtilities";
3
+ /**
4
+ * Hook to use the Elm architecture pattern in a function component.
5
+ * @param props The props of the component.
6
+ * @param init Function to initialize the model.
7
+ * @param updateMap The update map object.
8
+ * @param name The name of the component.
9
+ * @returns A tuple containing the current model and the dispatcher.
10
+ * @example
11
+ * const [model, dispatch] = useElmishMap(props, init, updateMap, "MyComponent");
12
+ * @deprecated Use `useElmish` with an options object instead.
13
+ */
14
+ export declare function useElmishMap<TProps, TModel, TMessage extends MessageBase>(props: TProps, init: (props: TProps) => [TModel, Cmd<TMessage>], updateMap: UpdateMap<TProps, TModel, TMessage>, name: string): [TModel, Dispatch<TMessage>];
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useElmishMap = useElmishMap;
7
+
8
+ var _Init = require("../Init");
9
+
10
+ var _react = require("react");
11
+
12
+ var _useElmish = require("../useElmish");
13
+
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
+
16
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
17
+
18
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19
+
20
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
21
+
22
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
23
+
24
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
25
+
26
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
27
+
28
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
29
+
30
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
31
+
32
+ /**
33
+ * Hook to use the Elm architecture pattern in a function component.
34
+ * @param props The props of the component.
35
+ * @param init Function to initialize the model.
36
+ * @param updateMap The update map object.
37
+ * @param name The name of the component.
38
+ * @returns A tuple containing the current model and the dispatcher.
39
+ * @example
40
+ * const [model, dispatch] = useElmishMap(props, init, updateMap, "MyComponent");
41
+ * @deprecated Use `useElmish` with an options object instead.
42
+ */
43
+ function useElmishMap(props, init, updateMap, name) {
44
+ var reentered = false;
45
+ var buffer = [];
46
+ var currentModel = {};
47
+
48
+ var _useState = (0, _react.useState)(null),
49
+ _useState2 = _slicedToArray(_useState, 2),
50
+ model = _useState2[0],
51
+ setModel = _useState2[1];
52
+
53
+ var initializedModel = model;
54
+ var execCmd = (0, _react.useCallback)(function (cmd) {
55
+ cmd.forEach(function (call) {
56
+ try {
57
+ call(dispatch);
58
+ } catch (ex) {
59
+ _Init.LoggerService === null || _Init.LoggerService === void 0 ? void 0 : _Init.LoggerService.error(ex);
60
+ }
61
+ });
62
+ }, []);
63
+ var dispatch = (0, _react.useCallback)(function (msg) {
64
+ if (!initializedModel) {
65
+ return;
66
+ }
67
+
68
+ var modelHasChanged = function modelHasChanged(updatedModel) {
69
+ return updatedModel !== initializedModel && Object.getOwnPropertyNames(updatedModel).length > 0;
70
+ };
71
+
72
+ if (_Init.dispatchMiddleware) {
73
+ (0, _Init.dispatchMiddleware)(msg);
74
+ }
75
+
76
+ if (reentered) {
77
+ buffer.push(msg);
78
+ } else {
79
+ reentered = true;
80
+ var nextMsg = msg;
81
+ var modified = false;
82
+
83
+ while (nextMsg) {
84
+ _Init.LoggerService === null || _Init.LoggerService === void 0 ? void 0 : _Init.LoggerService.info("Elm", "message from", name, nextMsg.name);
85
+ _Init.LoggerService === null || _Init.LoggerService === void 0 ? void 0 : _Init.LoggerService.debug("Elm", "message from", name, nextMsg);
86
+
87
+ try {
88
+ var _callUpdateMap = (0, _useElmish.callUpdateMap)(updateMap, nextMsg, _objectSpread(_objectSpread({}, initializedModel), currentModel), props),
89
+ _callUpdateMap2 = _slicedToArray(_callUpdateMap, 2),
90
+ newModel = _callUpdateMap2[0],
91
+ cmd = _callUpdateMap2[1];
92
+
93
+ if (modelHasChanged(newModel)) {
94
+ currentModel = _objectSpread(_objectSpread({}, currentModel), newModel);
95
+ modified = true;
96
+ }
97
+
98
+ if (cmd) {
99
+ execCmd(cmd);
100
+ }
101
+ } catch (ex) {
102
+ _Init.LoggerService === null || _Init.LoggerService === void 0 ? void 0 : _Init.LoggerService.error(ex);
103
+ }
104
+
105
+ nextMsg = buffer.shift();
106
+ }
107
+
108
+ reentered = false;
109
+
110
+ if (modified) {
111
+ setModel(function (prevModel) {
112
+ var updatedModel = _objectSpread(_objectSpread({}, prevModel), currentModel);
113
+
114
+ _Init.LoggerService === null || _Init.LoggerService === void 0 ? void 0 : _Init.LoggerService.debug("Elm", "update model for", name, updatedModel);
115
+ return updatedModel;
116
+ });
117
+ }
118
+ }
119
+ }, []);
120
+
121
+ if (!initializedModel) {
122
+ var _init = init(props),
123
+ _init2 = _slicedToArray(_init, 2),
124
+ initModel = _init2[0],
125
+ initCmd = _init2[1];
126
+
127
+ initializedModel = initModel;
128
+ setModel(initializedModel);
129
+ execCmd(initCmd);
130
+ }
131
+
132
+ return [initializedModel, dispatch];
133
+ }
134
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sZWdhY3kvdXNlRWxtaXNoTWFwLnRzIl0sIm5hbWVzIjpbInVzZUVsbWlzaE1hcCIsInByb3BzIiwiaW5pdCIsInVwZGF0ZU1hcCIsIm5hbWUiLCJyZWVudGVyZWQiLCJidWZmZXIiLCJjdXJyZW50TW9kZWwiLCJtb2RlbCIsInNldE1vZGVsIiwiaW5pdGlhbGl6ZWRNb2RlbCIsImV4ZWNDbWQiLCJjbWQiLCJmb3JFYWNoIiwiY2FsbCIsImRpc3BhdGNoIiwiZXgiLCJMb2dnZXJTZXJ2aWNlIiwiZXJyb3IiLCJtc2ciLCJtb2RlbEhhc0NoYW5nZWQiLCJ1cGRhdGVkTW9kZWwiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwibGVuZ3RoIiwiZGlzcGF0Y2hNaWRkbGV3YXJlIiwicHVzaCIsIm5leHRNc2ciLCJtb2RpZmllZCIsImluZm8iLCJkZWJ1ZyIsIm5ld01vZGVsIiwic2hpZnQiLCJwcmV2TW9kZWwiLCJpbml0TW9kZWwiLCJpbml0Q21kIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0E7O0FBRUE7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNBLFlBQVQsQ0FBcUVDLEtBQXJFLEVBQW9GQyxJQUFwRixFQUFzSUMsU0FBdEksRUFBc0xDLElBQXRMLEVBQWtPO0FBQ3JPLE1BQUlDLFNBQVMsR0FBRyxLQUFoQjtBQUNBLE1BQU1DLE1BQW1CLEdBQUcsRUFBNUI7QUFDQSxNQUFJQyxZQUE2QixHQUFHLEVBQXBDOztBQUVBLGtCQUEwQixxQkFBMkIsSUFBM0IsQ0FBMUI7QUFBQTtBQUFBLE1BQU9DLEtBQVA7QUFBQSxNQUFjQyxRQUFkOztBQUNBLE1BQUlDLGdCQUFnQixHQUFHRixLQUF2QjtBQUVBLE1BQU1HLE9BQU8sR0FBRyx3QkFBWSxVQUFDQyxHQUFELEVBQThCO0FBQ3REQSxJQUFBQSxHQUFHLENBQUNDLE9B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bXBvcnQgeyBDbWQsIERpc3BhdGNoIH0gZnJvbSBcIi4uL0NtZFwiO1xuaW1wb3J0IHsgZGlzcGF0Y2hNaWRkbGV3YXJlLCBMb2dnZXJTZXJ2aWNlIH0gZnJvbSBcIi4uL0luaXRcIjtcbmltcG9ydCB7IE1lc3NhZ2VCYXNlLCBOdWxsYWJsZSwgVXBkYXRlTWFwIH0gZnJvbSBcIi4uL0VsbVV0aWxpdGllc1wiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBjYWxsVXBkYXRlTWFwIH0gZnJvbSBcIi4uL3VzZUVsbWlzaFwiO1xuXG4vKipcbiAqIEhvb2sgdG8gdXNlIHRoZSBFbG0gYXJjaGl0ZWN0dXJlIHBhdHRlcm4gaW4gYSBmdW5jdGlvbiBjb21wb25lbnQuXG4gKiBAcGFyYW0gcHJvcHMgVGhlIHByb3BzIG9mIHRoZSBjb21wb25lbnQuXG4gKiBAcGFyYW0gaW5pdCBGdW5jdGlvbiB0byBpbml0aWFsaXplIHRoZSBtb2RlbC5cbiAqIEBwYXJhbSB1cGRhdGVNYXAgVGhlIHVwZGF0ZSBtYXAgb2JqZWN0LlxuICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudC5cbiAqIEByZXR1cm5zIEEgdHVwbGUgY29udGFpbmluZyB0aGUgY3VycmVudCBtb2RlbCBhbmQgdGhlIGRpc3BhdGNoZXIuXG4gKiBAZXhhbXBsZVxuICogY29uc3QgW21vZGVsLCBkaXNwYXRjaF0gPSB1c2VFbG1pc2hNYXAocHJvcHMsIGluaXQsIHVwZGF0ZU1hcCwgXCJNeUNvbXBvbmVudFwiKTtcbiAqIEBkZXByZWNhdGVkIFVzZSBgdXNlRWxtaXNoYCB3aXRoIGFuIG9wdGlvbnMgb2JqZWN0IGluc3RlYWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VFbG1pc2hNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+IChwcm9wczogVFByb3BzLCBpbml0OiAocHJvcHM6IFRQcm9wcykgPT4gW1RNb2RlbCwgQ21kPFRNZXNzYWdlPl0sIHVwZGF0ZU1hcDogVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sIG5hbWU6IHN0cmluZyk6IFtUTW9kZWwsIERpc3BhdGNoPFRNZXNzYWdlPl0ge1xuICAgIGxldCByZWVudGVyZWQgPSBmYWxzZTtcbiAgICBjb25zdCBidWZmZXI6IFRNZXNzYWdlIFtdID0gW107XG4gICAgbGV0IGN1cnJlbnRNb2RlbDogUGFydGlhbDxUTW9kZWw+ID0ge307XG5cbiAgICBjb25zdCBbbW9kZWwsIHNldE1vZGVsXSA9IHVzZVN0YXRlPE51bGxhYmxlPFRNb2RlbD4+KG51bGwpO1xuICAgIGxldCBpbml0aWFsaXplZE1vZGVsID0gbW9kZWw7XG5cbiAgICBjb25zdCBleGVjQ21kID0gdXNlQ2FsbGJhY2soKGNtZDogQ21kPFRNZXNzYWdlPik6IHZvaWQgPT4ge1xuICAgICAgICBjbWQuZm9yRWFjaChjYWxsID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY2FsbChkaXNwYXRjaCk7XG4gICAgICAgICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICAgICAgICAgIExvZ2dlclNlcnZpY2U/LmVycm9yKGV4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3QgZGlzcGF0Y2ggPSB1c2VDYWxsYmFjaygobXNnOiBUTWVzc2FnZSk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1vZGVsSGFzQ2hhbmdlZCA9ICh1cGRhdGVkTW9kZWw6IFBhcnRpYWw8VE1vZGVsPik6IGJvb2xlYW4gPT4gdXBkYXRlZE1vZGVsICE9PSBpbml0aWFsaXplZE1vZGVsICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHVwZGF0ZWRNb2RlbCkubGVuZ3RoID4gMDtcblxuICAgICAgICBpZiAoZGlzcGF0Y2hNaWRkbGV3YXJlKSB7XG4gICAgICAgICAgICBkaXNwYXRjaE1pZGRsZXdhcmUobXNnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZWVudGVyZWQpIHtcbiAgICAgICAgICAgIGJ1ZmZlci5wdXNoKG1zZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWVudGVyZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICBsZXQgbmV4dE1zZzogVE1lc3NhZ2UgfCB1bmRlZmluZWQgPSBtc2c7XG4gICAgICAgICAgICBsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgd2hpbGUgKG5leHRNc2cpIHtcbiAgICAgICAgICAgICAgICBMb2dnZXJTZXJ2aWNlPy5pbmZvKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIG5hbWUsIG5leHRNc2cubmFtZSk7XG4gICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uZGVidWcoXCJFbG1cIiwgXCJtZXNzYWdlIGZyb21cIiwgbmFtZSwgbmV4dE1zZyk7XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBbbmV3TW9kZWwsIGNtZF0gPSBjYWxsVXBkYXRlTWFwKHVwZGF0ZU1hcCwgbmV4dE1zZywgeyAuLi5pbml0aWFsaXplZE1vZGVsLCAuLi5jdXJyZW50TW9kZWwgfSwgcHJvcHMpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChtb2RlbEhhc0NoYW5nZWQobmV3TW9kZWwpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50TW9kZWwgPSB7IC4uLmN1cnJlbnRNb2RlbCwgLi4ubmV3TW9kZWwgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGNtZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXhlY0NtZChjbWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uZXJyb3IoZXgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG5leHRNc2cgPSBidWZmZXIuc2hpZnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlZW50ZXJlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAobW9kaWZpZWQpIHtcbiAgICAgICAgICAgICAgICBzZXRNb2RlbChwcmV2TW9kZWwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkTW9kZWwgPSB7IC4uLnByZXZNb2RlbCBhcyBUTW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9O1xuXG4gICAgICAgICAgICAgICAgICAgIExvZ2dlclNlcnZpY2U/LmRlYnVnKFwiRWxtXCIsIFwidXBkYXRlIG1vZGVsIGZvclwiLCBuYW1lLCB1cGRhdGVkTW9kZWwpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB1cGRhdGVkTW9kZWw7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG5cbiAgICBpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcbiAgICAgICAgY29uc3QgW2luaXRNb2RlbCwgaW5pdENtZF0gPSBpbml0KHByb3BzKTtcblxuICAgICAgICBpbml0aWFsaXplZE1vZGVsID0gaW5pdE1vZGVsO1xuICAgICAgICBzZXRNb2RlbChpbml0aWFsaXplZE1vZGVsKTtcblxuICAgICAgICBleGVjQ21kKGluaXRDbWQpO1xuICAgIH1cblxuICAgIHJldHVybiBbaW5pdGlhbGl6ZWRNb2RlbCwgZGlzcGF0Y2hdO1xufSJdfQ==
@@ -1,4 +1,20 @@
1
1
  import { Cmd, Dispatch } from "./Cmd";
2
- import { MessageBase } from "./ElmUtilities";
3
- import { UpdateFunction } from "./ElmComponent";
4
- export declare function useElmish<TProps, TModel, TMsg extends MessageBase>(props: TProps, init: (props: TProps) => [TModel, Cmd<TMsg>], update: UpdateFunction<TProps, TModel, TMsg>, name: string): [TModel, Dispatch<TMsg>];
2
+ import { MessageBase, UpdateMap } from "./ElmUtilities";
3
+ import { UpdateFunction, UpdateReturnType } from "./ElmComponent";
4
+ interface UseElmishOptions<TProps, TModel, TMessage extends MessageBase> {
5
+ props: TProps;
6
+ init: (props: TProps) => [TModel, Cmd<TMessage>];
7
+ update: UpdateFunction<TProps, TModel, TMessage> | UpdateMap<TProps, TModel, TMessage>;
8
+ name: string;
9
+ }
10
+ /**
11
+ * Hook to use the Elm architecture pattern in a function component.
12
+ * @param {UseElmishOptions} options The options passed the the hook.
13
+ * @returns A tuple containing the current model and the dispatcher.
14
+ * @example
15
+ * const [model, dispatch] = useElmish({ props, init, update, name: "MyComponent" });
16
+ */
17
+ export declare function useElmish<TProps, TModel, TMessage extends MessageBase>({ props, init, update, name }: UseElmishOptions<TProps, TModel, TMessage>): [TModel, Dispatch<TMessage>];
18
+ export declare function callUpdate<TProps, TModel, TMessage extends MessageBase>(update: UpdateFunction<TProps, TModel, TMessage> | UpdateMap<TProps, TModel, TMessage>, msg: TMessage, model: TModel, props: TProps): UpdateReturnType<TModel, TMessage>;
19
+ export declare function callUpdateMap<TProps, TModel, TMessage extends MessageBase>(updateMap: UpdateMap<TProps, TModel, TMessage>, msg: TMessage, model: TModel, props: TProps): UpdateReturnType<TModel, TMessage>;
20
+ export {};
package/dist/useElmish.js CHANGED
@@ -3,6 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.callUpdate = callUpdate;
7
+ exports.callUpdateMap = callUpdateMap;
6
8
  exports.useElmish = useElmish;
7
9
 
8
10
  var _Init = require("./Init");
@@ -27,7 +29,18 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
27
29
 
28
30
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
29
31
 
30
- function useElmish(props, init, update, name) {
32
+ /**
33
+ * Hook to use the Elm architecture pattern in a function component.
34
+ * @param {UseElmishOptions} options The options passed the the hook.
35
+ * @returns A tuple containing the current model and the dispatcher.
36
+ * @example
37
+ * const [model, dispatch] = useElmish({ props, init, update, name: "MyComponent" });
38
+ */
39
+ function useElmish(_ref) {
40
+ var props = _ref.props,
41
+ init = _ref.init,
42
+ update = _ref.update,
43
+ name = _ref.name;
31
44
  var reentered = false;
32
45
  var buffer = [];
33
46
  var currentModel = {};
@@ -72,10 +85,10 @@ function useElmish(props, init, update, name) {
72
85
  _Init.LoggerService === null || _Init.LoggerService === void 0 ? void 0 : _Init.LoggerService.debug("Elm", "message from", name, nextMsg);
73
86
 
74
87
  try {
75
- var _update = update(_objectSpread(_objectSpread({}, initializedModel), currentModel), nextMsg, props),
76
- _update2 = _slicedToArray(_update, 2),
77
- newModel = _update2[0],
78
- cmd = _update2[1];
88
+ var _callUpdate = callUpdate(update, nextMsg, _objectSpread(_objectSpread({}, initializedModel), currentModel), props),
89
+ _callUpdate2 = _slicedToArray(_callUpdate, 2),
90
+ newModel = _callUpdate2[0],
91
+ cmd = _callUpdate2[1];
79
92
 
80
93
  if (modelHasChanged(newModel)) {
81
94
  currentModel = _objectSpread(_objectSpread({}, currentModel), newModel);
@@ -118,4 +131,18 @@ function useElmish(props, init, update, name) {
118
131
 
119
132
  return [initializedModel, dispatch];
120
133
  }
121
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91c2VFbG1pc2gudHMiXSwibmFtZXMiOlsidXNlRWxtaXNoIiwicHJvcHMiLCJpbml0IiwidXBkYXRlIiwibmFtZSIsInJlZW50ZXJlZCIsImJ1ZmZlciIsImN1cnJlbnRNb2RlbCIsIm1vZGVsIiwic2V0TW9kZWwiLCJpbml0aWFsaXplZE1vZGVsIiwiZXhlY0NtZCIsImNtZCIsImZvckVhY2giLCJjYWxsIiwiZGlzcGF0Y2giLCJleCIsIkxvZ2dlclNlcnZpY2UiLCJlcnJvciIsIm1zZyIsIm1vZGVsSGFzQ2hhbmdlZCIsInVwZGF0ZWRNb2RlbCIsIk9iamVjdCIsImdldE93blByb3BlcnR5TmFtZXMiLCJsZW5ndGgiLCJkaXNwYXRjaE1pZGRsZXdhcmUiLCJwdXNoIiwibmV4dE1zZyIsIm1vZGlmaWVkIiwiaW5mbyIsImRlYnVnIiwibmV3TW9kZWwiLCJzaGlmdCIsInByZXZNb2RlbCIsImluaXRNb2RlbCIsImluaXRDbWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHTyxTQUFTQSxTQUFULENBQThEQyxLQUE5RCxFQUE2RUMsSUFBN0UsRUFBMkhDLE1BQTNILEVBQXlLQyxJQUF6SyxFQUFpTjtBQUNwTixNQUFJQyxTQUFTLEdBQUcsS0FBaEI7QUFDQSxNQUFNQyxNQUFlLEdBQUcsRUFBeEI7QUFDQSxNQUFJQyxZQUE2QixHQUFHLEVBQXBDOztBQUVBLGtCQUEwQixxQkFBMkIsSUFBM0IsQ0FBMUI7QUFBQTtBQUFBLE1BQU9DLEtBQVA7QUFBQSxNQUFjQyxRQUFkOztBQUNBLE1BQUlDLGdCQUFnQixHQUFHRixLQUF2QjtBQUVBLE1BQU1HLE9BQU8sR0FBRyx3QkFBWSxVQUFDQyxHQUFELEVBQTBCO0FBQ2xEQSxJQUFBQSxHQUFHLENBQUNDLE9BQUosQ0FBWSxVQUFBQyxJQUFJLEVBQUk7QUFDaEIsVUFBSTtBQUNBQSxRQUFBQSxJQUFJLENBQUNDLFFBQUQsQ0FBSjtBQUNILE9BRkQsQ0FFRSxPQUFPQyxFQUFQLEVBQW9CO0FBQ2xCQyxzR0FBZUMsS0FBZixDQUFxQkYsRUFBckI7QUFDSDtBQUNKLEtBTkQ7QUFPSCxHQVJlLEVBUWIsRUFSYSxDQUFoQjtBQVVBLE1BQU1ELFFBQVEsR0FBRyx3QkFBWSxVQUFDSSxHQUFELEVBQXFCO0FBQzlDLFFBQUksQ0FBQ1QsZ0JBQUwsRUFBdUI7QUFDbkI7QUFDSDs7QUFFRCxRQUFNVSxlQUFlLEdBQUcsU0FBbEJBLGVBQWtCLENBQUNDLFlBQUQ7QUFBQSxhQUE0Q0EsWUFBWSxLQUFLWCxnQkFBakIsSUFBcUNZLE1BQU0sQ0FBQ0MsbUJBQVAsQ0FBMkJGLFlBQTNCLEVBQXlDRyxNQUF6QyxHQUFrRCxDQUFuSTtBQUFBLEtBQXhCOztBQUVBLFFBQUlDLHdCQUFKLEVBQXdCO0FBQ3BCLG9DQUFtQk4sR0FBbkI7QUFDSDs7QUFFRCxRQUFJZCxTQUFKLEVBQWU7QUFDWEMsTUFBQUEsTUFBTSxDQUFDb0IsSUFBUCxDQUFZUCxHQUFaO0FBQ0gsS0FGRCxNQUVPO0FBQ0hkLE1BQUFBLFNBQVMsR0FBRyxJQUFaO0FBRUEsVUFBSXNCLE9BQXlCLEdBQUdSLEdBQWhDO0FBQ0EsVUFBSVMsUUFBUSxHQUFHLEtBQWY7O0FBRUEsYUFBT0QsT0FBUCxFQUFnQjtBQUNaVixzR0FBZVksSUFBZixDQUFvQixLQUFwQixFQUEyQixjQUEzQixFQUEyQ3pCLElBQTNDLEVBQWlEdUIsT0FBTyxDQUFDdkIsSUFBekQ7QUFDQWEsc0dBQWVhLEtBQWYsQ0FBcUIsS0FBckIsRUFBNEIsY0FBNUIsRUFBNEMxQixJQUE1QyxFQUFrRHVCLE9BQWxEOztBQUVBLFlBQUk7QUFDQSx3QkFBd0J4QixNQUFNLGlDQUFNTyxnQkFBTixHQUEyQkgsWUFBM0IsR0FBMkNvQixPQUEzQyxFQUFvRDFCLEtBQXBELENBQTlCO0FBQUE7QUFBQSxjQUFPOEIsUUFBUDtBQUFBLGNBQWlCbkIsR0FBakI7O0FBRUEsY0FBSVEsZUFBZSxDQUFDVyxRQUFELENBQW5CLEVBQStCO0FBQzNCeEIsWUFBQUEsWUFBWSxtQ0FBUUEsWUFBUixHQUF5QndCLFFBQXpCLENBQVo7QUFFQUgsWUFBQUEsUUFBUSxHQUFHLElBQVg7QUFDSDs7QUFFRCxjQUFJaEIsR0FBSixFQUFTO0FBQ0xELFlBQUFBLE9BQU8sQ0FBQ0MsR0FBRCxDQUFQO0FBQ0g7QUFDSixTQVpELENBWUUsT0FBT0ksRUFBUCxFQUFvQjtBQUNsQkMsd0dBQWVDLEtBQWYsQ0FBcUJGLEVBQXJCO0FBQ0g7O0FBRURXLFFBQUFBLE9BQU8sR0FBR3JCLE1BQU0sQ0FBQzBCLEtBQVAsRUFBVjtBQUNIOztBQUNEM0IsTUFBQUEsU0FBUyxHQUFHLEtBQVo7O0FBRUEsVUFBSXVCLFFBQUosRUFBYztBQUNWbkIsUUFBQUEsUUFBUSxDQUFDLFVBQUF3QixTQUFTLEVBQUk7QUFDbEIsY0FBTVosWUFBWSxtQ0FBUVksU0FBUixHQUFnQzFCLFlBQWhDLENBQWxCOztBQUVBVSx3R0FBZWEsS0FBZixDQUFxQixLQUFyQixFQUE0QixrQkFBNUIsRUFBZ0QxQixJQUFoRCxFQUFzRGlCLFlBQXREO0FBRUEsaUJBQU9BLFlBQVA7QUFDSCxTQU5PLENBQVI7QUFPSDtBQUNKO0FBQ0osR0FyRGdCLEVBcURkLEVBckRjLENBQWpCOztBQXVEQSxNQUFJLENBQUNYLGdCQUFMLEVBQXVCO0FBQ25CLGdCQUE2QlIsSUFBSSxDQUFDRCxLQUFELENBQWpDO0FBQUE7QUFBQSxRQUFPaUMsU0FBUDtBQUFBLFFBQWtCQyxPQUFsQjs7QUFFQXpCLElBQUFBLGdCQUFnQixHQUFHd0IsU0FBbkI7QUFDQXpCLElBQUFBLFFBQVEsQ0FBQ0MsZ0JBQUQsQ0FBUjtBQUVBQyxJQUFBQSxPQUFPLENBQUN3QixPQUFELENBQVA7QUFDSDs7QUFFRCxTQUFPLENBQUN6QixnQkFBRCxFQUFtQkssUUFBbkIsQ0FBUDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ21kLCBEaXNwYXRjaCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgZGlzcGF0Y2hNaWRkbGV3YXJlLCBMb2dnZXJTZXJ2aWNlIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHsgTWVzc2FnZUJhc2UsIE51bGxhYmxlIH0gZnJvbSBcIi4vRWxtVXRpbGl0aWVzXCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFVwZGF0ZUZ1bmN0aW9uIH0gZnJvbSBcIi4vRWxtQ29tcG9uZW50XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VFbG1pc2g8VFByb3BzLCBUTW9kZWwsIFRNc2cgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKHByb3BzOiBUUHJvcHMsIGluaXQ6IChwcm9wczogVFByb3BzKSA9PiBbVE1vZGVsLCBDbWQ8VE1zZz5dLCB1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTXNnPiwgbmFtZTogc3RyaW5nKTogW1RNb2RlbCwgRGlzcGF0Y2g8VE1zZz5dIHtcbiAgICBsZXQgcmVlbnRlcmVkID0gZmFsc2U7XG4gICAgY29uc3QgYnVmZmVyOiBUTXNnIFtdID0gW107XG4gICAgbGV0IGN1cnJlbnRNb2RlbDogUGFydGlhbDxUTW9kZWw+ID0ge307XG5cbiAgICBjb25zdCBbbW9kZWwsIHNldE1vZGVsXSA9IHVzZVN0YXRlPE51bGxhYmxlPFRNb2RlbD4+KG51bGwpO1xuICAgIGxldCBpbml0aWFsaXplZE1vZGVsID0gbW9kZWw7XG5cbiAgICBjb25zdCBleGVjQ21kID0gdXNlQ2FsbGJhY2soKGNtZDogQ21kPFRNc2c+KTogdm9pZCA9PiB7XG4gICAgICAgIGNtZC5mb3JFYWNoKGNhbGwgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjYWxsKGRpc3BhdGNoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGV4OiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uZXJyb3IoZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBkaXNwYXRjaCA9IHVzZUNhbGxiYWNrKChtc2c6IFRNc2cpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKCFpbml0aWFsaXplZE1vZGVsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtb2RlbEhhc0NoYW5nZWQgPSAodXBkYXRlZE1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4pOiBib29sZWFuID0+IHVwZGF0ZWRNb2RlbCAhPT0gaW5pdGlhbGl6ZWRNb2RlbCAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh1cGRhdGVkTW9kZWwpLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgaWYgKGRpc3BhdGNoTWlkZGxld2FyZSkge1xuICAgICAgICAgICAgZGlzcGF0Y2hNaWRkbGV3YXJlKG1zZyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVlbnRlcmVkKSB7XG4gICAgICAgICAgICBidWZmZXIucHVzaChtc2cpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVlbnRlcmVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgbGV0IG5leHRNc2c6IFRNc2cgfCB1bmRlZmluZWQgPSBtc2c7XG4gICAgICAgICAgICBsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgd2hpbGUgKG5leHRNc2cpIHtcbiAgICAgICAgICAgICAgICBMb2dnZXJTZXJ2aWNlPy5pbmZvKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIG5hbWUsIG5leHRNc2cubmFtZSk7XG4gICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uZGVidWcoXCJFbG1cIiwgXCJtZXNzYWdlIGZyb21cIiwgbmFtZSwgbmV4dE1zZyk7XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBbbmV3TW9kZWwsIGNtZF0gPSB1cGRhdGUoeyAuLi5pbml0aWFsaXplZE1vZGVsLCAuLi5jdXJyZW50TW9kZWwgfSwgbmV4dE1zZywgcHJvcHMpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChtb2RlbEhhc0NoYW5nZWQobmV3TW9kZWwpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50TW9kZWwgPSB7IC4uLmN1cnJlbnRNb2RlbCwgLi4ubmV3TW9kZWwgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGNtZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXhlY0NtZChjbWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uZXJyb3IoZXgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG5leHRNc2cgPSBidWZmZXIuc2hpZnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlZW50ZXJlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAobW9kaWZpZWQpIHtcbiAgICAgICAgICAgICAgICBzZXRNb2RlbChwcmV2TW9kZWwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkTW9kZWwgPSB7IC4uLnByZXZNb2RlbCBhcyBUTW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9O1xuXG4gICAgICAgICAgICAgICAgICAgIExvZ2dlclNlcnZpY2U/LmRlYnVnKFwiRWxtXCIsIFwidXBkYXRlIG1vZGVsIGZvclwiLCBuYW1lLCB1cGRhdGVkTW9kZWwpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB1cGRhdGVkTW9kZWw7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG5cbiAgICBpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcbiAgICAgICAgY29uc3QgW2luaXRNb2RlbCwgaW5pdENtZF0gPSBpbml0KHByb3BzKTtcblxuICAgICAgICBpbml0aWFsaXplZE1vZGVsID0gaW5pdE1vZGVsO1xuICAgICAgICBzZXRNb2RlbChpbml0aWFsaXplZE1vZGVsKTtcblxuICAgICAgICBleGVjQ21kKGluaXRDbWQpO1xuICAgIH1cblxuICAgIHJldHVybiBbaW5pdGlhbGl6ZWRNb2RlbCwgZGlzcGF0Y2hdO1xufSJdfQ==
134
+
135
+ function callUpdate(update, msg, model, props) {
136
+ if (typeof update === "function") {
137
+ return update(model, msg, props);
138
+ }
139
+
140
+ return callUpdateMap(update, msg, model, props);
141
+ }
142
+
143
+ function callUpdateMap(updateMap, msg, model, props) {
144
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
145
+ // @ts-expect-error -- We know that nextMsg fits
146
+ return updateMap[msg.name](msg, model, props);
147
+ }
148
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91c2VFbG1pc2gudHMiXSwibmFtZXMiOlsidXNlRWxtaXNoIiwicHJvcHMiLCJpbml0IiwidXBkYXRlIiwibmFtZSIsInJlZW50ZXJlZCIsImJ1ZmZlciIsImN1cnJlbnRNb2RlbCIsIm1vZGVsIiwic2V0TW9kZWwiLCJpbml0aWFsaXplZE1vZGVsIiwiZXhlY0NtZCIsImNtZCIsImZvckVhY2giLCJjYWxsIiwiZGlzcGF0Y2giLCJleCIsIkxvZ2dlclNlcnZpY2UiLCJlcnJvciIsIm1zZyIsIm1vZGVsSGFzQ2hhbmdlZCIsInVwZGF0ZWRNb2RlbCIsIk9iamVjdCIsImdldE93blByb3BlcnR5TmFtZXMiLCJsZW5ndGgiLCJkaXNwYXRjaE1pZGRsZXdhcmUiLCJwdXNoIiwibmV4dE1zZyIsIm1vZGlmaWVkIiwiaW5mbyIsImRlYnVnIiwiY2FsbFVwZGF0ZSIsIm5ld01vZGVsIiwic2hpZnQiLCJwcmV2TW9kZWwiLCJpbml0TW9kZWwiLCJpbml0Q21kIiwiY2FsbFVwZGF0ZU1hcCIsInVwZGF0ZU1hcCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQ0E7O0FBR0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxTQUFTQSxTQUFULE9BQTJLO0FBQUEsTUFBdkdDLEtBQXVHLFFBQXZHQSxLQUF1RztBQUFBLE1BQWhHQyxJQUFnRyxRQUFoR0EsSUFBZ0c7QUFBQSxNQUExRkMsTUFBMEYsUUFBMUZBLE1BQTBGO0FBQUEsTUFBbEZDLElBQWtGLFFBQWxGQSxJQUFrRjtBQUM5SyxNQUFJQyxTQUFTLEdBQUcsS0FBaEI7QUFDQSxNQUFNQyxNQUFtQixHQUFHLEVBQTVCO0FBQ0EsTUFBSUMsWUFBNkIsR0FBRyxFQUFwQzs7QUFFQSxrQkFBMEIscUJBQTJCLElBQTNCLENBQTFCO0FBQUE7QUFBQSxNQUFPQyxLQUFQO0FBQUEsTUFBY0MsUUFBZDs7QUFDQSxNQUFJQyxnQkFBZ0IsR0FBR0YsS0FBdkI7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QUFDSDs7QUFFRCxTQUFPLENBQUMxQixnQkFBRCxFQUFtQkssUUFBbkIsQ0FBUDtBQUNIOztBQUVNLFNBQVNnQixVQUFULENBQW1FNUIsTUFBbkUsRUFBMkpnQixHQUEzSixFQUEwS1gsS0FBMUssRUFBeUxQLEtBQXpMLEVBQTRPO0FBQy9PLE1BQUksT0FBT0UsTUFBUCxLQUFrQixVQUF0QixFQUFrQztBQUM5QixXQUFPQSxNQUFNLENBQUNLLEtBQUQsRUFBUVcsR0FBUixFQUFhbEIsS0FBYixDQUFiO0FBQ0g7O0FBRUQsU0FBT29DLGFBQWEsQ0FBQ2xDLE1BQUQsRUFBU2dCLEdBQVQsRUFBY1gsS0FBZCxFQUFxQlAsS0FBckIsQ0FBcEI7QUFDSDs7QUFFTSxTQUFTb0MsYUFBVCxDQUFzRUMsU0FBdEUsRUFBc0huQixHQUF0SCxFQUFxSVgsS0FBckksRUFBb0pQLEtBQXBKLEVBQXVNO0FBQzFNO0FBQ0E7QUFDQSxTQUFPcUMsU0FBUyxDQUFDbkIsR0FBRyxDQUFDZixJQUFMLENBQVQsQ0FBd0NlLEdBQXhDLEVBQTZDWCxLQUE3QyxFQUFvRFAsS0FBcEQsQ0FBUDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ21kLCBEaXNwYXRjaCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgZGlzcGF0Y2hNaWRkbGV3YXJlLCBMb2dnZXJTZXJ2aWNlIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHsgTWVzc2FnZUJhc2UsIE51bGxhYmxlLCBVcGRhdGVNYXAgfSBmcm9tIFwiLi9FbG1VdGlsaXRpZXNcIjtcbmltcG9ydCB7IFVwZGF0ZUZ1bmN0aW9uLCBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4vRWxtQ29tcG9uZW50XCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcblxuaW50ZXJmYWNlIFVzZUVsbWlzaE9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+IHtcbiAgICBwcm9wczogVFByb3BzLFxuICAgIGluaXQ6IChwcm9wczogVFByb3BzKSA9PiBbVE1vZGVsLCBDbWQ8VE1lc3NhZ2U+XSxcbiAgICB1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcbiAgICBuYW1lOiBzdHJpbmcsXG59XG5cbi8qKlxuICogSG9vayB0byB1c2UgdGhlIEVsbSBhcmNoaXRlY3R1cmUgcGF0dGVybiBpbiBhIGZ1bmN0aW9uIGNvbXBvbmVudC5cbiAqIEBwYXJhbSB7VXNlRWxtaXNoT3B0aW9uc30gb3B0aW9ucyBUaGUgb3B0aW9ucyBwYXNzZWQgdGhlIHRoZSBob29rLlxuICogQHJldHVybnMgQSB0dXBsZSBjb250YWluaW5nIHRoZSBjdXJyZW50IG1vZGVsIGFuZCB0aGUgZGlzcGF0Y2hlci5cbiAqIEBleGFtcGxlXG4gKiBjb25zdCBbbW9kZWwsIGRpc3BhdGNoXSA9IHVzZUVsbWlzaCh7IHByb3BzLCBpbml0LCB1cGRhdGUsIG5hbWU6IFwiTXlDb21wb25lbnRcIiB9KTtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUVsbWlzaDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKHsgcHJvcHMsIGluaXQsIHVwZGF0ZSwgbmFtZSB9OiBVc2VFbG1pc2hPcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pOiBbVE1vZGVsLCBEaXNwYXRjaDxUTWVzc2FnZT5dIHtcbiAgICBsZXQgcmVlbnRlcmVkID0gZmFsc2U7XG4gICAgY29uc3QgYnVmZmVyOiBUTWVzc2FnZSBbXSA9IFtdO1xuICAgIGxldCBjdXJyZW50TW9kZWw6IFBhcnRpYWw8VE1vZGVsPiA9IHt9O1xuXG4gICAgY29uc3QgW21vZGVsLCBzZXRNb2RlbF0gPSB1c2VTdGF0ZTxOdWxsYWJsZTxUTW9kZWw+PihudWxsKTtcbiAgICBsZXQgaW5pdGlhbGl6ZWRNb2RlbCA9IG1vZGVsO1xuXG4gICAgY29uc3QgZXhlY0NtZCA9IHVzZUNhbGxiYWNrKChjbWQ6IENtZDxUTWVzc2FnZT4pOiB2b2lkID0+IHtcbiAgICAgICAgY21kLmZvckVhY2goY2FsbCA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNhbGwoZGlzcGF0Y2gpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICBMb2dnZXJTZXJ2aWNlPy5lcnJvcihleCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IGRpc3BhdGNoID0gdXNlQ2FsbGJhY2soKG1zZzogVE1lc3NhZ2UpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKCFpbml0aWFsaXplZE1vZGVsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtb2RlbEhhc0NoYW5nZWQgPSAodXBkYXRlZE1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4pOiBib29sZWFuID0+IHVwZGF0ZWRNb2RlbCAhPT0gaW5pdGlhbGl6ZWRNb2RlbCAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh1cGRhdGVkTW9kZWwpLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgaWYgKGRpc3BhdGNoTWlkZGxld2FyZSkge1xuICAgICAgICAgICAgZGlzcGF0Y2hNaWRkbGV3YXJlKG1zZyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVlbnRlcmVkKSB7XG4gICAgICAgICAgICBidWZmZXIucHVzaChtc2cpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVlbnRlcmVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgbGV0IG5leHRNc2c6IFRNZXNzYWdlIHwgdW5kZWZpbmVkID0gbXNnO1xuICAgICAgICAgICAgbGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHdoaWxlIChuZXh0TXNnKSB7XG4gICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uaW5mbyhcIkVsbVwiLCBcIm1lc3NhZ2UgZnJvbVwiLCBuYW1lLCBuZXh0TXNnLm5hbWUpO1xuICAgICAgICAgICAgICAgIExvZ2dlclNlcnZpY2U/LmRlYnVnKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIG5hbWUsIG5leHRNc2cpO1xuXG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgW25ld01vZGVsLCBjbWRdID0gY2FsbFVwZGF0ZSh1cGRhdGUsIG5leHRNc2csIHsgLi4uaW5pdGlhbGl6ZWRNb2RlbCwgLi4uY3VycmVudE1vZGVsIH0sIHByb3BzKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAobW9kZWxIYXNDaGFuZ2VkKG5ld01vZGVsKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudE1vZGVsID0geyAuLi5jdXJyZW50TW9kZWwsIC4uLm5ld01vZGVsIH07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjbWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWNDbWQoY21kKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGV4OiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgICAgIExvZ2dlclNlcnZpY2U/LmVycm9yKGV4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBuZXh0TXNnID0gYnVmZmVyLnNoaWZ0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZWVudGVyZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKG1vZGlmaWVkKSB7XG4gICAgICAgICAgICAgICAgc2V0TW9kZWwocHJldk1vZGVsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZE1vZGVsID0geyAuLi5wcmV2TW9kZWwgYXMgVE1vZGVsLCAuLi5jdXJyZW50TW9kZWwgfTtcblxuICAgICAgICAgICAgICAgICAgICBMb2dnZXJTZXJ2aWNlPy5kZWJ1ZyhcIkVsbVwiLCBcInVwZGF0ZSBtb2RlbCBmb3JcIiwgbmFtZSwgdXBkYXRlZE1vZGVsKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlZE1vZGVsO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwgW10pO1xuXG4gICAgaWYgKCFpbml0aWFsaXplZE1vZGVsKSB7XG4gICAgICAgIGNvbnN0IFtpbml0TW9kZWwsIGluaXRDbWRdID0gaW5pdChwcm9wcyk7XG5cbiAgICAgICAgaW5pdGlhbGl6ZWRNb2RlbCA9IGluaXRNb2RlbDtcbiAgICAgICAgc2V0TW9kZWwoaW5pdGlhbGl6ZWRNb2RlbCk7XG5cbiAgICAgICAgZXhlY0NtZChpbml0Q21kKTtcbiAgICB9XG5cbiAgICByZXR1cm4gW2luaXRpYWxpemVkTW9kZWwsIGRpc3BhdGNoXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGxVcGRhdGU8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+ICh1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiwgbXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcyk6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuICAgIGlmICh0eXBlb2YgdXBkYXRlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZShtb2RlbCwgbXNnLCBwcm9wcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNhbGxVcGRhdGVNYXAodXBkYXRlLCBtc2csIG1vZGVsLCBwcm9wcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxsVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlPiAodXBkYXRlTWFwOiBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiwgbXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcyk6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIC0tIFdlIGtub3cgdGhhdCBuZXh0TXNnIGZpdHNcbiAgICByZXR1cm4gdXBkYXRlTWFwW21zZy5uYW1lIGFzIFRNZXNzYWdlW1wibmFtZVwiXV0obXNnLCBtb2RlbCwgcHJvcHMpO1xufSJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-elmish",
3
- "version": "2.2.0",
3
+ "version": "3.0.0",
4
4
  "description": "Elmish for React using Typescript",
5
5
  "author": "atheck",
6
6
  "license": "MIT",
@@ -1,5 +0,0 @@
1
- import { Cmd, Dispatch } from "./Cmd";
2
- import { MessageBase, UpdateMap } from "./ElmUtilities";
3
- import { UpdateReturnType } from "./ElmComponent";
4
- export declare function useElmishMap<TProps, TModel, TMsg extends MessageBase>(props: TProps, init: (props: TProps) => [TModel, Cmd<TMsg>], updateMap: UpdateMap<TProps, TModel, TMsg>, name: string): [TModel, Dispatch<TMsg>];
5
- export declare function callUpdateMap<TProps, TModel, TMessage extends MessageBase>(updateMap: UpdateMap<TProps, TModel, TMessage>, msg: TMessage, model: TModel, props: TProps): UpdateReturnType<TModel, TMessage>;