react-elmish 1.4.4

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.
@@ -0,0 +1,17 @@
1
+ import { UpdateReturnType } from "./ElmComponent";
2
+ /**
3
+ * Handles an error.
4
+ * Logs the error if a Logger was specified.
5
+ * Calls the error handling middleware if specified.
6
+ * @param {Error} error The error.
7
+ */
8
+ export declare const handleError: <TModel, TMsg>(error: Error) => UpdateReturnType<TModel, TMsg>;
9
+ declare global {
10
+ export type Nullable<T> = T | null;
11
+ }
12
+ /**
13
+ * Creates a MsgSource type.
14
+ */
15
+ export declare type MsgSource<T extends string> = {
16
+ source: T;
17
+ };
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.handleError = void 0;
7
+
8
+ var _Init = require("./Init");
9
+
10
+ /**
11
+ * Handles an error.
12
+ * Logs the error if a Logger was specified.
13
+ * Calls the error handling middleware if specified.
14
+ * @param {Error} error The error.
15
+ */
16
+ var handleError = function handleError(error) {
17
+ if (_Init.ErrorMiddleware) {
18
+ (0, _Init.ErrorMiddleware)(error);
19
+ }
20
+
21
+ _Init.LoggerService === null || _Init.LoggerService === void 0 ? void 0 : _Init.LoggerService.error(error);
22
+ return [{}];
23
+ };
24
+
25
+ exports.handleError = handleError;
26
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9FbG1VdGlsaXRpZXMudHMiXSwibmFtZXMiOlsiaGFuZGxlRXJyb3IiLCJlcnJvciIsIkVycm9yTWlkZGxld2FyZSIsIkxvZ2dlclNlcnZpY2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxJQUFNQSxXQUFXLEdBQUcsU0FBZEEsV0FBYyxDQUFlQyxLQUFmLEVBQWdFO0FBQ3ZGLE1BQUlDLHFCQUFKLEVBQXFCO0FBQ2pCLCtCQUFnQkQsS0FBaEI7QUFDSDs7QUFDREUsZ0dBQWVGLEtBQWYsQ0FBcUJBLEtBQXJCO0FBRUEsU0FBTyxDQUFDLEVBQUQsQ0FBUDtBQUNILENBUE0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4vRWxtQ29tcG9uZW50XCI7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlLCBFcnJvck1pZGRsZXdhcmUgfSBmcm9tIFwiLi9Jbml0XCI7XG5cbi8qKlxuICogSGFuZGxlcyBhbiBlcnJvci5cbiAqIExvZ3MgdGhlIGVycm9yIGlmIGEgTG9nZ2VyIHdhcyBzcGVjaWZpZWQuXG4gKiBDYWxscyB0aGUgZXJyb3IgaGFuZGxpbmcgbWlkZGxld2FyZSBpZiBzcGVjaWZpZWQuXG4gKiBAcGFyYW0ge0Vycm9yfSBlcnJvciBUaGUgZXJyb3IuXG4gKi9cbmV4cG9ydCBjb25zdCBoYW5kbGVFcnJvciA9IDxUTW9kZWwsIFRNc2c+KGVycm9yOiBFcnJvcik6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTXNnPiA9PiB7XG4gICAgaWYgKEVycm9yTWlkZGxld2FyZSkge1xuICAgICAgICBFcnJvck1pZGRsZXdhcmUoZXJyb3IpO1xuICAgIH1cbiAgICBMb2dnZXJTZXJ2aWNlPy5lcnJvcihlcnJvcik7XG5cbiAgICByZXR1cm4gW3t9XTtcbn07XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgICBleHBvcnQgdHlwZSBOdWxsYWJsZTxUPiA9IFQgfCBudWxsO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBNc2dTb3VyY2UgdHlwZS5cbiAqL1xuZXhwb3J0IHR5cGUgTXNnU291cmNlPFQgZXh0ZW5kcyBzdHJpbmc+ID0geyBzb3VyY2U6IFQgfTsiXX0=
@@ -0,0 +1,5 @@
1
+ import { UpdateReturnType } from ".";
2
+ import { Cmd, Dispatch } from "./Cmd";
3
+ export declare const useElmish: <TProps, TModel, TMsg extends {
4
+ name: string | symbol;
5
+ }>(props: TProps, init: (props: TProps) => [TModel, Cmd<TMsg>], update: (model: TModel, msg: TMsg, props: TProps) => UpdateReturnType<TModel, TMsg>, name: string) => [TModel, Dispatch<TMsg>];
package/dist/Hooks.js ADDED
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useElmish = void 0;
7
+
8
+ var _react = require("react");
9
+
10
+ var _Init = require("./Init");
11
+
12
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (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 = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { 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
+ var useElmish = function useElmish(props, init, update, name) {
31
+ var reentered = false;
32
+ var buffer = [];
33
+ var currentModel = {};
34
+ var state = (0, _react.useState)(null);
35
+ var model = state[0];
36
+ var setModel = state[1];
37
+
38
+ var execCmd = function execCmd(cmd) {
39
+ cmd.forEach(function (call) {
40
+ try {
41
+ call(dispatch);
42
+ } catch (error) {
43
+ _Init.LoggerService === null || _Init.LoggerService === void 0 ? void 0 : _Init.LoggerService.error(error);
44
+ }
45
+ });
46
+ };
47
+
48
+ var dispatch = function dispatch(msg) {
49
+ if (!model) {
50
+ return;
51
+ }
52
+
53
+ var modelHasChanged = function modelHasChanged(updatedModel) {
54
+ return updatedModel !== model && Object.getOwnPropertyNames(updatedModel).length > 0;
55
+ };
56
+
57
+ if (_Init.DispatchMiddleware) {
58
+ (0, _Init.DispatchMiddleware)(msg);
59
+ }
60
+
61
+ if (reentered) {
62
+ buffer.push(msg);
63
+ } else {
64
+ reentered = true;
65
+ var nextMsg = msg;
66
+ var modified = false;
67
+
68
+ while (nextMsg) {
69
+ _Init.LoggerService === null || _Init.LoggerService === void 0 ? void 0 : _Init.LoggerService.info("Elm", "message from", name, nextMsg.name);
70
+ _Init.LoggerService === null || _Init.LoggerService === void 0 ? void 0 : _Init.LoggerService.debug("Elm", "message from", name, nextMsg);
71
+
72
+ try {
73
+ var _update = update(_objectSpread(_objectSpread({}, model), currentModel), nextMsg, props),
74
+ _update2 = _slicedToArray(_update, 2),
75
+ newModel = _update2[0],
76
+ cmd = _update2[1];
77
+
78
+ if (modelHasChanged(newModel)) {
79
+ currentModel = _objectSpread(_objectSpread({}, currentModel), newModel);
80
+ modified = true;
81
+ }
82
+
83
+ if (cmd) {
84
+ execCmd(cmd);
85
+ }
86
+ } catch (error) {
87
+ _Init.LoggerService === null || _Init.LoggerService === void 0 ? void 0 : _Init.LoggerService.error(error);
88
+ }
89
+
90
+ nextMsg = buffer.shift();
91
+ }
92
+
93
+ reentered = false;
94
+
95
+ if (modified) {
96
+ setModel(function (prevModel) {
97
+ var updatedModel = _objectSpread(_objectSpread({}, prevModel), currentModel);
98
+
99
+ _Init.LoggerService === null || _Init.LoggerService === void 0 ? void 0 : _Init.LoggerService.debug("Elm", "update model for", name, updatedModel);
100
+ return updatedModel;
101
+ });
102
+ }
103
+ }
104
+ };
105
+
106
+ if (!model) {
107
+ var _init = init(props),
108
+ _init2 = _slicedToArray(_init, 2),
109
+ initModel = _init2[0],
110
+ initCmd = _init2[1];
111
+
112
+ model = initModel;
113
+ setModel(model);
114
+
115
+ if (initCmd) {
116
+ execCmd(initCmd);
117
+ }
118
+ }
119
+
120
+ return [model, dispatch];
121
+ };
122
+
123
+ exports.useElmish = useElmish;
124
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9Ib29rcy50cyJdLCJuYW1lcyI6WyJ1c2VFbG1pc2giLCJwcm9wcyIsImluaXQiLCJ1cGRhdGUiLCJuYW1lIiwicmVlbnRlcmVkIiwiYnVmZmVyIiwiY3VycmVudE1vZGVsIiwic3RhdGUiLCJtb2RlbCIsInNldE1vZGVsIiwiZXhlY0NtZCIsImNtZCIsImZvckVhY2giLCJjYWxsIiwiZGlzcGF0Y2giLCJlcnJvciIsIkxvZ2dlclNlcnZpY2UiLCJtc2ciLCJtb2RlbEhhc0NoYW5nZWQiLCJ1cGRhdGVkTW9kZWwiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwibGVuZ3RoIiwiRGlzcGF0Y2hNaWRkbGV3YXJlIiwicHVzaCIsIm5leHRNc2ciLCJtb2RpZmllZCIsImluZm8iLCJkZWJ1ZyIsIm5ld01vZGVsIiwic2hpZnQiLCJwcmV2TW9kZWwiLCJpbml0TW9kZWwiLCJpbml0Q21kIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBR0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRU8sSUFBTUEsU0FBUyxHQUFHLFNBQVpBLFNBQVksQ0FBeURDLEtBQXpELEVBQXdFQyxJQUF4RSxFQUFzSEMsTUFBdEgsRUFBMk1DLElBQTNNLEVBQXNQO0FBQzNRLE1BQUlDLFNBQVMsR0FBRyxLQUFoQjtBQUNBLE1BQUlDLE1BQWUsR0FBRyxFQUF0QjtBQUNBLE1BQUlDLFlBQTZCLEdBQUcsRUFBcEM7QUFFQSxNQUFNQyxLQUFLLEdBQUcscUJBQTJCLElBQTNCLENBQWQ7QUFDQSxNQUFJQyxLQUFLLEdBQUdELEtBQUssQ0FBQyxDQUFELENBQWpCO0FBQ0EsTUFBTUUsUUFBUSxHQUFHRixLQUFLLENBQUMsQ0FBRCxDQUF0Qjs7QUFFQSxNQUFNRyxPQUFPLEdBQUcsU0FBVkEsT0FBVSxDQUFDQyxHQUFELEVBQW9CO0FBQ2hDQSxJQUFBQSxHQUFHLENBQUNDLE9BQUosQ0FBWSxVQUFBQyxJQUFJLEVBQUk7QUFDaEIsVUFBSTtBQUNBQSxRQUFBQSxJQUFJLENBQUNDLFFBQUQsQ0FBSjtBQUNILE9BRkQsQ0FFRSxPQUFPQyxLQUFQLEVBQWM7QUFDWkMsc0dBQWVELEtBQWYsQ0FBcUJBLEtBQXJCO0FBQ0g7QUFDSixLQU5EO0FBT0gsR0FSRDs7QUFVQSxNQUFNRCxRQUFRLEdBQUcsU0FBWEEsUUFBVyxDQUFDRyxHQUFELEVBQXFCO0FBQ2xDLFFBQUksQ0FBQ1QsS0FBTCxFQUFZO0FBQ1I7QUFDSDs7QUFFRCxRQUFNVSxlQUFlLEdBQUcsU0FBbEJBLGVBQWtCLENBQUNDLFlBQUQsRUFBNEM7QUFDaEUsYUFBT0EsWUFBWSxLQUFLWCxLQUFqQixJQUEwQlksTUFBTSxDQUFDQyxtQkFBUCxDQUEyQkYsWUFBM0IsRUFBeUNHLE1BQXpDLEdBQWtELENBQW5GO0FBQ0gsS0FGRDs7QUFJQSxRQUFJQyx3QkFBSixFQUF3QjtBQUNwQixvQ0FBbUJOLEdBQW5CO0FBQ0g7O0FBRUQsUUFBSWIsU0FBSixFQUFlO0FBQ1hDLE1BQUFBLE1BQU0sQ0FBQ21CLElBQVAsQ0FBWVAsR0FBWjtBQUNILEtBRkQsTUFFTztBQUNIYixNQUFBQSxTQUFTLEdBQUcsSUFBWjtBQUVBLFVBQUlxQixPQUF5QixHQUFHUixHQUFoQztBQUNBLFVBQUlTLFFBQVEsR0FBRyxLQUFmOztBQUVBLGFBQU9ELE9BQVAsRUFBZ0I7QUFDWlQsc0dBQWVXLElBQWYsQ0FBb0IsS0FBcEIsRUFBMkIsY0FBM0IsRUFBMkN4QixJQUEzQyxFQUFpRHNCLE9BQU8sQ0FBQ3RCLElBQXpEO0FBQ0FhLHNHQUFlWSxLQUFmLENBQXFCLEtBQXJCLEVBQTRCLGNBQTVCLEVBQTRDekIsSUFBNUMsRUFBa0RzQixPQUFsRDs7QUFFQSxZQUFJO0FBQ0Esd0JBQXdCdkIsTUFBTSxpQ0FBTU0sS0FBTixHQUFnQkYsWUFBaEIsR0FBZ0NtQixPQUFoQyxFQUF5Q3pCLEtBQXpDLENBQTlCO0FBQUE7QUFBQSxjQUFPNkIsUUFBUDtBQUFBLGNBQWlCbEIsR0FBakI7O0FBRUEsY0FBSU8sZUFBZSxDQUFDVyxRQUFELENBQW5CLEVBQStCO0FBQzNCdkIsWUFBQUEsWUFBWSxtQ0FBUUEsWUFBUixHQUF5QnVCLFFBQXpCLENBQVo7QUFFQUgsWUFBQUEsUUFBUSxHQUFHLElBQVg7QUFDSDs7QUFFRCxjQUFJZixHQUFKLEVBQVM7QUFDTEQsWUFBQUEsT0FBTyxDQUFDQyxHQUFELENBQVA7QUFDSDtBQUNKLFNBWkQsQ0FZRSxPQUFPSSxLQUFQLEVBQWM7QUFDWkMsd0dBQWVELEtBQWYsQ0FBcUJBLEtBQXJCO0FBQ0g7O0FBRURVLFFBQUFBLE9BQU8sR0FBR3BCLE1BQU0sQ0FBQ3lCLEtBQVAsRUFBVjtBQUNIOztBQUNEMUIsTUFBQUEsU0FBUyxHQUFHLEtBQVo7O0FBRUEsVUFBSXNCLFFBQUosRUFBYztBQUNWakIsUUFBQUEsUUFBUSxDQUFDLFVBQUFzQixTQUFTLEVBQUk7QUFDbEIsY0FBTVosWUFBWSxtQ0FBUVksU0FBUixHQUFnQ3pCLFlBQWhDLENBQWxCOztBQUVBVSx3R0FBZVksS0FBZixDQUFxQixLQUFyQixFQUE0QixrQkFBNUIsRUFBZ0R6QixJQUFoRCxFQUFzRGdCLFlBQXREO0FBRUEsaUJBQU9BLFlBQVA7QUFDSCxTQU5PLENBQVI7QUFPSDtBQUNKO0FBQ0osR0F2REQ7O0FBeURBLE1BQUksQ0FBQ1gsS0FBTCxFQUFZO0FBQ1IsZ0JBQTZCUCxJQUFJLENBQUNELEtBQUQsQ0FBakM7QUFBQTtBQUFBLFFBQU9nQyxTQUFQO0FBQUEsUUFBa0JDLE9BQWxCOztBQUVBekIsSUFBQUEsS0FBSyxHQUFHd0IsU0FBUjtBQUNBdkIsSUFBQUEsUUFBUSxDQUFDRCxLQUFELENBQVI7O0FBRUEsUUFBSXlCLE9BQUosRUFBYTtBQUNUdkIsTUFBQUEsT0FBTyxDQUFDdUIsT0FBRCxDQUFQO0FBQ0g7QUFDSjs7QUFFRCxTQUFPLENBQUN6QixLQUFELEVBQVFNLFFBQVIsQ0FBUDtBQUNILENBeEZNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFVwZGF0ZVJldHVyblR5cGUgfSBmcm9tIFwiLlwiO1xuaW1wb3J0IHsgQ21kLCBEaXNwYXRjaCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgRGlzcGF0Y2hNaWRkbGV3YXJlLCBMb2dnZXJTZXJ2aWNlIH0gZnJvbSBcIi4vSW5pdFwiO1xuXG5leHBvcnQgY29uc3QgdXNlRWxtaXNoID0gPFRQcm9wcywgVE1vZGVsLCBUTXNnIGV4dGVuZHMgeyBuYW1lOiBzdHJpbmcgfCBzeW1ib2wgfT4ocHJvcHM6IFRQcm9wcywgaW5pdDogKHByb3BzOiBUUHJvcHMpID0+IFtUTW9kZWwsIENtZDxUTXNnPl0sIHVwZGF0ZTogKG1vZGVsOiBUTW9kZWwsIG1zZzogVE1zZywgcHJvcHM6IFRQcm9wcykgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNc2c+LCBuYW1lOiBzdHJpbmcpOiBbVE1vZGVsLCBEaXNwYXRjaDxUTXNnPl0gPT4ge1xuICAgIGxldCByZWVudGVyZWQgPSBmYWxzZTtcbiAgICBsZXQgYnVmZmVyOiBUTXNnIFtdID0gW107XG4gICAgbGV0IGN1cnJlbnRNb2RlbDogUGFydGlhbDxUTW9kZWw+ID0ge307XG5cbiAgICBjb25zdCBzdGF0ZSA9IHVzZVN0YXRlPE51bGxhYmxlPFRNb2RlbD4+KG51bGwpO1xuICAgIGxldCBtb2RlbCA9IHN0YXRlWzBdO1xuICAgIGNvbnN0IHNldE1vZGVsID0gc3RhdGVbMV07XG5cbiAgICBjb25zdCBleGVjQ21kID0gKGNtZDogQ21kPFRNc2c+KSA9PiB7XG4gICAgICAgIGNtZC5mb3JFYWNoKGNhbGwgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjYWxsKGRpc3BhdGNoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgZGlzcGF0Y2ggPSAobXNnOiBUTXNnKTogdm9pZCA9PiB7XG4gICAgICAgIGlmICghbW9kZWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1vZGVsSGFzQ2hhbmdlZCA9ICh1cGRhdGVkTW9kZWw6IFBhcnRpYWw8VE1vZGVsPik6IGJvb2xlYW4gPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZWRNb2RlbCAhPT0gbW9kZWwgJiYgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModXBkYXRlZE1vZGVsKS5sZW5ndGggPiAwO1xuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChEaXNwYXRjaE1pZGRsZXdhcmUpIHtcbiAgICAgICAgICAgIERpc3BhdGNoTWlkZGxld2FyZShtc2cpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlZW50ZXJlZCkge1xuICAgICAgICAgICAgYnVmZmVyLnB1c2gobXNnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlZW50ZXJlZCA9IHRydWU7XG5cbiAgICAgICAgICAgIGxldCBuZXh0TXNnOiBUTXNnIHwgdW5kZWZpbmVkID0gbXNnO1xuICAgICAgICAgICAgbGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHdoaWxlIChuZXh0TXNnKSB7XG4gICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uaW5mbyhcIkVsbVwiLCBcIm1lc3NhZ2UgZnJvbVwiLCBuYW1lLCBuZXh0TXNnLm5hbWUpO1xuICAgICAgICAgICAgICAgIExvZ2dlclNlcnZpY2U/LmRlYnVnKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIG5hbWUsIG5leHRNc2cpO1xuXG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgW25ld01vZGVsLCBjbWRdID0gdXBkYXRlKHsgLi4ubW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9LCBuZXh0TXNnLCBwcm9wcyk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGVsSGFzQ2hhbmdlZChuZXdNb2RlbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRNb2RlbCA9IHsgLi4uY3VycmVudE1vZGVsLCAuLi5uZXdNb2RlbCB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoY21kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBleGVjQ21kKGNtZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICBMb2dnZXJTZXJ2aWNlPy5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbmV4dE1zZyA9IGJ1ZmZlci5zaGlmdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVlbnRlcmVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmIChtb2RpZmllZCkge1xuICAgICAgICAgICAgICAgIHNldE1vZGVsKHByZXZNb2RlbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRNb2RlbCA9IHsgLi4ucHJldk1vZGVsIGFzIFRNb2RlbCwgLi4uY3VycmVudE1vZGVsIH07XG5cbiAgICAgICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uZGVidWcoXCJFbG1cIiwgXCJ1cGRhdGUgbW9kZWwgZm9yXCIsIG5hbWUsIHVwZGF0ZWRNb2RlbCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZWRNb2RlbDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAoIW1vZGVsKSB7XG4gICAgICAgIGNvbnN0IFtpbml0TW9kZWwsIGluaXRDbWRdID0gaW5pdChwcm9wcyk7XG5cbiAgICAgICAgbW9kZWwgPSBpbml0TW9kZWw7XG4gICAgICAgIHNldE1vZGVsKG1vZGVsKTtcblxuICAgICAgICBpZiAoaW5pdENtZCkge1xuICAgICAgICAgICAgZXhlY0NtZChpbml0Q21kKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBbbW9kZWwsIGRpc3BhdGNoXTtcbn07Il19
package/dist/Init.d.ts ADDED
@@ -0,0 +1,20 @@
1
+ export interface ILogger {
2
+ debug: (...args: unknown[]) => void;
3
+ info: (...args: unknown[]) => void;
4
+ error: (...args: unknown[]) => void;
5
+ }
6
+ export interface IMessage {
7
+ name: string | symbol;
8
+ }
9
+ export declare type ErrorMiddlewareFunc = (error: Error) => void;
10
+ export declare type DispatchMiddlewareFunc = (msg: IMessage) => void;
11
+ export declare let LoggerService: ILogger | null;
12
+ export declare let ErrorMiddleware: ErrorMiddlewareFunc | null;
13
+ export declare let DispatchMiddleware: DispatchMiddlewareFunc | null;
14
+ export declare type ElmOptions = {
15
+ logger?: ILogger;
16
+ errorMiddleware?: ErrorMiddlewareFunc;
17
+ dispatchMiddleware?: DispatchMiddlewareFunc;
18
+ };
19
+ declare const init: (options: ElmOptions) => void;
20
+ export { init };
package/dist/Init.js ADDED
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.init = exports.LoggerService = exports.ErrorMiddleware = exports.DispatchMiddleware = void 0;
7
+ var LoggerService = null;
8
+ exports.LoggerService = LoggerService;
9
+ var ErrorMiddleware = null;
10
+ exports.ErrorMiddleware = ErrorMiddleware;
11
+ var DispatchMiddleware = null;
12
+ exports.DispatchMiddleware = DispatchMiddleware;
13
+
14
+ var init = function init(options) {
15
+ var _options$logger, _options$errorMiddlew, _options$dispatchMidd;
16
+
17
+ exports.LoggerService = LoggerService = (_options$logger = options.logger) !== null && _options$logger !== void 0 ? _options$logger : null;
18
+ exports.ErrorMiddleware = ErrorMiddleware = (_options$errorMiddlew = options.errorMiddleware) !== null && _options$errorMiddlew !== void 0 ? _options$errorMiddlew : null;
19
+ exports.DispatchMiddleware = DispatchMiddleware = (_options$dispatchMidd = options.dispatchMiddleware) !== null && _options$dispatchMidd !== void 0 ? _options$dispatchMidd : null;
20
+ };
21
+
22
+ exports.init = init;
23
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9Jbml0LnRzIl0sIm5hbWVzIjpbIkxvZ2dlclNlcnZpY2UiLCJFcnJvck1pZGRsZXdhcmUiLCJEaXNwYXRjaE1pZGRsZXdhcmUiLCJpbml0Iiwib3B0aW9ucyIsImxvZ2dlciIsImVycm9yTWlkZGxld2FyZSIsImRpc3BhdGNoTWlkZGxld2FyZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBYU8sSUFBSUEsYUFBNkIsR0FBRyxJQUFwQzs7QUFDQSxJQUFJQyxlQUEyQyxHQUFHLElBQWxEOztBQUNBLElBQUlDLGtCQUFpRCxHQUFHLElBQXhEOzs7QUFRUCxJQUFNQyxJQUFJLEdBQUcsU0FBUEEsSUFBTyxDQUFDQyxPQUFELEVBQXlCO0FBQUE7O0FBQ2xDLDBCQUFBSixhQUFhLHNCQUFHSSxPQUFPLENBQUNDLE1BQVgsNkRBQXFCLElBQWxDO0FBQ0EsNEJBQUFKLGVBQWUsNEJBQUdHLE9BQU8sQ0FBQ0UsZUFBWCx5RUFBOEIsSUFBN0M7QUFDQSwrQkFBQUosa0JBQWtCLDRCQUFHRSxPQUFPLENBQUNHLGtCQUFYLHlFQUFpQyxJQUFuRDtBQUNILENBSkQiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElMb2dnZXIge1xuICAgIGRlYnVnOiAoLi4uYXJnczogdW5rbm93biBbXSkgPT4gdm9pZCxcbiAgICBpbmZvOiAoLi4uYXJnczogdW5rbm93biBbXSkgPT4gdm9pZCxcbiAgICBlcnJvcjogKC4uLmFyZ3M6IHVua25vd24gW10pID0+IHZvaWQsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1lc3NhZ2Uge1xuICAgIG5hbWU6IHN0cmluZyB8IHN5bWJvbCxcbn1cblxuZXhwb3J0IHR5cGUgRXJyb3JNaWRkbGV3YXJlRnVuYyA9IChlcnJvcjogRXJyb3IpID0+IHZvaWQ7XG5leHBvcnQgdHlwZSBEaXNwYXRjaE1pZGRsZXdhcmVGdW5jID0gKG1zZzogSU1lc3NhZ2UpID0+IHZvaWQ7XG5cbmV4cG9ydCBsZXQgTG9nZ2VyU2VydmljZTogSUxvZ2dlciB8IG51bGwgPSBudWxsO1xuZXhwb3J0IGxldCBFcnJvck1pZGRsZXdhcmU6IEVycm9yTWlkZGxld2FyZUZ1bmMgfCBudWxsID0gbnVsbDtcbmV4cG9ydCBsZXQgRGlzcGF0Y2hNaWRkbGV3YXJlOiBEaXNwYXRjaE1pZGRsZXdhcmVGdW5jIHwgbnVsbCA9IG51bGw7XG5cbmV4cG9ydCB0eXBlIEVsbU9wdGlvbnMgPSB7XG4gICAgbG9nZ2VyPzogSUxvZ2dlcixcbiAgICBlcnJvck1pZGRsZXdhcmU/OiBFcnJvck1pZGRsZXdhcmVGdW5jLFxuICAgIGRpc3BhdGNoTWlkZGxld2FyZT86IERpc3BhdGNoTWlkZGxld2FyZUZ1bmMsXG59O1xuXG5jb25zdCBpbml0ID0gKG9wdGlvbnM6IEVsbU9wdGlvbnMpID0+IHtcbiAgICBMb2dnZXJTZXJ2aWNlID0gb3B0aW9ucy5sb2dnZXIgPz8gbnVsbDtcbiAgICBFcnJvck1pZGRsZXdhcmUgPSBvcHRpb25zLmVycm9yTWlkZGxld2FyZSA/PyBudWxsO1xuICAgIERpc3BhdGNoTWlkZGxld2FyZSA9IG9wdGlvbnMuZGlzcGF0Y2hNaWRkbGV3YXJlID8/IG51bGw7XG59O1xuXG5leHBvcnQgeyBpbml0IH07XG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { Cmd } from "../Cmd";
2
+ /**
3
+ * Executes a single command created by one of the ofPromise functions.
4
+ * @param cmd The command to process.
5
+ * @deprecated Use execCmd instead.
6
+ */
7
+ export declare const runSingleOfPromiseCmd: <TMsg>(cmd: Cmd<TMsg>) => Promise<void>;
8
+ /**
9
+ * Extracts the messages out of a command.
10
+ * @param cmd The command to process.
11
+ * @returns The array of messages.
12
+ */
13
+ export declare const getOfMsgParams: <TMsg>(cmd?: Cmd<TMsg> | undefined) => TMsg[];
14
+ /**
15
+ * Executes all commands and resolves the messages.
16
+ * @param cmd The command to process.
17
+ * @returns The array of processed messages.
18
+ */
19
+ export declare const execCmd: <TMsg>(cmd?: Cmd<TMsg> | undefined) => Promise<Nullable<TMsg>[]>;
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.runSingleOfPromiseCmd = exports.getOfMsgParams = exports.execCmd = void 0;
7
+
8
+ 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); } }
9
+
10
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
11
+
12
+ /**
13
+ * Executes a single command created by one of the ofPromise functions.
14
+ * @param cmd The command to process.
15
+ * @deprecated Use execCmd instead.
16
+ */
17
+ var runSingleOfPromiseCmd = /*#__PURE__*/function () {
18
+ var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(cmd) {
19
+ return regeneratorRuntime.wrap(function _callee$(_context) {
20
+ while (1) {
21
+ switch (_context.prev = _context.next) {
22
+ case 0:
23
+ return _context.abrupt("return", new Promise(function (resolve) {
24
+ var dispatch = function dispatch() {
25
+ return resolve();
26
+ };
27
+
28
+ cmd[0](dispatch);
29
+ }));
30
+
31
+ case 1:
32
+ case "end":
33
+ return _context.stop();
34
+ }
35
+ }
36
+ }, _callee);
37
+ }));
38
+
39
+ return function runSingleOfPromiseCmd(_x) {
40
+ return _ref.apply(this, arguments);
41
+ };
42
+ }();
43
+ /**
44
+ * Extracts the messages out of a command.
45
+ * @param cmd The command to process.
46
+ * @returns The array of messages.
47
+ */
48
+
49
+
50
+ exports.runSingleOfPromiseCmd = runSingleOfPromiseCmd;
51
+
52
+ var getOfMsgParams = function getOfMsgParams(cmd) {
53
+ var msgNames = [];
54
+
55
+ var dispatch = function dispatch(msg) {
56
+ return msgNames.push(msg);
57
+ };
58
+
59
+ cmd === null || cmd === void 0 ? void 0 : cmd.map(function (c) {
60
+ return c(dispatch);
61
+ });
62
+ return msgNames;
63
+ };
64
+ /**
65
+ * Executes all commands and resolves the messages.
66
+ * @param cmd The command to process.
67
+ * @returns The array of processed messages.
68
+ */
69
+
70
+
71
+ exports.getOfMsgParams = getOfMsgParams;
72
+
73
+ var execCmd = /*#__PURE__*/function () {
74
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(cmd) {
75
+ var callers, results;
76
+ return regeneratorRuntime.wrap(function _callee2$(_context2) {
77
+ while (1) {
78
+ switch (_context2.prev = _context2.next) {
79
+ case 0:
80
+ if (cmd) {
81
+ _context2.next = 2;
82
+ break;
83
+ }
84
+
85
+ return _context2.abrupt("return", Promise.resolve([]));
86
+
87
+ case 2:
88
+ callers = cmd.map(function (c) {
89
+ return new Promise(function (resolve, reject) {
90
+ var dispatch = function dispatch(msg) {
91
+ return resolve(msg);
92
+ };
93
+
94
+ c(dispatch, function (error) {
95
+ if (error) {
96
+ reject(error);
97
+ } else {
98
+ resolve(null);
99
+ }
100
+ });
101
+ });
102
+ });
103
+ _context2.next = 5;
104
+ return Promise.all(callers);
105
+
106
+ case 5:
107
+ results = _context2.sent;
108
+ return _context2.abrupt("return", results);
109
+
110
+ case 7:
111
+ case "end":
112
+ return _context2.stop();
113
+ }
114
+ }
115
+ }, _callee2);
116
+ }));
117
+
118
+ return function execCmd(_x2) {
119
+ return _ref2.apply(this, arguments);
120
+ };
121
+ }();
122
+
123
+ exports.execCmd = execCmd;
124
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9UZXN0aW5nL2luZGV4LnRzIl0sIm5hbWVzIjpbInJ1blNpbmdsZU9mUHJvbWlzZUNtZCIsImNtZCIsIlByb21pc2UiLCJyZXNvbHZlIiwiZGlzcGF0Y2giLCJnZXRPZk1zZ1BhcmFtcyIsIm1zZ05hbWVzIiwibXNnIiwicHVzaCIsIm1hcCIsImMiLCJleGVjQ21kIiwiY2FsbGVycyIsInJlamVjdCIsImVycm9yIiwiYWxsIiwicmVzdWx0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sSUFBTUEscUJBQXFCO0FBQUEscUVBQUcsaUJBQWFDLEdBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDZDQUMxQixJQUFJQyxPQUFKLENBQWtCLFVBQUNDLE9BQUQsRUFBYTtBQUNsQyxrQkFBTUMsUUFBUSxHQUFHLFNBQVhBLFFBQVc7QUFBQSx1QkFBTUQsT0FBTyxFQUFiO0FBQUEsZUFBakI7O0FBRUFGLGNBQUFBLEdBQUcsQ0FBQyxDQUFELENBQUgsQ0FBT0csUUFBUDtBQUNILGFBSk0sQ0FEMEI7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsR0FBSDs7QUFBQSxrQkFBckJKLHFCQUFxQjtBQUFBO0FBQUE7QUFBQSxHQUEzQjtBQVFQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBQ08sSUFBTUssY0FBYyxHQUFHLFNBQWpCQSxjQUFpQixDQUFPSixHQUFQLEVBQW9DO0FBQzlELE1BQU1LLFFBQWlCLEdBQUcsRUFBMUI7O0FBRUEsTUFBTUYsUUFBUSxHQUFHLFNBQVhBLFFBQVcsQ0FBQ0csR0FBRDtBQUFBLFdBQWVELFFBQVEsQ0FBQ0UsSUFBVCxDQUFjRCxHQUFkLENBQWY7QUFBQSxHQUFqQjs7QUFFQU4sRUFBQUEsR0FBRyxTQUFILElBQUFBLEdBQUcsV0FBSCxZQUFBQSxHQUFHLENBQUVRLEdBQUwsQ0FBUyxVQUFBQyxDQUFDO0FBQUEsV0FBSUEsQ0FBQyxDQUFDTixRQUFELENBQUw7QUFBQSxHQUFWO0FBRUEsU0FBT0UsUUFBUDtBQUNILENBUk07QUFVUDtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OztBQUNPLElBQU1LLE9BQU87QUFBQSxzRUFBRyxrQkFBYVYsR0FBYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQkFDZEEsR0FEYztBQUFBO0FBQUE7QUFBQTs7QUFBQSw4Q0FFUkMsT0FBTyxDQUFDQyxPQUFSLENBQWdCLEVBQWhCLENBRlE7O0FBQUE7QUFLYlMsWUFBQUEsT0FMYSxHQUtIWCxHQUFHLENBQUNRLEdBQUosQ0FBUSxVQUFBQyxDQUFDO0FBQUEscUJBQUksSUFBSVIsT0FBSixDQUE0QixVQUFDQyxPQUFELEVBQVVVLE1BQVYsRUFBcUI7QUFDMUUsb0JBQU1ULFFBQVEsR0FBRyxTQUFYQSxRQUFXLENBQUNHLEdBQUQ7QUFBQSx5QkFBZUosT0FBTyxDQUFDSSxHQUFELENBQXRCO0FBQUEsaUJBQWpCOztBQUVBRyxnQkFBQUEsQ0FBQyxDQUFDTixRQUFELEVBQVcsVUFBQVUsS0FBSyxFQUFJO0FBQ2pCLHNCQUFJQSxLQUFKLEVBQVc7QUFDUEQsb0JBQUFBLE1BQU0sQ0FBQ0MsS0FBRCxDQUFOO0FBQ0gsbUJBRkQsTUFFTztBQUNIWCxvQkFBQUEsT0FBTyxDQUFDLElBQUQsQ0FBUDtBQUNIO0FBQ0osaUJBTkEsQ0FBRDtBQU9ILGVBVjRCLENBQUo7QUFBQSxhQUFULENBTEc7QUFBQTtBQUFBLG1CQWlCR0QsT0FBTyxDQUFDYSxHQUFSLENBQVlILE9BQVosQ0FqQkg7O0FBQUE7QUFpQmJJLFlBQUFBLE9BakJhO0FBQUEsOENBbUJaQSxPQW5CWTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxHQUFIOztBQUFBLGtCQUFQTCxPQUFPO0FBQUE7QUFBQTtBQUFBLEdBQWIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbWQgfSBmcm9tIFwiLi4vQ21kXCI7XG5cbi8qKlxuICogRXhlY3V0ZXMgYSBzaW5nbGUgY29tbWFuZCBjcmVhdGVkIGJ5IG9uZSBvZiB0aGUgb2ZQcm9taXNlIGZ1bmN0aW9ucy5cbiAqIEBwYXJhbSBjbWQgVGhlIGNvbW1hbmQgdG8gcHJvY2Vzcy5cbiAqIEBkZXByZWNhdGVkIFVzZSBleGVjQ21kIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBjb25zdCBydW5TaW5nbGVPZlByb21pc2VDbWQgPSBhc3luYyA8VE1zZz4oY21kOiBDbWQ8VE1zZz4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcbiAgICAgICAgY29uc3QgZGlzcGF0Y2ggPSAoKSA9PiByZXNvbHZlKCk7XG5cbiAgICAgICAgY21kWzBdKGRpc3BhdGNoKTtcbiAgICB9KTtcbn07XG5cbi8qKlxuICogRXh0cmFjdHMgdGhlIG1lc3NhZ2VzIG91dCBvZiBhIGNvbW1hbmQuXG4gKiBAcGFyYW0gY21kIFRoZSBjb21tYW5kIHRvIHByb2Nlc3MuXG4gKiBAcmV0dXJucyBUaGUgYXJyYXkgb2YgbWVzc2FnZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRPZk1zZ1BhcmFtcyA9IDxUTXNnPihjbWQ/OiBDbWQ8VE1zZz4pOiBUTXNnIFtdID0+IHtcbiAgICBjb25zdCBtc2dOYW1lczogVE1zZyBbXSA9IFtdO1xuXG4gICAgY29uc3QgZGlzcGF0Y2ggPSAobXNnOiBUTXNnKSA9PiBtc2dOYW1lcy5wdXNoKG1zZyk7XG5cbiAgICBjbWQ/Lm1hcChjID0+IGMoZGlzcGF0Y2gpKTtcblxuICAgIHJldHVybiBtc2dOYW1lcztcbn07XG5cbi8qKlxuICogRXhlY3V0ZXMgYWxsIGNvbW1hbmRzIGFuZCByZXNvbHZlcyB0aGUgbWVzc2FnZXMuXG4gKiBAcGFyYW0gY21kIFRoZSBjb21tYW5kIHRvIHByb2Nlc3MuXG4gKiBAcmV0dXJucyBUaGUgYXJyYXkgb2YgcHJvY2Vzc2VkIG1lc3NhZ2VzLlxuICovXG5leHBvcnQgY29uc3QgZXhlY0NtZCA9IGFzeW5jIDxUTXNnPihjbWQ/OiBDbWQ8VE1zZz4pOiBQcm9taXNlPE51bGxhYmxlPFRNc2c+IFtdPiA9PiB7XG4gICAgaWYgKCFjbWQpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7XG4gICAgfVxuXG4gICAgY29uc3QgY2FsbGVycyA9IGNtZC5tYXAoYyA9PiBuZXcgUHJvbWlzZTxOdWxsYWJsZTxUTXNnPj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBjb25zdCBkaXNwYXRjaCA9IChtc2c6IFRNc2cpID0+IHJlc29sdmUobXNnKTtcblxuICAgICAgICBjKGRpc3BhdGNoLCBlcnJvciA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KSk7XG5cbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoY2FsbGVycyk7XG5cbiAgICByZXR1cm4gcmVzdWx0cztcbn07Il19
@@ -0,0 +1,14 @@
1
+ import { Cmd, createCmd, Dispatch } from "./Cmd";
2
+ import { ElmComponent, UpdateReturnType } from "./ElmComponent";
3
+ import { MsgSource, handleError } from "./ElmUtilities";
4
+ import { useElmish } from "./Hooks";
5
+ import { init, ILogger } from "./Init";
6
+ export type { ILogger };
7
+ export type { Cmd, Dispatch };
8
+ export { init };
9
+ export { createCmd };
10
+ export { ElmComponent };
11
+ export type { UpdateReturnType };
12
+ export type { MsgSource };
13
+ export { handleError };
14
+ export { useElmish };
package/dist/index.js ADDED
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "ElmComponent", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _ElmComponent.ElmComponent;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "createCmd", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _Cmd.createCmd;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "handleError", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _ElmUtilities.handleError;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "init", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _Init.init;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "useElmish", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _Hooks.useElmish;
34
+ }
35
+ });
36
+
37
+ var _Cmd = require("./Cmd");
38
+
39
+ var _ElmComponent = require("./ElmComponent");
40
+
41
+ var _ElmUtilities = require("./ElmUtilities");
42
+
43
+ var _Hooks = require("./Hooks");
44
+
45
+ var _Init = require("./Init");
46
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENtZCwgY3JlYXRlQ21kLCBEaXNwYXRjaCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgRWxtQ29tcG9uZW50LCBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4vRWxtQ29tcG9uZW50XCI7XG5pbXBvcnQgeyBNc2dTb3VyY2UsIGhhbmRsZUVycm9yIH0gZnJvbSBcIi4vRWxtVXRpbGl0aWVzXCI7XG5pbXBvcnQgeyB1c2VFbG1pc2ggfSBmcm9tIFwiLi9Ib29rc1wiO1xuaW1wb3J0IHsgaW5pdCwgSUxvZ2dlciB9IGZyb20gXCIuL0luaXRcIjtcblxuZXhwb3J0IHR5cGUgeyBJTG9nZ2VyIH07XG5leHBvcnQgdHlwZSB7IENtZCwgRGlzcGF0Y2ggfTtcblxuZXhwb3J0IHsgaW5pdCB9XG5leHBvcnQgeyBjcmVhdGVDbWQgfTtcblxuZXhwb3J0IHsgRWxtQ29tcG9uZW50IH07XG5leHBvcnQgdHlwZSB7IFVwZGF0ZVJldHVyblR5cGUgfTtcblxuZXhwb3J0IHR5cGUgeyBNc2dTb3VyY2UgfTtcbmV4cG9ydCB7IGhhbmRsZUVycm9yIH07XG5cbmV4cG9ydCB7IHVzZUVsbWlzaCB9OyJdfQ==
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "react-elmish",
3
+ "version": "1.4.4",
4
+ "description": "Elmish for React using Typescript",
5
+ "author": "atheck",
6
+ "license": "MIT",
7
+ "dependencies": {},
8
+ "peerDependencies": {
9
+ "react": ">=16.8.0"
10
+ },
11
+ "devDependencies": {
12
+ "@babel/cli": "7.15.7",
13
+ "@babel/core": "7.15.8",
14
+ "@babel/plugin-proposal-class-properties": "7.14.5",
15
+ "@babel/preset-env": "7.15.8",
16
+ "@babel/preset-react": "7.14.5",
17
+ "@babel/preset-typescript": "7.15.0",
18
+ "@types/jest": "27.0.2",
19
+ "@types/react": "17.0.27",
20
+ "jest": "27.2.5",
21
+ "ts-jest": "27.0.5",
22
+ "typescript": "4.4.3"
23
+ },
24
+ "scripts": {
25
+ "build": "npm run build:types && npm run build:js",
26
+ "build:types": "tsc --emitDeclarationOnly",
27
+ "build:js": "babel src --out-dir dist --extensions \".ts,.tsx\" --source-maps inline",
28
+ "test": "jest",
29
+ "test:watch": "jest --watch"
30
+ },
31
+ "homepage": "https://github.com/atheck/react-elmish",
32
+ "repository": {
33
+ "type": "git",
34
+ "url": "https://github.com/atheck/react-elmish.git"
35
+ },
36
+ "keywords": [
37
+ "react",
38
+ "elm",
39
+ "elmish",
40
+ "state management"
41
+ ],
42
+ "main": "dist/index.js",
43
+ "types": "dist/index.d.ts"
44
+ }