react-elmish 4.2.0 → 4.4.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.
- package/.eslintrc +1 -1
- package/.vscode/settings.json +3 -0
- package/README.md +47 -18
- package/dist/Cmd.d.ts +19 -18
- package/dist/Cmd.js +4 -4
- package/dist/Common.d.ts +6 -0
- package/dist/Common.js +35 -0
- package/dist/ElmComponent.d.ts +10 -11
- package/dist/ElmComponent.js +16 -40
- package/dist/ErrorHandling.d.ts +1 -1
- package/dist/ErrorHandling.js +1 -1
- package/dist/Init.d.ts +17 -0
- package/dist/Init.js +7 -1
- package/dist/Testing/createUpdateArgsFactory.d.ts +16 -0
- package/dist/Testing/createUpdateArgsFactory.js +30 -0
- package/dist/Testing/execCmd.d.ts +9 -0
- package/dist/Testing/execCmd.js +88 -0
- package/dist/Testing/execCmd.spec.d.ts +1 -0
- package/dist/Testing/fakeOptions.d.ts +15 -1
- package/dist/Testing/fakeOptions.js +8 -1
- package/dist/Testing/getOfMsgParams.d.ts +8 -0
- package/dist/Testing/getOfMsgParams.js +25 -0
- package/dist/Testing/getUpdateFn.d.ts +8 -0
- package/dist/Testing/getUpdateFn.js +20 -0
- package/dist/Testing/index.d.ts +5 -34
- package/dist/Testing/index.js +36 -154
- package/dist/Testing/renderWithModel.d.ts +13 -0
- package/dist/Testing/renderWithModel.js +32 -0
- package/dist/Testing/renderWithModel.spec.d.ts +1 -0
- package/dist/Types.d.ts +8 -5
- package/dist/Types.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3 -3
- package/dist/useElmish.d.ts +31 -0
- package/dist/useElmish.js +21 -35
- package/package.json +11 -11
package/dist/Testing/index.js
CHANGED
|
@@ -1,164 +1,46 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
8
|
-
exports
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (undefined === method) { if (context.delegate = null, "throw" === context.method) { if (delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
var dispatch = function dispatch(msg) {
|
|
39
|
-
msgNames.push(msg);
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
cmd === null || cmd === void 0 ? void 0 : cmd.map(function (currentCmd) {
|
|
43
|
-
return currentCmd(dispatch);
|
|
44
|
-
});
|
|
45
|
-
return msgNames;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Executes all commands and resolves the messages.
|
|
49
|
-
* @param cmd The command to process.
|
|
50
|
-
* @returns The array of processed messages.
|
|
51
|
-
*/
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
function execCmd(_x) {
|
|
55
|
-
return _execCmd.apply(this, arguments);
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Creates an update function out of an UpdateMap.
|
|
59
|
-
* @param {UpdateMap<TProps, TModel, TMessage>} updateMap The UpdateMap.
|
|
60
|
-
* @returns {(msg: TMessage, model: TModel, props: TProps) => UpdateReturnType<TModel, TMessage>} The created update function which can be used in tests.
|
|
61
|
-
*/
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
function _execCmd() {
|
|
65
|
-
_execCmd = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(cmd) {
|
|
66
|
-
var callers, results;
|
|
67
|
-
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
68
|
-
while (1) {
|
|
69
|
-
switch (_context2.prev = _context2.next) {
|
|
70
|
-
case 0:
|
|
71
|
-
if (cmd) {
|
|
72
|
-
_context2.next = 2;
|
|
73
|
-
break;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
return _context2.abrupt("return", []);
|
|
77
|
-
|
|
78
|
-
case 2:
|
|
79
|
-
callers = cmd.map( /*#__PURE__*/function () {
|
|
80
|
-
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(currentCmd) {
|
|
81
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
82
|
-
while (1) {
|
|
83
|
-
switch (_context.prev = _context.next) {
|
|
84
|
-
case 0:
|
|
85
|
-
return _context.abrupt("return", new Promise(function (resolve, reject) {
|
|
86
|
-
var dispatch = function dispatch(msg) {
|
|
87
|
-
return resolve(msg);
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
currentCmd(dispatch, function (error) {
|
|
91
|
-
if (error) {
|
|
92
|
-
reject(error);
|
|
93
|
-
} else {
|
|
94
|
-
resolve(null);
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
}));
|
|
98
|
-
|
|
99
|
-
case 1:
|
|
100
|
-
case "end":
|
|
101
|
-
return _context.stop();
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}, _callee);
|
|
105
|
-
}));
|
|
106
|
-
|
|
107
|
-
return function (_x2) {
|
|
108
|
-
return _ref.apply(this, arguments);
|
|
109
|
-
};
|
|
110
|
-
}());
|
|
111
|
-
_context2.next = 5;
|
|
112
|
-
return Promise.all(callers);
|
|
113
|
-
|
|
114
|
-
case 5:
|
|
115
|
-
results = _context2.sent;
|
|
116
|
-
return _context2.abrupt("return", results);
|
|
6
|
+
Object.defineProperty(exports, "createUpdateArgsFactory", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _createUpdateArgsFactory.createUpdateArgsFactory;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "execCmd", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _execCmd.execCmd;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "getOfMsgParams", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _getOfMsgParams.getOfMsgParams;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "getUpdateFn", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function get() {
|
|
27
|
+
return _getUpdateFn.getUpdateFn;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "renderWithModel", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function get() {
|
|
33
|
+
return _renderWithModel.renderWithModel;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
117
36
|
|
|
118
|
-
|
|
119
|
-
case "end":
|
|
120
|
-
return _context2.stop();
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}, _callee2);
|
|
124
|
-
}));
|
|
125
|
-
return _execCmd.apply(this, arguments);
|
|
126
|
-
}
|
|
37
|
+
var _createUpdateArgsFactory = require("./createUpdateArgsFactory");
|
|
127
38
|
|
|
128
|
-
|
|
129
|
-
return function (msg, model, props) {
|
|
130
|
-
return (0, _useElmish.callUpdateMap)(updateMap, msg, model, props);
|
|
131
|
-
};
|
|
132
|
-
}
|
|
39
|
+
var _execCmd = require("./execCmd");
|
|
133
40
|
|
|
134
|
-
|
|
135
|
-
* Creates a factory function to create a message, a model, and props which can be passed to an update function in tests.
|
|
136
|
-
* @param {() => TModel} initModel A function to create an initial model.
|
|
137
|
-
* @param {() => TProps} initProps A function to create initial props.
|
|
138
|
-
* @returns {UpdateArgsFactory<TProps, TModel, TMessage>} A function to create a message, a model, and props.
|
|
139
|
-
* @example
|
|
140
|
-
* // one time
|
|
141
|
-
* const createUpdateArgs = createUpdateArgsFactory(() => ({ ... }), () => ({ ... }));
|
|
142
|
-
* // in tests
|
|
143
|
-
* const [msg, model, props] = createUpdateArgs(Msg.myMessage(), { ... }, , { ... });
|
|
144
|
-
*/
|
|
145
|
-
function createUpdateArgsFactory(initModel, initProps) {
|
|
146
|
-
return function (msg, modelTemplate, propsTemplate) {
|
|
147
|
-
return [msg, _objectSpread(_objectSpread({}, initModel()), modelTemplate), _objectSpread(_objectSpread({}, initProps()), propsTemplate)];
|
|
148
|
-
};
|
|
149
|
-
}
|
|
41
|
+
var _getOfMsgParams = require("./getOfMsgParams");
|
|
150
42
|
|
|
151
|
-
|
|
152
|
-
if ("model" in options && "dispatch" in options) {
|
|
153
|
-
(0, _fakeOptions.setFakeOptions)(options);
|
|
154
|
-
} else {
|
|
155
|
-
(0, _fakeOptions.setFakeOptions)({
|
|
156
|
-
model: options
|
|
157
|
-
});
|
|
158
|
-
}
|
|
43
|
+
var _getUpdateFn = require("./getUpdateFn");
|
|
159
44
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
return result;
|
|
163
|
-
}
|
|
164
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRPZk1zZ1BhcmFtcyIsImNtZCIsIm1zZ05hbWVzIiwiZGlzcGF0Y2giLCJtc2ciLCJwdXNoIiwibWFwIiwiY3VycmVudENtZCIsImV4ZWNDbWQiLCJjYWxsZXJzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJlcnJvciIsImFsbCIsInJlc3VsdHMiLCJnZXRVcGRhdGVGbiIsInVwZGF0ZU1hcCIsIm1vZGVsIiwicHJvcHMiLCJjYWxsVXBkYXRlTWFwIiwiY3JlYXRlVXBkYXRlQXJnc0ZhY3RvcnkiLCJpbml0TW9kZWwiLCJpbml0UHJvcHMiLCJtb2RlbFRlbXBsYXRlIiwicHJvcHNUZW1wbGF0ZSIsInJlbmRlcldpdGhNb2RlbCIsInJlbmRlciIsIm9wdGlvbnMiLCJzZXRGYWtlT3B0aW9ucyIsInJlc3VsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9UZXN0aW5nL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2VCYXNlLCBOdWxsYWJsZSwgVXBkYXRlTWFwLCBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4uL1R5cGVzXCI7XG5pbXBvcnQgeyBSZW5kZXJXaXRoTW9kZWxPcHRpb25zLCBzZXRGYWtlT3B0aW9ucyB9IGZyb20gXCIuL2Zha2VPcHRpb25zXCI7XG5pbXBvcnQgeyBjYWxsVXBkYXRlTWFwIH0gZnJvbSBcIi4uL3VzZUVsbWlzaFwiO1xuaW1wb3J0IHsgQ21kIH0gZnJvbSBcIi4uL0NtZFwiO1xuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBtZXNzYWdlcyBvdXQgb2YgYSBjb21tYW5kLlxuICogQHBhcmFtIGNtZCBUaGUgY29tbWFuZCB0byBwcm9jZXNzLlxuICogQHJldHVybnMgVGhlIGFycmF5IG9mIG1lc3NhZ2VzLlxuICovXG5mdW5jdGlvbiBnZXRPZk1zZ1BhcmFtczxUTXNnPiAoY21kPzogQ21kPFRNc2c+KTogVE1zZyBbXSB7XG4gICAgY29uc3QgbXNnTmFtZXM6IFRNc2cgW10gPSBbXTtcblxuICAgIGNvbnN0IGRpc3BhdGNoID0gKG1zZzogVE1zZyk6IHZvaWQgPT4ge1xuICAgICAgICBtc2dOYW1lcy5wdXNoKG1zZyk7XG4gICAgfTtcblxuICAgIGNtZD8ubWFwKGN1cnJlbnRDbWQgPT4gY3VycmVudENtZChkaXNwYXRjaCkpO1xuXG4gICAgcmV0dXJuIG1zZ05hbWVzO1xufVxuXG4vKipcbiAqIEV4ZWN1dGVzIGFsbCBjb21tYW5kcyBhbmQgcmVzb2x2ZXMgdGhlIG1lc3NhZ2VzLlxuICogQHBhcmFtIGNtZCBUaGUgY29tbWFuZCB0byBwcm9jZXNzLlxuICogQHJldHVybnMgVGhlIGFycmF5IG9mIHByb2Nlc3NlZCBtZXNzYWdlcy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZXhlY0NtZDxUTXNnPiAoY21kPzogQ21kPFRNc2c+KTogUHJvbWlzZTxOdWxsYWJsZTxUTXNnPiBbXT4ge1xuICAgIGlmICghY21kKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBjYWxsZXJzID0gY21kLm1hcChhc3luYyBjdXJyZW50Q21kID0+IG5ldyBQcm9taXNlPE51bGxhYmxlPFRNc2c+PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGNvbnN0IGRpc3BhdGNoID0gKG1zZzogVE1zZyk6IHZvaWQgPT4gcmVzb2x2ZShtc2cpO1xuXG4gICAgICAgIGN1cnJlbnRDbWQoZGlzcGF0Y2gsIGVycm9yID0+IHtcbiAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pKTtcblxuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChjYWxsZXJzKTtcblxuICAgIHJldHVybiByZXN1bHRzO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYW4gdXBkYXRlIGZ1bmN0aW9uIG91dCBvZiBhbiBVcGRhdGVNYXAuXG4gKiBAcGFyYW0ge1VwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+fSB1cGRhdGVNYXAgVGhlIFVwZGF0ZU1hcC5cbiAqIEByZXR1cm5zIHsobXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcykgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPn0gVGhlIGNyZWF0ZWQgdXBkYXRlIGZ1bmN0aW9uIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRlc3RzLlxuICovXG5mdW5jdGlvbiBnZXRVcGRhdGVGbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKHVwZGF0ZU1hcDogVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pOiAobXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcykgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChtc2c6IFRNZXNzYWdlLCBtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG4gICAgICAgIHJldHVybiBjYWxsVXBkYXRlTWFwKHVwZGF0ZU1hcCwgbXNnLCBtb2RlbCwgcHJvcHMpO1xuICAgIH07XG59XG5cbnR5cGUgVXBkYXRlQXJnc0ZhY3Rvcnk8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+ID0gKG1zZzogVE1lc3NhZ2UsIG1vZGVsVGVtcGxhdGU/OiBQYXJ0aWFsPFRNb2RlbD4sIHByb3BzVGVtcGxhdGU/OiBQYXJ0aWFsPFRQcm9wcz4pID0+IFtUTWVzc2FnZSwgVE1vZGVsLCBUUHJvcHNdO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmYWN0b3J5IGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIG1lc3NhZ2UsIGEgbW9kZWwsIGFuZCBwcm9wcyB3aGljaCBjYW4gYmUgcGFzc2VkIHRvIGFuIHVwZGF0ZSBmdW5jdGlvbiBpbiB0ZXN0cy5cbiAqIEBwYXJhbSB7KCkgPT4gVE1vZGVsfSBpbml0TW9kZWwgQSBmdW5jdGlvbiB0byBjcmVhdGUgYW4gaW5pdGlhbCBtb2RlbC5cbiAqIEBwYXJhbSB7KCkgPT4gVFByb3BzfSBpbml0UHJvcHMgQSBmdW5jdGlvbiB0byBjcmVhdGUgaW5pdGlhbCBwcm9wcy5cbiAqIEByZXR1cm5zIHtVcGRhdGVBcmdzRmFjdG9yeTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+fSBBIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIG1lc3NhZ2UsIGEgbW9kZWwsIGFuZCBwcm9wcy5cbiAqIEBleGFtcGxlXG4gKiAvLyBvbmUgdGltZVxuICogY29uc3QgY3JlYXRlVXBkYXRlQXJncyA9IGNyZWF0ZVVwZGF0ZUFyZ3NGYWN0b3J5KCgpID0+ICh7IC4uLiB9KSwgKCkgPT4gKHsgLi4uIH0pKTtcbiAqIC8vIGluIHRlc3RzXG4gKiBjb25zdCBbbXNnLCBtb2RlbCwgcHJvcHNdID0gY3JlYXRlVXBkYXRlQXJncyhNc2cubXlNZXNzYWdlKCksIHsgLi4uIH0sICwgeyAuLi4gfSk7XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVVwZGF0ZUFyZ3NGYWN0b3J5IDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKGluaXRNb2RlbDogKCkgPT4gVE1vZGVsLCBpbml0UHJvcHM6ICgpID0+IFRQcm9wcyk6IFVwZGF0ZUFyZ3NGYWN0b3J5PFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4ge1xuICAgIHJldHVybiBmdW5jdGlvbiAobXNnOiBUTWVzc2FnZSwgbW9kZWxUZW1wbGF0ZT86IFBhcnRpYWw8VE1vZGVsPiwgcHJvcHNUZW1wbGF0ZT86IFBhcnRpYWw8VFByb3BzPik6IFtUTWVzc2FnZSwgVE1vZGVsLCBUUHJvcHNdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIG1zZyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5pbml0TW9kZWwoKSxcbiAgICAgICAgICAgICAgICAuLi5tb2RlbFRlbXBsYXRlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5pbml0UHJvcHMoKSxcbiAgICAgICAgICAgICAgICAuLi5wcm9wc1RlbXBsYXRlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICB9O1xufVxuXG5mdW5jdGlvbiByZW5kZXJXaXRoTW9kZWw8VE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlLCBUUmVzdWx0PiAocmVuZGVyOiAoKSA9PiBUUmVzdWx0LCBvcHRpb25zOiBUTW9kZWwgfCBSZW5kZXJXaXRoTW9kZWxPcHRpb25zPFRNb2RlbCwgVE1lc3NhZ2U+KTogVFJlc3VsdCB7XG4gICAgaWYgKFwibW9kZWxcIiBpbiBvcHRpb25zICYmIFwiZGlzcGF0Y2hcIiBpbiBvcHRpb25zKSB7XG4gICAgICAgIHNldEZha2VPcHRpb25zKG9wdGlvbnMgYXMgUmVuZGVyV2l0aE1vZGVsT3B0aW9uczx1bmtub3duLCBNZXNzYWdlQmFzZT4pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHNldEZha2VPcHRpb25zKHtcbiAgICAgICAgICAgIG1vZGVsOiBvcHRpb25zLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSByZW5kZXIoKTtcblxuICAgIHNldEZha2VPcHRpb25zKG51bGwpO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IHR5cGUge1xuICAgIFVwZGF0ZUFyZ3NGYWN0b3J5LFxuICAgIFJlbmRlcldpdGhNb2RlbE9wdGlvbnMsXG59O1xuXG5leHBvcnQge1xuICAgIGdldE9mTXNnUGFyYW1zLFxuICAgIGV4ZWNDbWQsXG4gICAgZ2V0VXBkYXRlRm4sXG4gICAgY3JlYXRlVXBkYXRlQXJnc0ZhY3RvcnksXG4gICAgcmVuZGVyV2l0aE1vZGVsLFxufTsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFDQTs7QUFDQTs7K0NBREEsb0o7Ozs7Ozs7Ozs7OztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxjQUFULENBQStCQyxHQUEvQixFQUF5RDtFQUNyRCxJQUFNQyxRQUFpQixHQUFHLEVBQTFCOztFQUVBLElBQU1DLFFBQVEsR0FBRyxTQUFYQSxRQUFXLENBQUNDLEdBQUQsRUFBcUI7SUFDbENGLFFBQVEsQ0FBQ0csSUFBVCxDQUFjRCxHQUFkO0VBQ0gsQ0FGRDs7RUFJQUgsR0FBRyxTQUFILElBQUFBLEdBQUcsV0FBSCxZQUFBQSxHQUFHLENBQUVLLEdBQUwsQ0FBUyxVQUFBQyxVQUFVO0lBQUEsT0FBSUEsVUFBVSxDQUFDSixRQUFELENBQWQ7RUFBQSxDQUFuQjtFQUVBLE9BQU9ELFFBQVA7QUFDSDtBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztTQUNlTSxPOzs7QUFzQmY7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozt3RUExQkEsa0JBQThCUCxHQUE5QjtJQUFBO0lBQUE7TUFBQTtRQUFBO1VBQUE7WUFBQSxJQUNTQSxHQURUO2NBQUE7Y0FBQTtZQUFBOztZQUFBLGtDQUVlLEVBRmY7O1VBQUE7WUFLVVEsT0FMVixHQUtvQlIsR0FBRyxDQUFDSyxHQUFKO2NBQUEsc0VBQVEsaUJBQU1DLFVBQU47Z0JBQUE7a0JBQUE7b0JBQUE7c0JBQUE7d0JBQUEsaUNBQW9CLElBQUlHLE9BQUosQ0FBNEIsVUFBQ0MsT0FBRCxFQUFVQyxNQUFWLEVBQXFCOzBCQUN6RixJQUFNVCxRQUFRLEdBQUcsU0FBWEEsUUFBVyxDQUFDQyxHQUFEOzRCQUFBLE9BQXFCTyxPQUFPLENBQUNQLEdBQUQsQ0FBNUI7MEJBQUEsQ0FBakI7OzBCQUVBRyxVQUFVLENBQUNKLFFBQUQsRUFBVyxVQUFBVSxLQUFLLEVBQUk7NEJBQzFCLElBQUlBLEtBQUosRUFBVzs4QkFDUEQsTUFBTSxDQUFDQyxLQUFELENBQU47NEJBQ0gsQ0FGRCxNQUVPOzhCQUNIRixPQUFPLENBQUMsSUFBRCxDQUFQOzRCQUNIOzBCQUNKLENBTlMsQ0FBVjt3QkFPSCxDQVYyQyxDQUFwQjs7c0JBQUE7c0JBQUE7d0JBQUE7b0JBQUE7a0JBQUE7Z0JBQUE7Y0FBQSxDQUFSOztjQUFBO2dCQUFBO2NBQUE7WUFBQSxJQUxwQjtZQUFBO1lBQUEsT0FpQjBCRCxPQUFPLENBQUNJLEdBQVIsQ0FBWUwsT0FBWixDQWpCMUI7O1VBQUE7WUFpQlVNLE9BakJWO1lBQUEsa0NBbUJXQSxPQW5CWDs7VUFBQTtVQUFBO1lBQUE7UUFBQTtNQUFBO0lBQUE7RUFBQSxDOzs7O0FBMkJBLFNBQVNDLFdBQVQsQ0FBb0VDLFNBQXBFLEVBQXlNO0VBQ3JNLE9BQU8sVUFBVWIsR0FBVixFQUF5QmMsS0FBekIsRUFBd0NDLEtBQXhDLEVBQTJGO0lBQzlGLE9BQU8sSUFBQUMsd0JBQUEsRUFBY0gsU0FBZCxFQUF5QmIsR0FBekIsRUFBOEJjLEtBQTlCLEVBQXFDQyxLQUFyQyxDQUFQO0VBQ0gsQ0FGRDtBQUdIOztBQUlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTRSx1QkFBVCxDQUFpRkMsU0FBakYsRUFBMEdDLFNBQTFHLEVBQWdMO0VBQzVLLE9BQU8sVUFBVW5CLEdBQVYsRUFBeUJvQixhQUF6QixFQUEwREMsYUFBMUQsRUFBdUg7SUFDMUgsT0FBTyxDQUNIckIsR0FERyxrQ0FHSWtCLFNBQVMsRUFIYixHQUlJRSxhQUpKLG1DQU9JRCxTQUFTLEVBUGIsR0FRSUUsYUFSSixFQUFQO0VBV0gsQ0FaRDtBQWFIOztBQUVELFNBQVNDLGVBQVQsQ0FBeUVDLE1BQXpFLEVBQWdHQyxPQUFoRyxFQUFxSztFQUNqSyxJQUFJLFdBQVdBLE9BQVgsSUFBc0IsY0FBY0EsT0FBeEMsRUFBaUQ7SUFDN0MsSUFBQUMsMkJBQUEsRUFBZUQsT0FBZjtFQUNILENBRkQsTUFFTztJQUNILElBQUFDLDJCQUFBLEVBQWU7TUFDWFgsS0FBSyxFQUFFVTtJQURJLENBQWY7RUFHSDs7RUFFRCxJQUFNRSxNQUFNLEdBQUdILE1BQU0sRUFBckI7RUFFQSxJQUFBRSwyQkFBQSxFQUFlLElBQWY7RUFFQSxPQUFPQyxNQUFQO0FBQ0gifQ==
|
|
45
|
+
var _renderWithModel = require("./renderWithModel");
|
|
46
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1Rlc3RpbmcvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlVXBkYXRlQXJnc0ZhY3RvcnksIFVwZGF0ZUFyZ3NGYWN0b3J5IH0gZnJvbSBcIi4vY3JlYXRlVXBkYXRlQXJnc0ZhY3RvcnlcIjtcbmltcG9ydCB7IGV4ZWNDbWQgfSBmcm9tIFwiLi9leGVjQ21kXCI7XG5pbXBvcnQgeyBSZW5kZXJXaXRoTW9kZWxPcHRpb25zIH0gZnJvbSBcIi4vZmFrZU9wdGlvbnNcIjtcbmltcG9ydCB7IGdldE9mTXNnUGFyYW1zIH0gZnJvbSBcIi4vZ2V0T2ZNc2dQYXJhbXNcIjtcbmltcG9ydCB7IGdldFVwZGF0ZUZuIH0gZnJvbSBcIi4vZ2V0VXBkYXRlRm5cIjtcbmltcG9ydCB7IHJlbmRlcldpdGhNb2RlbCB9IGZyb20gXCIuL3JlbmRlcldpdGhNb2RlbFwiO1xuXG5leHBvcnQgdHlwZSB7XG4gICAgVXBkYXRlQXJnc0ZhY3RvcnksXG4gICAgUmVuZGVyV2l0aE1vZGVsT3B0aW9ucyxcbn07XG5cbmV4cG9ydCB7XG4gICAgZ2V0T2ZNc2dQYXJhbXMsXG4gICAgZXhlY0NtZCxcbiAgICBnZXRVcGRhdGVGbixcbiAgICBjcmVhdGVVcGRhdGVBcmdzRmFjdG9yeSxcbiAgICByZW5kZXJXaXRoTW9kZWwsXG59OyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0EifQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { MessageBase } from "../Types";
|
|
2
|
+
import { RenderWithModelOptions } from "./fakeOptions";
|
|
3
|
+
/**
|
|
4
|
+
* Renders a component with a provided model.
|
|
5
|
+
* @template TModel The type of the model.
|
|
6
|
+
* @template TMessage The type of the message discriminated union.
|
|
7
|
+
* @template TResult The return type of the render function.
|
|
8
|
+
* @param {() => TResult} render A function to render the component. Use the `render` function of the used testing library.
|
|
9
|
+
* @param {(TModel | RenderWithModelOptions<TModel, TMessage>)} options The model or an options object.
|
|
10
|
+
* @returns {TResult} The returned value of the `render` function.
|
|
11
|
+
*/
|
|
12
|
+
declare function renderWithModel<TModel, TMessage extends MessageBase, TResult>(render: () => TResult, options: TModel | RenderWithModelOptions<TModel, TMessage>): TResult;
|
|
13
|
+
export { renderWithModel, };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.renderWithModel = renderWithModel;
|
|
7
|
+
|
|
8
|
+
var _fakeOptions = require("./fakeOptions");
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Renders a component with a provided model.
|
|
12
|
+
* @template TModel The type of the model.
|
|
13
|
+
* @template TMessage The type of the message discriminated union.
|
|
14
|
+
* @template TResult The return type of the render function.
|
|
15
|
+
* @param {() => TResult} render A function to render the component. Use the `render` function of the used testing library.
|
|
16
|
+
* @param {(TModel | RenderWithModelOptions<TModel, TMessage>)} options The model or an options object.
|
|
17
|
+
* @returns {TResult} The returned value of the `render` function.
|
|
18
|
+
*/
|
|
19
|
+
function renderWithModel(render, options) {
|
|
20
|
+
if ("model" in options && "dispatch" in options) {
|
|
21
|
+
(0, _fakeOptions.setFakeOptions)(options);
|
|
22
|
+
} else {
|
|
23
|
+
(0, _fakeOptions.setFakeOptions)({
|
|
24
|
+
model: options
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
var result = render();
|
|
29
|
+
(0, _fakeOptions.setFakeOptions)(null);
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZW5kZXJXaXRoTW9kZWwiLCJyZW5kZXIiLCJvcHRpb25zIiwic2V0RmFrZU9wdGlvbnMiLCJtb2RlbCIsInJlc3VsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9UZXN0aW5nL3JlbmRlcldpdGhNb2RlbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZXNzYWdlQmFzZSB9IGZyb20gXCIuLi9UeXBlc1wiO1xuaW1wb3J0IHsgUmVuZGVyV2l0aE1vZGVsT3B0aW9ucywgc2V0RmFrZU9wdGlvbnMgfSBmcm9tIFwiLi9mYWtlT3B0aW9uc1wiO1xuXG4vKipcbiAqIFJlbmRlcnMgYSBjb21wb25lbnQgd2l0aCBhIHByb3ZpZGVkIG1vZGVsLlxuICogQHRlbXBsYXRlIFRNb2RlbCBUaGUgdHlwZSBvZiB0aGUgbW9kZWwuXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2UgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqIEB0ZW1wbGF0ZSBUUmVzdWx0IFRoZSByZXR1cm4gdHlwZSBvZiB0aGUgcmVuZGVyIGZ1bmN0aW9uLlxuICogQHBhcmFtIHsoKSA9PiBUUmVzdWx0fSByZW5kZXIgQSBmdW5jdGlvbiB0byByZW5kZXIgdGhlIGNvbXBvbmVudC4gVXNlIHRoZSBgcmVuZGVyYCBmdW5jdGlvbiBvZiB0aGUgdXNlZCB0ZXN0aW5nIGxpYnJhcnkuXG4gKiBAcGFyYW0geyhUTW9kZWwgfCBSZW5kZXJXaXRoTW9kZWxPcHRpb25zPFRNb2RlbCwgVE1lc3NhZ2U+KX0gb3B0aW9ucyBUaGUgbW9kZWwgb3IgYW4gb3B0aW9ucyBvYmplY3QuXG4gKiBAcmV0dXJucyB7VFJlc3VsdH0gVGhlIHJldHVybmVkIHZhbHVlIG9mIHRoZSBgcmVuZGVyYCBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gcmVuZGVyV2l0aE1vZGVsPFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZSwgVFJlc3VsdD4gKHJlbmRlcjogKCkgPT4gVFJlc3VsdCwgb3B0aW9uczogVE1vZGVsIHwgUmVuZGVyV2l0aE1vZGVsT3B0aW9uczxUTW9kZWwsIFRNZXNzYWdlPik6IFRSZXN1bHQge1xuICAgIGlmIChcIm1vZGVsXCIgaW4gb3B0aW9ucyAmJiBcImRpc3BhdGNoXCIgaW4gb3B0aW9ucykge1xuICAgICAgICBzZXRGYWtlT3B0aW9ucyhvcHRpb25zIGFzIFJlbmRlcldpdGhNb2RlbE9wdGlvbnM8dW5rbm93biwgTWVzc2FnZUJhc2U+KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzZXRGYWtlT3B0aW9ucyh7XG4gICAgICAgICAgICBtb2RlbDogb3B0aW9ucyxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gcmVuZGVyKCk7XG5cbiAgICBzZXRGYWtlT3B0aW9ucyhudWxsKTtcblxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCB7XG4gICAgcmVuZGVyV2l0aE1vZGVsLFxufTsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxlQUFULENBQXlFQyxNQUF6RSxFQUFnR0MsT0FBaEcsRUFBcUs7RUFDakssSUFBSSxXQUFXQSxPQUFYLElBQXNCLGNBQWNBLE9BQXhDLEVBQWlEO0lBQzdDLElBQUFDLDJCQUFBLEVBQWVELE9BQWY7RUFDSCxDQUZELE1BRU87SUFDSCxJQUFBQywyQkFBQSxFQUFlO01BQ1hDLEtBQUssRUFBRUY7SUFESSxDQUFmO0VBR0g7O0VBRUQsSUFBTUcsTUFBTSxHQUFHSixNQUFNLEVBQXJCO0VBRUEsSUFBQUUsMkJBQUEsRUFBZSxJQUFmO0VBRUEsT0FBT0UsTUFBUDtBQUNIIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/Types.d.ts
CHANGED
|
@@ -9,18 +9,21 @@ interface MessageBase {
|
|
|
9
9
|
interface MsgSource<T extends string> {
|
|
10
10
|
source: T;
|
|
11
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* The return type of the `init` function.
|
|
14
|
+
*/
|
|
12
15
|
declare type InitResult<TModel, TMessage> = [TModel, Cmd<TMessage>?];
|
|
13
16
|
declare type InitFunction<TProps, TModel, TMessage> = (props: TProps) => InitResult<TModel, TMessage>;
|
|
14
17
|
/**
|
|
15
|
-
* Type for the return value of the update function.
|
|
18
|
+
* Type for the return value of the `update` function.
|
|
16
19
|
*/
|
|
17
|
-
declare type UpdateReturnType<TModel,
|
|
18
|
-
declare type UpdateFunction<TProps, TModel,
|
|
20
|
+
declare type UpdateReturnType<TModel, TMessage> = [Partial<TModel>, Cmd<TMessage>?];
|
|
21
|
+
declare type UpdateFunction<TProps, TModel, TMessage> = (model: TModel, msg: TMessage, props: TProps) => UpdateReturnType<TModel, TMessage>;
|
|
19
22
|
/**
|
|
20
23
|
* Type for mapping messages to functions.
|
|
21
24
|
* Use this type to create your update logic for the useElmish hook.
|
|
22
25
|
*/
|
|
23
|
-
declare type UpdateMap<TProps, TModel,
|
|
24
|
-
[M in
|
|
26
|
+
declare type UpdateMap<TProps, TModel, TMessage extends MessageBase> = {
|
|
27
|
+
[M in TMessage as M["name"]]: (msg: M, model: TModel, props: TProps) => UpdateReturnType<TModel, TMessage>;
|
|
25
28
|
};
|
|
26
29
|
export type { Nullable, MessageBase, MsgSource, InitResult, InitFunction, UpdateReturnType, UpdateFunction, UpdateMap, };
|
package/dist/Types.js
CHANGED
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL1R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENtZCB9IGZyb20gXCIuL0NtZFwiO1xuXG50eXBlIE51bGxhYmxlPFQ+
|
|
6
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL1R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENtZCB9IGZyb20gXCIuL0NtZFwiO1xuXG50eXBlIE51bGxhYmxlPFQ+ID0gVCB8IG51bGw7XG5cbmludGVyZmFjZSBNZXNzYWdlQmFzZSB7XG4gICAgbmFtZTogc3RyaW5nIHwgc3ltYm9sLFxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBNc2dTb3VyY2UgdHlwZS5cbiAqL1xuaW50ZXJmYWNlIE1zZ1NvdXJjZTxUIGV4dGVuZHMgc3RyaW5nPiB7XG4gICAgc291cmNlOiBULFxufVxuXG4vKipcbiAqIFRoZSByZXR1cm4gdHlwZSBvZiB0aGUgYGluaXRgIGZ1bmN0aW9uLlxuICovXG50eXBlIEluaXRSZXN1bHQ8VE1vZGVsLCBUTWVzc2FnZT4gPSBbVE1vZGVsLCBDbWQ8VE1lc3NhZ2U+P107XG5cbnR5cGUgSW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gPSAocHJvcHM6IFRQcm9wcykgPT4gSW5pdFJlc3VsdDxUTW9kZWwsIFRNZXNzYWdlPjtcblxuLyoqXG4gKiBUeXBlIGZvciB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBgdXBkYXRlYCBmdW5jdGlvbi5cbiAqL1xudHlwZSBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+ID0gW1BhcnRpYWw8VE1vZGVsPiwgQ21kPFRNZXNzYWdlPj9dO1xuXG50eXBlIFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gPSAobW9kZWw6IFRNb2RlbCwgbXNnOiBUTWVzc2FnZSwgcHJvcHM6IFRQcm9wcykgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPjtcblxuLyoqXG4gKiBUeXBlIGZvciBtYXBwaW5nIG1lc3NhZ2VzIHRvIGZ1bmN0aW9ucy5cbiAqIFVzZSB0aGlzIHR5cGUgdG8gY3JlYXRlIHlvdXIgdXBkYXRlIGxvZ2ljIGZvciB0aGUgdXNlRWxtaXNoIGhvb2suXG4gKi9cbnR5cGUgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlPiA9IHtcbiAgICBbTSBpbiBUTWVzc2FnZSBhcyBNW1wibmFtZVwiXV06IChtc2c6IE0sIG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpID0+IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT47XG59O1xuXG5leHBvcnQgdHlwZSB7XG4gICAgTnVsbGFibGUsXG4gICAgTWVzc2FnZUJhc2UsXG4gICAgTXNnU291cmNlLFxuICAgIEluaXRSZXN1bHQsXG4gICAgSW5pdEZ1bmN0aW9uLFxuICAgIFVwZGF0ZVJldHVyblR5cGUsXG4gICAgVXBkYXRlRnVuY3Rpb24sXG4gICAgVXBkYXRlTWFwLFxufTsiXSwibWFwcGluZ3MiOiIifQ==
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Cmd, createCmd, Dispatch } from "./Cmd";
|
|
2
|
+
import { ElmComponent } from "./ElmComponent";
|
|
2
3
|
import { errorHandler, ErrorMessage, errorMsg, handleError } from "./ErrorHandling";
|
|
3
4
|
import { init, Logger, Message } from "./Init";
|
|
4
5
|
import { InitResult, MsgSource, UpdateMap, UpdateReturnType } from "./Types";
|
|
5
6
|
import { SubscriptionResult, useElmish } from "./useElmish";
|
|
6
|
-
import { ElmComponent } from "./ElmComponent";
|
|
7
7
|
export type { Logger, Message, Cmd, Dispatch, InitResult, UpdateReturnType, SubscriptionResult, MsgSource, UpdateMap, ErrorMessage, };
|
|
8
8
|
export { init, createCmd, ElmComponent, errorMsg, errorHandler, handleError, useElmish, };
|
package/dist/index.js
CHANGED
|
@@ -48,11 +48,11 @@ Object.defineProperty(exports, "useElmish", {
|
|
|
48
48
|
|
|
49
49
|
var _Cmd = require("./Cmd");
|
|
50
50
|
|
|
51
|
+
var _ElmComponent = require("./ElmComponent");
|
|
52
|
+
|
|
51
53
|
var _ErrorHandling = require("./ErrorHandling");
|
|
52
54
|
|
|
53
55
|
var _Init = require("./Init");
|
|
54
56
|
|
|
55
57
|
var _useElmish = require("./useElmish");
|
|
56
|
-
|
|
57
|
-
var _ElmComponent = require("./ElmComponent");
|
|
58
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENtZCwgY3JlYXRlQ21kLCBEaXNwYXRjaCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgZXJyb3JIYW5kbGVyLCBFcnJvck1lc3NhZ2UsIGVycm9yTXNnLCBoYW5kbGVFcnJvciB9IGZyb20gXCIuL0Vycm9ySGFuZGxpbmdcIjtcbmltcG9ydCB7IGluaXQsIExvZ2dlciwgTWVzc2FnZSB9IGZyb20gXCIuL0luaXRcIjtcbmltcG9ydCB7IEluaXRSZXN1bHQsIE1zZ1NvdXJjZSwgVXBkYXRlTWFwLCBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4vVHlwZXNcIjtcbmltcG9ydCB7IFN1YnNjcmlwdGlvblJlc3VsdCwgdXNlRWxtaXNoIH0gZnJvbSBcIi4vdXNlRWxtaXNoXCI7XG5pbXBvcnQgeyBFbG1Db21wb25lbnQgfSBmcm9tIFwiLi9FbG1Db21wb25lbnRcIjtcblxuZXhwb3J0IHR5cGUge1xuICAgIExvZ2dlcixcbiAgICBNZXNzYWdlLFxuICAgIENtZCxcbiAgICBEaXNwYXRjaCxcbiAgICBJbml0UmVzdWx0LFxuICAgIFVwZGF0ZVJldHVyblR5cGUsXG4gICAgU3Vic2NyaXB0aW9uUmVzdWx0LFxuICAgIE1zZ1NvdXJjZSxcbiAgICBVcGRhdGVNYXAsXG4gICAgRXJyb3JNZXNzYWdlLFxufTtcblxuZXhwb3J0IHtcbiAgICBpbml0LFxuICAgIGNyZWF0ZUNtZCxcbiAgICBFbG1Db21wb25lbnQsXG4gICAgZXJyb3JNc2csXG4gICAgZXJyb3JIYW5kbGVyLFxuICAgIGhhbmRsZUVycm9yLFxuICAgIHVzZUVsbWlzaCxcbn07Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQSJ9
|
|
58
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENtZCwgY3JlYXRlQ21kLCBEaXNwYXRjaCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgRWxtQ29tcG9uZW50IH0gZnJvbSBcIi4vRWxtQ29tcG9uZW50XCI7XG5pbXBvcnQgeyBlcnJvckhhbmRsZXIsIEVycm9yTWVzc2FnZSwgZXJyb3JNc2csIGhhbmRsZUVycm9yIH0gZnJvbSBcIi4vRXJyb3JIYW5kbGluZ1wiO1xuaW1wb3J0IHsgaW5pdCwgTG9nZ2VyLCBNZXNzYWdlIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHsgSW5pdFJlc3VsdCwgTXNnU291cmNlLCBVcGRhdGVNYXAsIFVwZGF0ZVJldHVyblR5cGUgfSBmcm9tIFwiLi9UeXBlc1wiO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uUmVzdWx0LCB1c2VFbG1pc2ggfSBmcm9tIFwiLi91c2VFbG1pc2hcIjtcblxuZXhwb3J0IHR5cGUge1xuICAgIExvZ2dlcixcbiAgICBNZXNzYWdlLFxuICAgIENtZCxcbiAgICBEaXNwYXRjaCxcbiAgICBJbml0UmVzdWx0LFxuICAgIFVwZGF0ZVJldHVyblR5cGUsXG4gICAgU3Vic2NyaXB0aW9uUmVzdWx0LFxuICAgIE1zZ1NvdXJjZSxcbiAgICBVcGRhdGVNYXAsXG4gICAgRXJyb3JNZXNzYWdlLFxufTtcblxuZXhwb3J0IHtcbiAgICBpbml0LFxuICAgIGNyZWF0ZUNtZCxcbiAgICBFbG1Db21wb25lbnQsXG4gICAgZXJyb3JNc2csXG4gICAgZXJyb3JIYW5kbGVyLFxuICAgIGhhbmRsZUVycm9yLFxuICAgIHVzZUVsbWlzaCxcbn07Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSJ9
|
package/dist/useElmish.d.ts
CHANGED
|
@@ -1,12 +1,43 @@
|
|
|
1
1
|
import { Cmd, Dispatch } from "./Cmd";
|
|
2
2
|
import { InitFunction, MessageBase, UpdateFunction, UpdateMap, UpdateReturnType } from "./Types";
|
|
3
|
+
/**
|
|
4
|
+
* The return type of the `subscription` function.
|
|
5
|
+
* @template TMessage The type of the messages discriminated union.
|
|
6
|
+
*/
|
|
3
7
|
declare type SubscriptionResult<TMessage> = [Cmd<TMessage>, (() => void)?];
|
|
4
8
|
declare type Subscription<TProps, TModel, TMessage> = (model: TModel, props: TProps) => SubscriptionResult<TMessage>;
|
|
9
|
+
/**
|
|
10
|
+
* Options for the `useElmish` hook.
|
|
11
|
+
* @interface UseElmishOptions
|
|
12
|
+
* @template TProps The type of the props.
|
|
13
|
+
* @template TModel The type of the model.
|
|
14
|
+
* @template TMessage The type of the messages discriminated union.
|
|
15
|
+
*/
|
|
5
16
|
interface UseElmishOptions<TProps, TModel, TMessage extends MessageBase> {
|
|
17
|
+
/**
|
|
18
|
+
* The name of the component. This is used for logging only.
|
|
19
|
+
* @type {string}
|
|
20
|
+
*/
|
|
6
21
|
name: string;
|
|
22
|
+
/**
|
|
23
|
+
* The props passed to the component.
|
|
24
|
+
* @type {TProps}
|
|
25
|
+
*/
|
|
7
26
|
props: TProps;
|
|
27
|
+
/**
|
|
28
|
+
* The function to initialize the components model. This function is only called once.
|
|
29
|
+
* @type {InitFunction<TProps, TModel, TMessage>}
|
|
30
|
+
*/
|
|
8
31
|
init: InitFunction<TProps, TModel, TMessage>;
|
|
32
|
+
/**
|
|
33
|
+
* The `update` function or update map object.
|
|
34
|
+
* @type {(UpdateFunction<TProps, TModel, TMessage> | UpdateMap<TProps, TModel, TMessage>)}
|
|
35
|
+
*/
|
|
9
36
|
update: UpdateFunction<TProps, TModel, TMessage> | UpdateMap<TProps, TModel, TMessage>;
|
|
37
|
+
/**
|
|
38
|
+
* The optional `subscription` function. This function is only called once.
|
|
39
|
+
* @type {(UpdateFunction<TProps, TModel, TMessage> | UpdateMap<TProps, TModel, TMessage>)}
|
|
40
|
+
*/
|
|
10
41
|
subscription?: Subscription<TProps, TModel, TMessage>;
|
|
11
42
|
}
|
|
12
43
|
/**
|
package/dist/useElmish.js
CHANGED
|
@@ -9,10 +9,12 @@ exports.useElmish = useElmish;
|
|
|
9
9
|
|
|
10
10
|
var _react = require("react");
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _Common = require("./Common");
|
|
13
13
|
|
|
14
14
|
var _Init = require("./Init");
|
|
15
15
|
|
|
16
|
+
var _fakeOptions = require("./Testing/fakeOptions");
|
|
17
|
+
|
|
16
18
|
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; }
|
|
17
19
|
|
|
18
20
|
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; }
|
|
@@ -55,34 +57,25 @@ function useElmish(_ref) {
|
|
|
55
57
|
model = _useState2[0],
|
|
56
58
|
setModel = _useState2[1];
|
|
57
59
|
|
|
58
|
-
var initializedModel = model;
|
|
59
60
|
var propsRef = (0, _react.useRef)(props);
|
|
61
|
+
var isMountedRef = (0, _react.useRef)(true);
|
|
62
|
+
(0, _react.useEffect)(function () {
|
|
63
|
+
return function () {
|
|
64
|
+
isMountedRef.current = false;
|
|
65
|
+
};
|
|
66
|
+
}, []);
|
|
67
|
+
var initializedModel = model;
|
|
60
68
|
|
|
61
69
|
if (propsRef.current !== props) {
|
|
62
70
|
propsRef.current = props;
|
|
63
71
|
}
|
|
64
72
|
|
|
65
|
-
var execCmd = (0, _react.useCallback)(function (cmd) {
|
|
66
|
-
cmd.forEach(function (call) {
|
|
67
|
-
try {
|
|
68
|
-
call(dispatch);
|
|
69
|
-
} catch (ex) {
|
|
70
|
-
var _Services$logger;
|
|
71
|
-
|
|
72
|
-
(_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 ? void 0 : _Services$logger.error(ex);
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
}, []);
|
|
76
73
|
var fakeOptions = (0, _fakeOptions.getFakeOptionsOnce)();
|
|
77
74
|
var dispatch = (0, _react.useCallback)((_fakeOptions$dispatch = fakeOptions === null || fakeOptions === void 0 ? void 0 : fakeOptions.dispatch) !== null && _fakeOptions$dispatch !== void 0 ? _fakeOptions$dispatch : function (msg) {
|
|
78
75
|
if (!initializedModel) {
|
|
79
76
|
return;
|
|
80
77
|
}
|
|
81
78
|
|
|
82
|
-
var modelHasChanged = function modelHasChanged(updatedModel) {
|
|
83
|
-
return updatedModel !== initializedModel && Object.getOwnPropertyNames(updatedModel).length > 0;
|
|
84
|
-
};
|
|
85
|
-
|
|
86
79
|
if (reentered) {
|
|
87
80
|
buffer.push(msg);
|
|
88
81
|
} else {
|
|
@@ -91,14 +84,7 @@ function useElmish(_ref) {
|
|
|
91
84
|
var modified = false;
|
|
92
85
|
|
|
93
86
|
while (nextMsg) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
(_Services$logger2 = _Init.Services.logger) === null || _Services$logger2 === void 0 ? void 0 : _Services$logger2.info("Elm", "message from", name, nextMsg.name);
|
|
97
|
-
(_Services$logger3 = _Init.Services.logger) === null || _Services$logger3 === void 0 ? void 0 : _Services$logger3.debug("Elm", "message from", name, nextMsg);
|
|
98
|
-
|
|
99
|
-
if (_Init.Services.dispatchMiddleware) {
|
|
100
|
-
_Init.Services.dispatchMiddleware(nextMsg);
|
|
101
|
-
}
|
|
87
|
+
(0, _Common.logMessage)(name, nextMsg);
|
|
102
88
|
|
|
103
89
|
try {
|
|
104
90
|
var _callUpdate = callUpdate(update, nextMsg, _objectSpread(_objectSpread({}, initializedModel), currentModel), propsRef.current),
|
|
@@ -106,18 +92,18 @@ function useElmish(_ref) {
|
|
|
106
92
|
newModel = _callUpdate2[0],
|
|
107
93
|
cmd = _callUpdate2[1];
|
|
108
94
|
|
|
109
|
-
if (modelHasChanged(newModel)) {
|
|
95
|
+
if ((0, _Common.modelHasChanged)(currentModel, newModel)) {
|
|
110
96
|
currentModel = _objectSpread(_objectSpread({}, currentModel), newModel);
|
|
111
97
|
modified = true;
|
|
112
98
|
}
|
|
113
99
|
|
|
114
100
|
if (cmd) {
|
|
115
|
-
execCmd(cmd);
|
|
101
|
+
(0, _Common.execCmd)(cmd, dispatch);
|
|
116
102
|
}
|
|
117
103
|
} catch (ex) {
|
|
118
|
-
var _Services$
|
|
104
|
+
var _Services$logger;
|
|
119
105
|
|
|
120
|
-
(_Services$
|
|
106
|
+
(_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 ? void 0 : _Services$logger.error(ex);
|
|
121
107
|
}
|
|
122
108
|
|
|
123
109
|
nextMsg = buffer.shift();
|
|
@@ -125,13 +111,13 @@ function useElmish(_ref) {
|
|
|
125
111
|
|
|
126
112
|
reentered = false;
|
|
127
113
|
|
|
128
|
-
if (modified) {
|
|
114
|
+
if (isMountedRef.current && modified) {
|
|
129
115
|
setModel(function (prevModel) {
|
|
130
|
-
var _Services$
|
|
116
|
+
var _Services$logger2;
|
|
131
117
|
|
|
132
118
|
var updatedModel = _objectSpread(_objectSpread({}, prevModel), currentModel);
|
|
133
119
|
|
|
134
|
-
(_Services$
|
|
120
|
+
(_Services$logger2 = _Init.Services.logger) === null || _Services$logger2 === void 0 ? void 0 : _Services$logger2.debug("Elm", "update model for", name, updatedModel);
|
|
135
121
|
return updatedModel;
|
|
136
122
|
});
|
|
137
123
|
}
|
|
@@ -148,7 +134,7 @@ function useElmish(_ref) {
|
|
|
148
134
|
setModel(initializedModel);
|
|
149
135
|
|
|
150
136
|
if (initCmd) {
|
|
151
|
-
execCmd(initCmd);
|
|
137
|
+
(0, _Common.execCmd)(initCmd, dispatch);
|
|
152
138
|
}
|
|
153
139
|
}
|
|
154
140
|
|
|
@@ -159,7 +145,7 @@ function useElmish(_ref) {
|
|
|
159
145
|
subCmd = _subscription2[0],
|
|
160
146
|
destructor = _subscription2[1];
|
|
161
147
|
|
|
162
|
-
execCmd(subCmd);
|
|
148
|
+
(0, _Common.execCmd)(subCmd, dispatch);
|
|
163
149
|
|
|
164
150
|
if (destructor) {
|
|
165
151
|
return destructor;
|
|
@@ -183,4 +169,4 @@ function callUpdateMap(updateMap, msg, model, props) {
|
|
|
183
169
|
var updateFn = updateMap[msg.name];
|
|
184
170
|
return updateFn(msg, model, props);
|
|
185
171
|
}
|
|
186
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFbG1pc2giLCJuYW1lIiwicHJvcHMiLCJpbml0IiwidXBkYXRlIiwic3Vic2NyaXB0aW9uIiwicmVlbnRlcmVkIiwiYnVmZmVyIiwiY3VycmVudE1vZGVsIiwidXNlU3RhdGUiLCJtb2RlbCIsInNldE1vZGVsIiwiaW5pdGlhbGl6ZWRNb2RlbCIsInByb3BzUmVmIiwidXNlUmVmIiwiY3VycmVudCIsImV4ZWNDbWQiLCJ1c2VDYWxsYmFjayIsImNtZCIsImZvckVhY2giLCJjYWxsIiwiZGlzcGF0Y2giLCJleCIsIlNlcnZpY2VzIiwibG9nZ2VyIiwiZXJyb3IiLCJmYWtlT3B0aW9ucyIsImdldEZha2VPcHRpb25zT25jZSIsIm1zZyIsIm1vZGVsSGFzQ2hhbmdlZCIsInVwZGF0ZWRNb2RlbCIsIk9iamVjdCIsImdldE93blByb3BlcnR5TmFtZXMiLCJsZW5ndGgiLCJwdXNoIiwibmV4dE1zZyIsIm1vZGlmaWVkIiwiaW5mbyIsImRlYnVnIiwiZGlzcGF0Y2hNaWRkbGV3YXJlIiwiY2FsbFVwZGF0ZSIsIm5ld01vZGVsIiwic2hpZnQiLCJwcmV2TW9kZWwiLCJpbml0TW9kZWwiLCJpbml0Q21kIiwidXNlRWZmZWN0Iiwic3ViQ21kIiwiZGVzdHJ1Y3RvciIsImNhbGxVcGRhdGVNYXAiLCJ1cGRhdGVNYXAiLCJ1cGRhdGVGbiJdLCJzb3VyY2VzIjpbIi4uL3NyYy91c2VFbG1pc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzICovXG5pbXBvcnQgeyBDbWQsIERpc3BhdGNoIH0gZnJvbSBcIi4vQ21kXCI7XG5pbXBvcnQgeyBJbml0RnVuY3Rpb24sIE1lc3NhZ2VCYXNlLCBOdWxsYWJsZSwgVXBkYXRlRnVuY3Rpb24sIFVwZGF0ZU1hcCwgVXBkYXRlUmV0dXJuVHlwZSB9IGZyb20gXCIuL1R5cGVzXCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBnZXRGYWtlT3B0aW9uc09uY2UgfSBmcm9tIFwiLi9UZXN0aW5nL2Zha2VPcHRpb25zXCI7XG5pbXBvcnQgeyBTZXJ2aWNlcyB9IGZyb20gXCIuL0luaXRcIjtcblxudHlwZSBTdWJzY3JpcHRpb25SZXN1bHQ8VE1lc3NhZ2U+ID0gW0NtZDxUTWVzc2FnZT4sICgoKSA9PiB2b2lkKT9dO1xudHlwZSBTdWJzY3JpcHRpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiA9IChtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKSA9PiBTdWJzY3JpcHRpb25SZXN1bHQ8VE1lc3NhZ2U+O1xuXG5pbnRlcmZhY2UgVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4ge1xuICAgIG5hbWU6IHN0cmluZyxcbiAgICBwcm9wczogVFByb3BzLFxuICAgIGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuICAgIHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuICAgIHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxufVxuXG4vKipcbiAqIEhvb2sgdG8gdXNlIHRoZSBFbG0gYXJjaGl0ZWN0dXJlIHBhdHRlcm4gaW4gYSBmdW5jdGlvbiBjb21wb25lbnQuXG4gKiBAcGFyYW0ge1VzZUVsbWlzaE9wdGlvbnN9IG9wdGlvbnMgVGhlIG9wdGlvbnMgcGFzc2VkIHRoZSB0aGUgaG9vay5cbiAqIEByZXR1cm5zIEEgdHVwbGUgY29udGFpbmluZyB0aGUgY3VycmVudCBtb2RlbCBhbmQgdGhlIGRpc3BhdGNoZXIuXG4gKiBAZXhhbXBsZVxuICogY29uc3QgW21vZGVsLCBkaXNwYXRjaF0gPSB1c2VFbG1pc2goeyBwcm9wcywgaW5pdCwgdXBkYXRlLCBuYW1lOiBcIk15Q29tcG9uZW50XCIgfSk7XG4gKi9cbmZ1bmN0aW9uIHVzZUVsbWlzaDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKHsgbmFtZSwgcHJvcHMsIGluaXQsIHVwZGF0ZSwgc3Vic2NyaXB0aW9uIH06IFVzZUVsbWlzaE9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPik6IFtUTW9kZWwsIERpc3BhdGNoPFRNZXNzYWdlPl0ge1xuICAgIGxldCByZWVudGVyZWQgPSBmYWxzZTtcbiAgICBjb25zdCBidWZmZXI6IFRNZXNzYWdlIFtdID0gW107XG4gICAgbGV0IGN1cnJlbnRNb2RlbDogUGFydGlhbDxUTW9kZWw+ID0ge307XG5cbiAgICBjb25zdCBbbW9kZWwsIHNldE1vZGVsXSA9IHVzZVN0YXRlPE51bGxhYmxlPFRNb2RlbD4+KG51bGwpO1xuICAgIGxldCBpbml0aWFsaXplZE1vZGVsID0gbW9kZWw7XG5cbiAgICBjb25zdCBwcm9wc1JlZiA9IHVzZVJlZihwcm9wcyk7XG5cbiAgICBpZiAocHJvcHNSZWYuY3VycmVudCAhPT0gcHJvcHMpIHtcbiAgICAgICAgcHJvcHNSZWYuY3VycmVudCA9IHByb3BzO1xuICAgIH1cblxuICAgIGNvbnN0IGV4ZWNDbWQgPSB1c2VDYWxsYmFjaygoY21kOiBDbWQ8VE1lc3NhZ2U+KTogdm9pZCA9PiB7XG4gICAgICAgIGNtZC5mb3JFYWNoKGNhbGwgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjYWxsKGRpc3BhdGNoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGV4OiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5lcnJvcihleCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IGZha2VPcHRpb25zID0gZ2V0RmFrZU9wdGlvbnNPbmNlKCk7XG4gICAgY29uc3QgZGlzcGF0Y2ggPSB1c2VDYWxsYmFjayhmYWtlT3B0aW9ucz8uZGlzcGF0Y2ggPz8gKChtc2c6IFRNZXNzYWdlKTogdm9pZCA9PiB7XG4gICAgICAgIGlmICghaW5pdGlhbGl6ZWRNb2RlbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbW9kZWxIYXNDaGFuZ2VkID0gKHVwZGF0ZWRNb2RlbDogUGFydGlhbDxUTW9kZWw+KTogYm9vbGVhbiA9PiB1cGRhdGVkTW9kZWwgIT09IGluaXRpYWxpemVkTW9kZWwgJiYgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModXBkYXRlZE1vZGVsKS5sZW5ndGggPiAwO1xuXG4gICAgICAgIGlmIChyZWVudGVyZWQpIHtcbiAgICAgICAgICAgIGJ1ZmZlci5wdXNoKG1zZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWVudGVyZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICBsZXQgbmV4dE1zZzogVE1lc3NhZ2UgfCB1bmRlZmluZWQgPSBtc2c7XG4gICAgICAgICAgICBsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgd2hpbGUgKG5leHRNc2cpIHtcbiAgICAgICAgICAgICAgICBTZXJ2aWNlcy5sb2dnZXI/LmluZm8oXCJFbG1cIiwgXCJtZXNzYWdlIGZyb21cIiwgbmFtZSwgbmV4dE1zZy5uYW1lKTtcbiAgICAgICAgICAgICAgICBTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIG5hbWUsIG5leHRNc2cpO1xuXG4gICAgICAgICAgICAgICAgaWYgKFNlcnZpY2VzLmRpc3BhdGNoTWlkZGxld2FyZSkge1xuICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlcy5kaXNwYXRjaE1pZGRsZXdhcmUobmV4dE1zZyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgW25ld01vZGVsLCBjbWRdID0gY2FsbFVwZGF0ZSh1cGRhdGUsIG5leHRNc2csIHsgLi4uaW5pdGlhbGl6ZWRNb2RlbCwgLi4uY3VycmVudE1vZGVsIH0sIHByb3BzUmVmLmN1cnJlbnQpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChtb2RlbEhhc0NoYW5nZWQobmV3TW9kZWwpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50TW9kZWwgPSB7IC4uLmN1cnJlbnRNb2RlbCwgLi4ubmV3TW9kZWwgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGNtZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXhlY0NtZChjbWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5lcnJvcihleCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbmV4dE1zZyA9IGJ1ZmZlci5zaGlmdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVlbnRlcmVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmIChtb2RpZmllZCkge1xuICAgICAgICAgICAgICAgIHNldE1vZGVsKHByZXZNb2RlbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRNb2RlbCA9IHsgLi4ucHJldk1vZGVsIGFzIFRNb2RlbCwgLi4uY3VycmVudE1vZGVsIH07XG5cbiAgICAgICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIkVsbVwiLCBcInVwZGF0ZSBtb2RlbCBmb3JcIiwgbmFtZSwgdXBkYXRlZE1vZGVsKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlZE1vZGVsO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSksIFtdKTtcblxuICAgIGlmICghaW5pdGlhbGl6ZWRNb2RlbCkge1xuICAgICAgICBjb25zdCBbaW5pdE1vZGVsLCBpbml0Q21kXSA9IGZha2VPcHRpb25zPy5tb2RlbCA/IFtmYWtlT3B0aW9ucy5tb2RlbCBhcyBUTW9kZWxdIDogaW5pdChwcm9wcyk7XG5cbiAgICAgICAgaW5pdGlhbGl6ZWRNb2RlbCA9IGluaXRNb2RlbDtcbiAgICAgICAgc2V0TW9kZWwoaW5pdGlhbGl6ZWRNb2RlbCk7XG5cbiAgICAgICAgaWYgKGluaXRDbWQpIHtcbiAgICAgICAgICAgIGV4ZWNDbWQoaW5pdENtZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoc3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBbc3ViQ21kLCBkZXN0cnVjdG9yXSA9IHN1YnNjcmlwdGlvbihpbml0aWFsaXplZE1vZGVsIGFzIFRNb2RlbCwgcHJvcHMpO1xuXG4gICAgICAgICAgICBleGVjQ21kKHN1YkNtZCk7XG5cbiAgICAgICAgICAgIGlmIChkZXN0cnVjdG9yKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlc3RydWN0b3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gW2luaXRpYWxpemVkTW9kZWwsIGRpc3BhdGNoXTtcbn1cblxuZnVuY3Rpb24gY2FsbFVwZGF0ZTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LCBtc2c6IFRNZXNzYWdlLCBtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG4gICAgaWYgKHR5cGVvZiB1cGRhdGUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gdXBkYXRlKG1vZGVsLCBtc2csIHByb3BzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2FsbFVwZGF0ZU1hcCh1cGRhdGUsIG1zZywgbW9kZWwsIHByb3BzKTtcbn1cblxuZnVuY3Rpb24gY2FsbFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKHVwZGF0ZU1hcDogVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sIG1zZzogVE1lc3NhZ2UsIG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpOiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciAtLSBXZSBrbm93IHRoYXQgbXNnIGZpdHNcbiAgICBjb25zdCB1cGRhdGVGbiA9IHVwZGF0ZU1hcFttc2cubmFtZSBhcyBUTWVzc2FnZVtcIm5hbWVcIl1dIGFzIChtc2c6IFRNZXNzYWdlLCBtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKSA9PiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1zZz47XG5cbiAgICByZXR1cm4gdXBkYXRlRm4obXNnLCBtb2RlbCwgcHJvcHMpO1xufVxuXG5leHBvcnQgdHlwZSB7XG4gICAgU3Vic2NyaXB0aW9uUmVzdWx0LFxufTtcblxuZXhwb3J0IHtcbiAgICB1c2VFbG1pc2gsXG4gICAgY2FsbFVwZGF0ZSxcbiAgICBjYWxsVXBkYXRlTWFwLFxufTsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUdBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWFBO0FBQ0E7QUFDQTtBQUNBO0FB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
|
|
172
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFbG1pc2giLCJuYW1lIiwicHJvcHMiLCJpbml0IiwidXBkYXRlIiwic3Vic2NyaXB0aW9uIiwicmVlbnRlcmVkIiwiYnVmZmVyIiwiY3VycmVudE1vZGVsIiwidXNlU3RhdGUiLCJtb2RlbCIsInNldE1vZGVsIiwicHJvcHNSZWYiLCJ1c2VSZWYiLCJpc01vdW50ZWRSZWYiLCJ1c2VFZmZlY3QiLCJjdXJyZW50IiwiaW5pdGlhbGl6ZWRNb2RlbCIsImZha2VPcHRpb25zIiwiZ2V0RmFrZU9wdGlvbnNPbmNlIiwiZGlzcGF0Y2giLCJ1c2VDYWxsYmFjayIsIm1zZyIsInB1c2giLCJuZXh0TXNnIiwibW9kaWZpZWQiLCJsb2dNZXNzYWdlIiwiY2FsbFVwZGF0ZSIsIm5ld01vZGVsIiwiY21kIiwibW9kZWxIYXNDaGFuZ2VkIiwiZXhlY0NtZCIsImV4IiwiU2VydmljZXMiLCJsb2dnZXIiLCJlcnJvciIsInNoaWZ0IiwicHJldk1vZGVsIiwidXBkYXRlZE1vZGVsIiwiZGVidWciLCJpbml0TW9kZWwiLCJpbml0Q21kIiwic3ViQ21kIiwiZGVzdHJ1Y3RvciIsImNhbGxVcGRhdGVNYXAiLCJ1cGRhdGVNYXAiLCJ1cGRhdGVGbiJdLCJzb3VyY2VzIjpbIi4uL3NyYy91c2VFbG1pc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzICovXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBDbWQsIERpc3BhdGNoIH0gZnJvbSBcIi4vQ21kXCI7XG5pbXBvcnQgeyBleGVjQ21kLCBsb2dNZXNzYWdlLCBtb2RlbEhhc0NoYW5nZWQgfSBmcm9tIFwiLi9Db21tb25cIjtcbmltcG9ydCB7IFNlcnZpY2VzIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHsgZ2V0RmFrZU9wdGlvbnNPbmNlIH0gZnJvbSBcIi4vVGVzdGluZy9mYWtlT3B0aW9uc1wiO1xuaW1wb3J0IHsgSW5pdEZ1bmN0aW9uLCBNZXNzYWdlQmFzZSwgTnVsbGFibGUsIFVwZGF0ZUZ1bmN0aW9uLCBVcGRhdGVNYXAsIFVwZGF0ZVJldHVyblR5cGUgfSBmcm9tIFwiLi9UeXBlc1wiO1xuXG4vKipcbiAqIFRoZSByZXR1cm4gdHlwZSBvZiB0aGUgYHN1YnNjcmlwdGlvbmAgZnVuY3Rpb24uXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzIGRpc2NyaW1pbmF0ZWQgdW5pb24uXG4gKi9cbnR5cGUgU3Vic2NyaXB0aW9uUmVzdWx0PFRNZXNzYWdlPiA9IFtDbWQ8VE1lc3NhZ2U+LCAoKCkgPT4gdm9pZCk/XTtcbnR5cGUgU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gPSAobW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcykgPT4gU3Vic2NyaXB0aW9uUmVzdWx0PFRNZXNzYWdlPjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgYHVzZUVsbWlzaGAgaG9vay5cbiAqIEBpbnRlcmZhY2UgVXNlRWxtaXNoT3B0aW9uc1xuICogQHRlbXBsYXRlIFRQcm9wcyBUaGUgdHlwZSBvZiB0aGUgcHJvcHMuXG4gKiBAdGVtcGxhdGUgVE1vZGVsIFRoZSB0eXBlIG9mIHRoZSBtb2RlbC5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqL1xuaW50ZXJmYWNlIFVzZUVsbWlzaE9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+IHtcbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgY29tcG9uZW50LiBUaGlzIGlzIHVzZWQgZm9yIGxvZ2dpbmcgb25seS5cbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIG5hbWU6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgcHJvcHMgcGFzc2VkIHRvIHRoZSBjb21wb25lbnQuXG4gICAgICogQHR5cGUge1RQcm9wc31cbiAgICAgKi9cbiAgICBwcm9wczogVFByb3BzLFxuICAgIC8qKlxuICAgICAqIFRoZSBmdW5jdGlvbiB0byBpbml0aWFsaXplIHRoZSBjb21wb25lbnRzIG1vZGVsLiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIG9uY2UuXG4gICAgICogQHR5cGUge0luaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+fVxuICAgICAqL1xuICAgIGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuICAgIC8qKlxuICAgICAqIFRoZSBgdXBkYXRlYCBmdW5jdGlvbiBvciB1cGRhdGUgbWFwIG9iamVjdC5cbiAgICAgKiBAdHlwZSB7KFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPil9XG4gICAgICovXG4gICAgdXBkYXRlOiBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4gICAgLyoqXG4gICAgICogVGhlIG9wdGlvbmFsIGBzdWJzY3JpcHRpb25gIGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIG9uY2UuXG4gICAgICogQHR5cGUgeyhVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pfVxuICAgICAqL1xuICAgIHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxufVxuXG4vKipcbiAqIEhvb2sgdG8gdXNlIHRoZSBFbG0gYXJjaGl0ZWN0dXJlIHBhdHRlcm4gaW4gYSBmdW5jdGlvbiBjb21wb25lbnQuXG4gKiBAcGFyYW0ge1VzZUVsbWlzaE9wdGlvbnN9IG9wdGlvbnMgVGhlIG9wdGlvbnMgcGFzc2VkIHRoZSB0aGUgaG9vay5cbiAqIEByZXR1cm5zIEEgdHVwbGUgY29udGFpbmluZyB0aGUgY3VycmVudCBtb2RlbCBhbmQgdGhlIGRpc3BhdGNoZXIuXG4gKiBAZXhhbXBsZVxuICogY29uc3QgW21vZGVsLCBkaXNwYXRjaF0gPSB1c2VFbG1pc2goeyBwcm9wcywgaW5pdCwgdXBkYXRlLCBuYW1lOiBcIk15Q29tcG9uZW50XCIgfSk7XG4gKi9cbmZ1bmN0aW9uIHVzZUVsbWlzaDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKHsgbmFtZSwgcHJvcHMsIGluaXQsIHVwZGF0ZSwgc3Vic2NyaXB0aW9uIH06IFVzZUVsbWlzaE9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPik6IFtUTW9kZWwsIERpc3BhdGNoPFRNZXNzYWdlPl0ge1xuICAgIGxldCByZWVudGVyZWQgPSBmYWxzZTtcbiAgICBjb25zdCBidWZmZXI6IFRNZXNzYWdlIFtdID0gW107XG4gICAgbGV0IGN1cnJlbnRNb2RlbDogUGFydGlhbDxUTW9kZWw+ID0ge307XG5cbiAgICBjb25zdCBbbW9kZWwsIHNldE1vZGVsXSA9IHVzZVN0YXRlPE51bGxhYmxlPFRNb2RlbD4+KG51bGwpO1xuICAgIGNvbnN0IHByb3BzUmVmID0gdXNlUmVmKHByb3BzKTtcbiAgICBjb25zdCBpc01vdW50ZWRSZWYgPSB1c2VSZWYodHJ1ZSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4gKCkgPT4ge1xuICAgICAgICBpc01vdW50ZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgIH0sIFtdKTtcblxuICAgIGxldCBpbml0aWFsaXplZE1vZGVsID0gbW9kZWw7XG5cbiAgICBpZiAocHJvcHNSZWYuY3VycmVudCAhPT0gcHJvcHMpIHtcbiAgICAgICAgcHJvcHNSZWYuY3VycmVudCA9IHByb3BzO1xuICAgIH1cblxuICAgIGNvbnN0IGZha2VPcHRpb25zID0gZ2V0RmFrZU9wdGlvbnNPbmNlKCk7XG4gICAgY29uc3QgZGlzcGF0Y2ggPSB1c2VDYWxsYmFjayhmYWtlT3B0aW9ucz8uZGlzcGF0Y2ggPz8gKChtc2c6IFRNZXNzYWdlKTogdm9pZCA9PiB7XG4gICAgICAgIGlmICghaW5pdGlhbGl6ZWRNb2RlbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlZW50ZXJlZCkge1xuICAgICAgICAgICAgYnVmZmVyLnB1c2gobXNnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlZW50ZXJlZCA9IHRydWU7XG5cbiAgICAgICAgICAgIGxldCBuZXh0TXNnOiBUTWVzc2FnZSB8IHVuZGVmaW5lZCA9IG1zZztcbiAgICAgICAgICAgIGxldCBtb2RpZmllZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICB3aGlsZSAobmV4dE1zZykge1xuICAgICAgICAgICAgICAgIGxvZ01lc3NhZ2UobmFtZSwgbmV4dE1zZyk7XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBbbmV3TW9kZWwsIGNtZF0gPSBjYWxsVXBkYXRlKHVwZGF0ZSwgbmV4dE1zZywgeyAuLi5pbml0aWFsaXplZE1vZGVsLCAuLi5jdXJyZW50TW9kZWwgfSwgcHJvcHNSZWYuY3VycmVudCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGVsSGFzQ2hhbmdlZChjdXJyZW50TW9kZWwsIG5ld01vZGVsKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudE1vZGVsID0geyAuLi5jdXJyZW50TW9kZWwsIC4uLm5ld01vZGVsIH07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjbWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWNDbWQoY21kLCBkaXNwYXRjaCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlcy5sb2dnZXI/LmVycm9yKGV4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBuZXh0TXNnID0gYnVmZmVyLnNoaWZ0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZWVudGVyZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKGlzTW91bnRlZFJlZi5jdXJyZW50ICYmIG1vZGlmaWVkKSB7XG4gICAgICAgICAgICAgICAgc2V0TW9kZWwocHJldk1vZGVsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZE1vZGVsID0geyAuLi5wcmV2TW9kZWwgYXMgVE1vZGVsLCAuLi5jdXJyZW50TW9kZWwgfTtcblxuICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiRWxtXCIsIFwidXBkYXRlIG1vZGVsIGZvclwiLCBuYW1lLCB1cGRhdGVkTW9kZWwpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB1cGRhdGVkTW9kZWw7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KSwgW10pO1xuXG4gICAgaWYgKCFpbml0aWFsaXplZE1vZGVsKSB7XG4gICAgICAgIGNvbnN0IFtpbml0TW9kZWwsIGluaXRDbWRdID0gZmFrZU9wdGlvbnM/Lm1vZGVsID8gW2Zha2VPcHRpb25zLm1vZGVsIGFzIFRNb2RlbF0gOiBpbml0KHByb3BzKTtcblxuICAgICAgICBpbml0aWFsaXplZE1vZGVsID0gaW5pdE1vZGVsO1xuICAgICAgICBzZXRNb2RlbChpbml0aWFsaXplZE1vZGVsKTtcblxuICAgICAgICBpZiAoaW5pdENtZCkge1xuICAgICAgICAgICAgZXhlY0NtZChpbml0Q21kLCBkaXNwYXRjaCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoc3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBbc3ViQ21kLCBkZXN0cnVjdG9yXSA9IHN1YnNjcmlwdGlvbihpbml0aWFsaXplZE1vZGVsIGFzIFRNb2RlbCwgcHJvcHMpO1xuXG4gICAgICAgICAgICBleGVjQ21kKHN1YkNtZCwgZGlzcGF0Y2gpO1xuXG4gICAgICAgICAgICBpZiAoZGVzdHJ1Y3Rvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZXN0cnVjdG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwgW10pO1xuXG4gICAgcmV0dXJuIFtpbml0aWFsaXplZE1vZGVsLCBkaXNwYXRjaF07XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGU8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+ICh1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiwgbXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcyk6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuICAgIGlmICh0eXBlb2YgdXBkYXRlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZShtb2RlbCwgbXNnLCBwcm9wcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNhbGxVcGRhdGVNYXAodXBkYXRlLCBtc2csIG1vZGVsLCBwcm9wcyk7XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+ICh1cGRhdGVNYXA6IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LCBtc2c6IFRNZXNzYWdlLCBtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLS0gV2Uga25vdyB0aGF0IG1zZyBmaXRzXG4gICAgY29uc3QgdXBkYXRlRm4gPSB1cGRhdGVNYXBbbXNnLm5hbWUgYXMgVE1lc3NhZ2VbXCJuYW1lXCJdXSBhcyAobXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcykgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNc2c+O1xuXG4gICAgcmV0dXJuIHVwZGF0ZUZuKG1zZywgbW9kZWwsIHByb3BzKTtcbn1cblxuZXhwb3J0IHR5cGUge1xuICAgIFN1YnNjcmlwdGlvblJlc3VsdCxcbn07XG5cbmV4cG9ydCB7XG4gICAgdXNlRWxtaXNoLFxuICAgIGNhbGxVcGRhdGUsXG4gICAgY2FsbFVwZGF0ZU1hcCxcbn07Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE2Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxTQUFULE9BQXlMO0VBQUE7O0VBQUEsSUFBckhDLElBQXFILFFBQXJIQSxJQUFxSDtFQUFBLElBQS9HQyxLQUErRyxRQUEvR0EsS0FBK0c7RUFBQSxJQUF4R0MsSUFBd0csUUFBeEdBLElBQXdHO0VBQUEsSUFBbEdDLE1BQWtHLFFBQWxHQSxNQUFrRztFQUFBLElBQTFGQyxZQUEwRixRQUExRkEsWUFBMEY7RUFDckwsSUFBSUMsU0FBUyxHQUFHLEtBQWhCO0VBQ0EsSUFBTUMsTUFBbUIsR0FBRyxFQUE1QjtFQUNBLElBQUlDLFlBQTZCLEdBQUcsRUFBcEM7O0VBRUEsZ0JBQTBCLElBQUFDLGVBQUEs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
|