react-elmish 3.3.0 → 4.1.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/README.md +10 -7
- package/dist/Cmd.d.ts +5 -4
- package/dist/Cmd.js +1 -1
- package/dist/ElmComponent.d.ts +3 -2
- package/dist/ElmComponent.js +26 -20
- package/dist/ErrorHandling.js +6 -4
- package/dist/Init.d.ts +9 -10
- package/dist/Init.js +13 -16
- package/dist/Testing/index.d.ts +23 -9
- package/dist/Testing/index.js +53 -54
- package/dist/Types.d.ts +10 -9
- package/dist/Types.js +1 -1
- package/dist/index.js +1 -1
- package/dist/useElmish.d.ts +6 -5
- package/dist/useElmish.js +21 -12
- package/package.json +23 -21
- package/dist/legacy/useElmish.d.ts +0 -14
- package/dist/legacy/useElmish.js +0 -135
- package/dist/legacy/useElmishMap.d.ts +0 -14
- package/dist/legacy/useElmishMap.js +0 -137
package/dist/Testing/index.js
CHANGED
|
@@ -1,58 +1,34 @@
|
|
|
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
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
8
|
+
exports.createUpdateArgsFactory = createUpdateArgsFactory;
|
|
6
9
|
exports.execCmd = execCmd;
|
|
7
10
|
exports.getOfMsgParams = getOfMsgParams;
|
|
8
11
|
exports.getUpdateFn = getUpdateFn;
|
|
9
|
-
exports.runSingleOfPromiseCmd = runSingleOfPromiseCmd;
|
|
10
12
|
|
|
11
13
|
var _useElmish = require("../useElmish");
|
|
12
14
|
|
|
15
|
+
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; }
|
|
16
|
+
|
|
17
|
+
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; }
|
|
18
|
+
|
|
19
|
+
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; }
|
|
20
|
+
|
|
21
|
+
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; }
|
|
22
|
+
|
|
13
23
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
14
24
|
|
|
15
25
|
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); }); }; }
|
|
16
26
|
|
|
17
|
-
/**
|
|
18
|
-
* Executes a single command created by one of the ofPromise functions.
|
|
19
|
-
* @param cmd The command to process.
|
|
20
|
-
* @deprecated Use execCmd instead.
|
|
21
|
-
*/
|
|
22
|
-
function runSingleOfPromiseCmd(_x) {
|
|
23
|
-
return _runSingleOfPromiseCmd.apply(this, arguments);
|
|
24
|
-
}
|
|
25
27
|
/**
|
|
26
28
|
* Extracts the messages out of a command.
|
|
27
29
|
* @param cmd The command to process.
|
|
28
30
|
* @returns The array of messages.
|
|
29
31
|
*/
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
function _runSingleOfPromiseCmd() {
|
|
33
|
-
_runSingleOfPromiseCmd = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(cmd) {
|
|
34
|
-
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
35
|
-
while (1) {
|
|
36
|
-
switch (_context.prev = _context.next) {
|
|
37
|
-
case 0:
|
|
38
|
-
return _context.abrupt("return", new Promise(function (resolve) {
|
|
39
|
-
var dispatch = function dispatch() {
|
|
40
|
-
return resolve();
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
cmd[0](dispatch);
|
|
44
|
-
}));
|
|
45
|
-
|
|
46
|
-
case 1:
|
|
47
|
-
case "end":
|
|
48
|
-
return _context.stop();
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}, _callee);
|
|
52
|
-
}));
|
|
53
|
-
return _runSingleOfPromiseCmd.apply(this, arguments);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
32
|
function getOfMsgParams(cmd) {
|
|
57
33
|
var msgNames = [];
|
|
58
34
|
|
|
@@ -72,32 +48,38 @@ function getOfMsgParams(cmd) {
|
|
|
72
48
|
*/
|
|
73
49
|
|
|
74
50
|
|
|
75
|
-
function execCmd(
|
|
51
|
+
function execCmd(_x) {
|
|
76
52
|
return _execCmd.apply(this, arguments);
|
|
77
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Creates an update function out of an UpdateMap.
|
|
56
|
+
* @param {UpdateMap<TProps, TModel, TMessage>} updateMap The UpdateMap.
|
|
57
|
+
* @returns {(msg: TMessage, model: TModel, props: TProps) => UpdateReturnType<TModel, TMessage>} The created update function which can be used in tests.
|
|
58
|
+
*/
|
|
59
|
+
|
|
78
60
|
|
|
79
61
|
function _execCmd() {
|
|
80
|
-
_execCmd = _asyncToGenerator( /*#__PURE__*/
|
|
62
|
+
_execCmd = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(cmd) {
|
|
81
63
|
var callers, results;
|
|
82
|
-
return
|
|
64
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
83
65
|
while (1) {
|
|
84
|
-
switch (
|
|
66
|
+
switch (_context2.prev = _context2.next) {
|
|
85
67
|
case 0:
|
|
86
68
|
if (cmd) {
|
|
87
|
-
|
|
69
|
+
_context2.next = 2;
|
|
88
70
|
break;
|
|
89
71
|
}
|
|
90
72
|
|
|
91
|
-
return
|
|
73
|
+
return _context2.abrupt("return", []);
|
|
92
74
|
|
|
93
75
|
case 2:
|
|
94
76
|
callers = cmd.map( /*#__PURE__*/function () {
|
|
95
|
-
var _ref = _asyncToGenerator( /*#__PURE__*/
|
|
96
|
-
return
|
|
77
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(currentCmd) {
|
|
78
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
97
79
|
while (1) {
|
|
98
|
-
switch (
|
|
80
|
+
switch (_context.prev = _context.next) {
|
|
99
81
|
case 0:
|
|
100
|
-
return
|
|
82
|
+
return _context.abrupt("return", new Promise(function (resolve, reject) {
|
|
101
83
|
var dispatch = function dispatch(msg) {
|
|
102
84
|
return resolve(msg);
|
|
103
85
|
};
|
|
@@ -113,29 +95,29 @@ function _execCmd() {
|
|
|
113
95
|
|
|
114
96
|
case 1:
|
|
115
97
|
case "end":
|
|
116
|
-
return
|
|
98
|
+
return _context.stop();
|
|
117
99
|
}
|
|
118
100
|
}
|
|
119
|
-
},
|
|
101
|
+
}, _callee);
|
|
120
102
|
}));
|
|
121
103
|
|
|
122
|
-
return function (
|
|
104
|
+
return function (_x2) {
|
|
123
105
|
return _ref.apply(this, arguments);
|
|
124
106
|
};
|
|
125
107
|
}());
|
|
126
|
-
|
|
108
|
+
_context2.next = 5;
|
|
127
109
|
return Promise.all(callers);
|
|
128
110
|
|
|
129
111
|
case 5:
|
|
130
|
-
results =
|
|
131
|
-
return
|
|
112
|
+
results = _context2.sent;
|
|
113
|
+
return _context2.abrupt("return", results);
|
|
132
114
|
|
|
133
115
|
case 7:
|
|
134
116
|
case "end":
|
|
135
|
-
return
|
|
117
|
+
return _context2.stop();
|
|
136
118
|
}
|
|
137
119
|
}
|
|
138
|
-
},
|
|
120
|
+
}, _callee2);
|
|
139
121
|
}));
|
|
140
122
|
return _execCmd.apply(this, arguments);
|
|
141
123
|
}
|
|
@@ -145,4 +127,21 @@ function getUpdateFn(updateMap) {
|
|
|
145
127
|
return (0, _useElmish.callUpdateMap)(updateMap, msg, model, props);
|
|
146
128
|
};
|
|
147
129
|
}
|
|
148
|
-
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Creates a factory function to create a message, a model, and props which can be passed to an update function in tests.
|
|
133
|
+
* @param {() => TModel} initModel A function to create an initial model.
|
|
134
|
+
* @param {() => TProps} initProps A function to create initial props.
|
|
135
|
+
* @returns {UpdateArgsFactory<TProps, TModel, TMessage>} A function to create a message, a model, and props.
|
|
136
|
+
* @example
|
|
137
|
+
* // one time
|
|
138
|
+
* const createUpdateArgs = createUpdateArgsFactory(() => ({ ... }), () => ({ ... }));
|
|
139
|
+
* // in tests
|
|
140
|
+
* const [msg, model, props] = createUpdateArgs(Msg.myMessage(), { ... }, , { ... });
|
|
141
|
+
*/
|
|
142
|
+
function createUpdateArgsFactory(initModel, initProps) {
|
|
143
|
+
return function (msg, modelTemplate, propsTemplate) {
|
|
144
|
+
return [msg, _objectSpread(_objectSpread({}, initModel()), modelTemplate), _objectSpread(_objectSpread({}, initProps()), propsTemplate)];
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRPZk1zZ1BhcmFtcyIsImNtZCIsIm1zZ05hbWVzIiwiZGlzcGF0Y2giLCJtc2ciLCJwdXNoIiwibWFwIiwiY3VycmVudENtZCIsImV4ZWNDbWQiLCJjYWxsZXJzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJlcnJvciIsImFsbCIsInJlc3VsdHMiLCJnZXRVcGRhdGVGbiIsInVwZGF0ZU1hcCIsIm1vZGVsIiwicHJvcHMiLCJjYWxsVXBkYXRlTWFwIiwiY3JlYXRlVXBkYXRlQXJnc0ZhY3RvcnkiLCJpbml0TW9kZWwiLCJpbml0UHJvcHMiLCJtb2RlbFRlbXBsYXRlIiwicHJvcHNUZW1wbGF0ZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9UZXN0aW5nL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2VCYXNlLCBOdWxsYWJsZSwgVXBkYXRlTWFwLCBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4uL1R5cGVzXCI7XG5pbXBvcnQgeyBjYWxsVXBkYXRlTWFwIH0gZnJvbSBcIi4uL3VzZUVsbWlzaFwiO1xuaW1wb3J0IHsgQ21kIH0gZnJvbSBcIi4uL0NtZFwiO1xuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBtZXNzYWdlcyBvdXQgb2YgYSBjb21tYW5kLlxuICogQHBhcmFtIGNtZCBUaGUgY29tbWFuZCB0byBwcm9jZXNzLlxuICogQHJldHVybnMgVGhlIGFycmF5IG9mIG1lc3NhZ2VzLlxuICovXG5mdW5jdGlvbiBnZXRPZk1zZ1BhcmFtczxUTXNnPiAoY21kPzogQ21kPFRNc2c+KTogVE1zZyBbXSB7XG4gICAgY29uc3QgbXNnTmFtZXM6IFRNc2cgW10gPSBbXTtcblxuICAgIGNvbnN0IGRpc3BhdGNoID0gKG1zZzogVE1zZyk6IHZvaWQgPT4ge1xuICAgICAgICBtc2dOYW1lcy5wdXNoKG1zZyk7XG4gICAgfTtcblxuICAgIGNtZD8ubWFwKGN1cnJlbnRDbWQgPT4gY3VycmVudENtZChkaXNwYXRjaCkpO1xuXG4gICAgcmV0dXJuIG1zZ05hbWVzO1xufVxuXG4vKipcbiAqIEV4ZWN1dGVzIGFsbCBjb21tYW5kcyBhbmQgcmVzb2x2ZXMgdGhlIG1lc3NhZ2VzLlxuICogQHBhcmFtIGNtZCBUaGUgY29tbWFuZCB0byBwcm9jZXNzLlxuICogQHJldHVybnMgVGhlIGFycmF5IG9mIHByb2Nlc3NlZCBtZXNzYWdlcy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZXhlY0NtZDxUTXNnPiAoY21kPzogQ21kPFRNc2c+KTogUHJvbWlzZTxOdWxsYWJsZTxUTXNnPiBbXT4ge1xuICAgIGlmICghY21kKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBjYWxsZXJzID0gY21kLm1hcChhc3luYyBjdXJyZW50Q21kID0+IG5ldyBQcm9taXNlPE51bGxhYmxlPFRNc2c+PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGNvbnN0IGRpc3BhdGNoID0gKG1zZzogVE1zZyk6IHZvaWQgPT4gcmVzb2x2ZShtc2cpO1xuXG4gICAgICAgIGN1cnJlbnRDbWQoZGlzcGF0Y2gsIGVycm9yID0+IHtcbiAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pKTtcblxuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChjYWxsZXJzKTtcblxuICAgIHJldHVybiByZXN1bHRzO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYW4gdXBkYXRlIGZ1bmN0aW9uIG91dCBvZiBhbiBVcGRhdGVNYXAuXG4gKiBAcGFyYW0ge1VwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+fSB1cGRhdGVNYXAgVGhlIFVwZGF0ZU1hcC5cbiAqIEByZXR1cm5zIHsobXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcykgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPn0gVGhlIGNyZWF0ZWQgdXBkYXRlIGZ1bmN0aW9uIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRlc3RzLlxuICovXG5mdW5jdGlvbiBnZXRVcGRhdGVGbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKHVwZGF0ZU1hcDogVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pOiAobXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcykgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChtc2c6IFRNZXNzYWdlLCBtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG4gICAgICAgIHJldHVybiBjYWxsVXBkYXRlTWFwKHVwZGF0ZU1hcCwgbXNnLCBtb2RlbCwgcHJvcHMpO1xuICAgIH07XG59XG5cbnR5cGUgVXBkYXRlQXJnc0ZhY3Rvcnk8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+ID0gKG1zZzogVE1lc3NhZ2UsIG1vZGVsVGVtcGxhdGU/OiBQYXJ0aWFsPFRNb2RlbD4sIHByb3BzVGVtcGxhdGU/OiBQYXJ0aWFsPFRQcm9wcz4pID0+IFtUTWVzc2FnZSwgVE1vZGVsLCBUUHJvcHNdO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmYWN0b3J5IGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIG1lc3NhZ2UsIGEgbW9kZWwsIGFuZCBwcm9wcyB3aGljaCBjYW4gYmUgcGFzc2VkIHRvIGFuIHVwZGF0ZSBmdW5jdGlvbiBpbiB0ZXN0cy5cbiAqIEBwYXJhbSB7KCkgPT4gVE1vZGVsfSBpbml0TW9kZWwgQSBmdW5jdGlvbiB0byBjcmVhdGUgYW4gaW5pdGlhbCBtb2RlbC5cbiAqIEBwYXJhbSB7KCkgPT4gVFByb3BzfSBpbml0UHJvcHMgQSBmdW5jdGlvbiB0byBjcmVhdGUgaW5pdGlhbCBwcm9wcy5cbiAqIEByZXR1cm5zIHtVcGRhdGVBcmdzRmFjdG9yeTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+fSBBIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIG1lc3NhZ2UsIGEgbW9kZWwsIGFuZCBwcm9wcy5cbiAqIEBleGFtcGxlXG4gKiAvLyBvbmUgdGltZVxuICogY29uc3QgY3JlYXRlVXBkYXRlQXJncyA9IGNyZWF0ZVVwZGF0ZUFyZ3NGYWN0b3J5KCgpID0+ICh7IC4uLiB9KSwgKCkgPT4gKHsgLi4uIH0pKTtcbiAqIC8vIGluIHRlc3RzXG4gKiBjb25zdCBbbXNnLCBtb2RlbCwgcHJvcHNdID0gY3JlYXRlVXBkYXRlQXJncyhNc2cubXlNZXNzYWdlKCksIHsgLi4uIH0sICwgeyAuLi4gfSk7XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVVwZGF0ZUFyZ3NGYWN0b3J5IDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKGluaXRNb2RlbDogKCkgPT4gVE1vZGVsLCBpbml0UHJvcHM6ICgpID0+IFRQcm9wcyk6IFVwZGF0ZUFyZ3NGYWN0b3J5PFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4ge1xuICAgIHJldHVybiBmdW5jdGlvbiAobXNnOiBUTWVzc2FnZSwgbW9kZWxUZW1wbGF0ZT86IFBhcnRpYWw8VE1vZGVsPiwgcHJvcHNUZW1wbGF0ZT86IFBhcnRpYWw8VFByb3BzPik6IFtUTWVzc2FnZSwgVE1vZGVsLCBUUHJvcHNdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIG1zZyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5pbml0TW9kZWwoKSxcbiAgICAgICAgICAgICAgICAuLi5tb2RlbFRlbXBsYXRlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5pbml0UHJvcHMoKSxcbiAgICAgICAgICAgICAgICAuLi5wcm9wc1RlbXBsYXRlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICB9O1xufVxuXG5leHBvcnQgdHlwZSB7XG4gICAgVXBkYXRlQXJnc0ZhY3RvcnksXG59O1xuXG5leHBvcnQge1xuICAgIGdldE9mTXNnUGFyYW1zLFxuICAgIGV4ZWNDbWQsXG4gICAgZ2V0VXBkYXRlRm4sXG4gICAgY3JlYXRlVXBkYXRlQXJnc0ZhY3RvcnksXG59OyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQ0E7OytDQUFBLG9KOzs7Ozs7Ozs7Ozs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsY0FBVCxDQUErQkMsR0FBL0IsRUFBeUQ7RUFDckQsSUFBTUMsUUFBaUIsR0FBRyxFQUExQjs7RUFFQSxJQUFNQyxRQUFRLEdBQUcsU0FBWEEsUUFBVyxDQUFDQyxHQUFELEVBQXFCO0lBQ2xDRixRQUFRLENBQUNHLElBQVQsQ0FBY0QsR0FBZDtFQUNILENBRkQ7O0VBSUFILEdBQUcsU0FBSCxJQUFBQSxHQUFHLFdBQUgsWUFBQUEsR0FBRyxDQUFFSyxHQUFMLENBQVMsVUFBQUMsVUFBVTtJQUFBLE9BQUlBLFVBQVUsQ0FBQ0osUUFBRCxDQUFkO0VBQUEsQ0FBbkI7RUFFQSxPQUFPRCxRQUFQO0FBQ0g7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7U0FDZU0sTzs7O0FBc0JmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7d0VBMUJBLGtCQUE4QlAsR0FBOUI7SUFBQTtJQUFBO01BQUE7UUFBQTtVQUFBO1lBQUEsSUFDU0EsR0FEVDtjQUFBO2NBQUE7WUFBQTs7WUFBQSxrQ0FFZSxFQUZmOztVQUFBO1lBS1VRLE9BTFYsR0FLb0JSLEdBQUcsQ0FBQ0ssR0FBSjtjQUFBLHNFQUFRLGlCQUFNQyxVQUFOO2dCQUFBO2tCQUFBO29CQUFBO3NCQUFBO3dCQUFBLGlDQUFvQixJQUFJRyxPQUFKLENBQTRCLFVBQUNDLE9BQUQsRUFBVUMsTUFBVixFQUFxQjswQkFDekYsSUFBTVQsUUFBUSxHQUFHLFNBQVhBLFFBQVcsQ0FBQ0MsR0FBRDs0QkFBQSxPQUFxQk8sT0FBTyxDQUFDUCxHQUFELENBQTVCOzBCQUFBLENBQWpCOzswQkFFQUcsVUFBVSxDQUFDSixRQUFELEVBQVcsVUFBQVUsS0FBSyxFQUFJOzRCQUMxQixJQUFJQSxLQUFKLEVBQVc7OEJBQ1BELE1BQU0sQ0FBQ0MsS0FBRCxDQUFOOzRCQUNILENBRkQsTUFFTzs4QkFDSEYsT0FBTyxDQUFDLElBQUQsQ0FBUDs0QkFDSDswQkFDSixDQU5TLENBQVY7d0JBT0gsQ0FWMkMsQ0FBcEI7O3NCQUFBO3NCQUFBO3dCQUFBO29CQUFBO2tCQUFBO2dCQUFBO2NBQUEsQ0FBUjs7Y0FBQTtnQkFBQTtjQUFBO1lBQUEsSUFMcEI7WUFBQTtZQUFBLE9BaUIwQkQsT0FBTyxDQUFDSSxHQUFSLENBQVlMLE9BQVosQ0FqQjFCOztVQUFBO1lBaUJVTSxPQWpCVjtZQUFBLGtDQW1CV0EsT0FuQlg7O1VBQUE7VUFBQTtZQUFBO1FBQUE7TUFBQTtJQUFBO0VBQUEsQzs7OztBQTJCQSxTQUFTQyxXQUFULENBQW9FQyxTQUFwRSxFQUF5TTtFQUNyTSxPQUFPLFVBQVViLEdBQVYsRUFBeUJjLEtBQXpCLEVBQXdDQyxLQUF4QyxFQUEyRjtJQUM5RixPQUFPLElBQUFDLHdCQUFBLEVBQWNILFNBQWQsRUFBeUJiLEdBQXpCLEVBQThCYyxLQUE5QixFQUFxQ0MsS0FBckMsQ0FBUDtFQUNILENBRkQ7QUFHSDs7QUFJRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0UsdUJBQVQsQ0FBaUZDLFNBQWpGLEVBQTBHQyxTQUExRyxFQUFnTDtFQUM1SyxPQUFPLFVBQVVuQixHQUFWLEVBQXlCb0IsYUFBekIsRUFBMERDLGFBQTFELEVBQXVIO0lBQzFILE9BQU8sQ0FDSHJCLEdBREcsa0NBR0lrQixTQUFTLEVBSGIsR0FJSUUsYUFKSixtQ0FPSUQsU0FBUyxFQVBiLEdBUUlFLGFBUkosRUFBUDtFQVdILENBWkQ7QUFhSCJ9
|
package/dist/Types.d.ts
CHANGED
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
import { Cmd } from "./Cmd";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
declare type Nullable<T> = T | null;
|
|
3
|
+
interface MessageBase {
|
|
4
4
|
name: string | symbol;
|
|
5
5
|
}
|
|
6
6
|
/**
|
|
7
7
|
* Creates a MsgSource type.
|
|
8
8
|
*/
|
|
9
|
-
|
|
9
|
+
interface MsgSource<T extends string> {
|
|
10
10
|
source: T;
|
|
11
11
|
}
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
declare type InitResult<TModel, TMessage> = [TModel, Cmd<TMessage>?];
|
|
13
|
+
declare type InitFunction<TProps, TModel, TMessage> = (props: TProps) => InitResult<TModel, TMessage>;
|
|
14
14
|
/**
|
|
15
15
|
* Type for the return value of the update function.
|
|
16
16
|
*/
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
declare type UpdateReturnType<TModel, TMsg> = [Partial<TModel>, Cmd<TMsg>?];
|
|
18
|
+
declare type UpdateFunction<TProps, TModel, TMsg> = (model: TModel, msg: TMsg, props: TProps) => UpdateReturnType<TModel, TMsg>;
|
|
19
19
|
/**
|
|
20
20
|
* Type for mapping messages to functions.
|
|
21
|
-
* Use this type to create your update logic for the
|
|
21
|
+
* Use this type to create your update logic for the useElmish hook.
|
|
22
22
|
*/
|
|
23
|
-
|
|
23
|
+
declare type UpdateMap<TProps, TModel, TMsg extends MessageBase> = {
|
|
24
24
|
[M in TMsg as M["name"]]: (msg: M, model: TModel, props: TProps) => UpdateReturnType<TModel, TMsg>;
|
|
25
25
|
};
|
|
26
|
+
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,
|
|
6
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL1R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENtZCB9IGZyb20gXCIuL0NtZFwiO1xuXG50eXBlIE51bGxhYmxlPFQ+ID0gVCB8IG51bGw7XG5cbmludGVyZmFjZSBNZXNzYWdlQmFzZSB7XG4gICAgbmFtZTogc3RyaW5nIHwgc3ltYm9sLFxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBNc2dTb3VyY2UgdHlwZS5cbiAqL1xuaW50ZXJmYWNlIE1zZ1NvdXJjZTxUIGV4dGVuZHMgc3RyaW5nPiB7XG4gICAgc291cmNlOiBULFxufVxuXG50eXBlIEluaXRSZXN1bHQ8VE1vZGVsLCBUTWVzc2FnZT4gPSBbVE1vZGVsLCBDbWQ8VE1lc3NhZ2U+P107XG5cbnR5cGUgSW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gPSAocHJvcHM6IFRQcm9wcykgPT4gSW5pdFJlc3VsdDxUTW9kZWwsIFRNZXNzYWdlPjtcblxuLyoqXG4gKiBUeXBlIGZvciB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSB1cGRhdGUgZnVuY3Rpb24uXG4gKi9cbnR5cGUgVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNc2c+ID0gW1BhcnRpYWw8VE1vZGVsPiwgQ21kPFRNc2c+P107XG5cbnR5cGUgVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNc2c+ID0gKG1vZGVsOiBUTW9kZWwsIG1zZzogVE1zZywgcHJvcHM6IFRQcm9wcykgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNc2c+O1xuXG4vKipcbiAqIFR5cGUgZm9yIG1hcHBpbmcgbWVzc2FnZXMgdG8gZnVuY3Rpb25zLlxuICogVXNlIHRoaXMgdHlwZSB0byBjcmVhdGUgeW91ciB1cGRhdGUgbG9naWMgZm9yIHRoZSB1c2VFbG1pc2ggaG9vay5cbiAqL1xudHlwZSBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNc2cgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gPSB7XG4gICAgW00gaW4gVE1zZyBhcyBNW1wibmFtZVwiXV06IChtc2c6IE0sIG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpID0+IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTXNnPjtcbn07XG5cbmV4cG9ydCB0eXBlIHtcbiAgICBOdWxsYWJsZSxcbiAgICBNZXNzYWdlQmFzZSxcbiAgICBNc2dTb3VyY2UsXG4gICAgSW5pdFJlc3VsdCxcbiAgICBJbml0RnVuY3Rpb24sXG4gICAgVXBkYXRlUmV0dXJuVHlwZSxcbiAgICBVcGRhdGVGdW5jdGlvbixcbiAgICBVcGRhdGVNYXAsXG59OyJdLCJtYXBwaW5ncyI6IiJ9
|
package/dist/index.js
CHANGED
|
@@ -55,4 +55,4 @@ var _Init = require("./Init");
|
|
|
55
55
|
var _useElmish = require("./useElmish");
|
|
56
56
|
|
|
57
57
|
var _ElmComponent = require("./ElmComponent");
|
|
58
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENtZCwgY3JlYXRlQ21kLCBEaXNwYXRjaCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgZXJyb3JIYW5kbGVyLCBFcnJvck1lc3NhZ2UsIGVycm9yTXNnLCBoYW5kbGVFcnJvciB9IGZyb20gXCIuL0Vycm9ySGFuZGxpbmdcIjtcbmltcG9ydCB7IGluaXQsIExvZ2dlciwgTWVzc2FnZSB9IGZyb20gXCIuL0luaXRcIjtcbmltcG9ydCB7IEluaXRSZXN1bHQsIE1zZ1NvdXJjZSwgVXBkYXRlTWFwLCBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4vVHlwZXNcIjtcbmltcG9ydCB7IFN1YnNjcmlwdGlvblJlc3VsdCwgdXNlRWxtaXNoIH0gZnJvbSBcIi4vdXNlRWxtaXNoXCI7XG5pbXBvcnQgeyBFbG1Db21wb25lbnQgfSBmcm9tIFwiLi9FbG1Db21wb25lbnRcIjtcblxuZXhwb3J0IHR5cGUge1xuICAgIExvZ2dlcixcbiAgICBNZXNzYWdlLFxuICAgIENtZCxcbiAgICBEaXNwYXRjaCxcbiAgICBJbml0UmVzdWx0LFxuICAgIFVwZGF0ZVJldHVyblR5cGUsXG4gICAgU3Vic2NyaXB0aW9uUmVzdWx0LFxuICAgIE1zZ1NvdXJjZSxcbiAgICBVcGRhdGVNYXAsXG4gICAgRXJyb3JNZXNzYWdlLFxufTtcblxuZXhwb3J0IHtcbiAgICBpbml0LFxuICAgIGNyZWF0ZUNtZCxcbiAgICBFbG1Db21wb25lbnQsXG4gICAgZXJyb3JNc2csXG4gICAgZXJyb3JIYW5kbGVyLFxuICAgIGhhbmRsZUVycm9yLFxuICAgIHVzZUVsbWlzaCxcbn07Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQSJ9
|
package/dist/useElmish.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Cmd, Dispatch } from "./Cmd";
|
|
2
2
|
import { InitFunction, MessageBase, UpdateFunction, UpdateMap, UpdateReturnType } from "./Types";
|
|
3
|
-
|
|
3
|
+
declare type SubscriptionResult<TMessage> = [Cmd<TMessage>, (() => void)?];
|
|
4
4
|
declare type Subscription<TProps, TModel, TMessage> = (model: TModel, props: TProps) => SubscriptionResult<TMessage>;
|
|
5
5
|
interface UseElmishOptions<TProps, TModel, TMessage extends MessageBase> {
|
|
6
6
|
name: string;
|
|
@@ -16,7 +16,8 @@ interface UseElmishOptions<TProps, TModel, TMessage extends MessageBase> {
|
|
|
16
16
|
* @example
|
|
17
17
|
* const [model, dispatch] = useElmish({ props, init, update, name: "MyComponent" });
|
|
18
18
|
*/
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
export {};
|
|
19
|
+
declare function useElmish<TProps, TModel, TMessage extends MessageBase>({ name, props, init, update, subscription }: UseElmishOptions<TProps, TModel, TMessage>): [TModel, Dispatch<TMessage>];
|
|
20
|
+
declare function callUpdate<TProps, TModel, TMessage extends MessageBase>(update: UpdateFunction<TProps, TModel, TMessage> | UpdateMap<TProps, TModel, TMessage>, msg: TMessage, model: TModel, props: TProps): UpdateReturnType<TModel, TMessage>;
|
|
21
|
+
declare function callUpdateMap<TProps, TModel, TMessage extends MessageBase>(updateMap: UpdateMap<TProps, TModel, TMessage>, msg: TMessage, model: TModel, props: TProps): UpdateReturnType<TModel, TMessage>;
|
|
22
|
+
export type { SubscriptionResult, };
|
|
23
|
+
export { useElmish, callUpdate, callUpdateMap, };
|
package/dist/useElmish.js
CHANGED
|
@@ -7,10 +7,10 @@ exports.callUpdate = callUpdate;
|
|
|
7
7
|
exports.callUpdateMap = callUpdateMap;
|
|
8
8
|
exports.useElmish = useElmish;
|
|
9
9
|
|
|
10
|
-
var _Init = require("./Init");
|
|
11
|
-
|
|
12
10
|
var _react = require("react");
|
|
13
11
|
|
|
12
|
+
var _Init = require("./Init");
|
|
13
|
+
|
|
14
14
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
15
15
|
|
|
16
16
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
@@ -57,7 +57,9 @@ function useElmish(_ref) {
|
|
|
57
57
|
try {
|
|
58
58
|
call(dispatch);
|
|
59
59
|
} catch (ex) {
|
|
60
|
-
|
|
60
|
+
var _Services$logger;
|
|
61
|
+
|
|
62
|
+
(_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 ? void 0 : _Services$logger.error(ex);
|
|
61
63
|
}
|
|
62
64
|
});
|
|
63
65
|
}, []);
|
|
@@ -70,8 +72,8 @@ function useElmish(_ref) {
|
|
|
70
72
|
return updatedModel !== initializedModel && Object.getOwnPropertyNames(updatedModel).length > 0;
|
|
71
73
|
};
|
|
72
74
|
|
|
73
|
-
if (_Init.dispatchMiddleware) {
|
|
74
|
-
|
|
75
|
+
if (_Init.Services.dispatchMiddleware) {
|
|
76
|
+
_Init.Services.dispatchMiddleware(msg);
|
|
75
77
|
}
|
|
76
78
|
|
|
77
79
|
if (reentered) {
|
|
@@ -82,8 +84,10 @@ function useElmish(_ref) {
|
|
|
82
84
|
var modified = false;
|
|
83
85
|
|
|
84
86
|
while (nextMsg) {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
+
var _Services$logger2, _Services$logger3;
|
|
88
|
+
|
|
89
|
+
(_Services$logger2 = _Init.Services.logger) === null || _Services$logger2 === void 0 ? void 0 : _Services$logger2.info("Elm", "message from", name, nextMsg.name);
|
|
90
|
+
(_Services$logger3 = _Init.Services.logger) === null || _Services$logger3 === void 0 ? void 0 : _Services$logger3.debug("Elm", "message from", name, nextMsg);
|
|
87
91
|
|
|
88
92
|
try {
|
|
89
93
|
var _callUpdate = callUpdate(update, nextMsg, _objectSpread(_objectSpread({}, initializedModel), currentModel), props),
|
|
@@ -100,7 +104,9 @@ function useElmish(_ref) {
|
|
|
100
104
|
execCmd(cmd);
|
|
101
105
|
}
|
|
102
106
|
} catch (ex) {
|
|
103
|
-
|
|
107
|
+
var _Services$logger4;
|
|
108
|
+
|
|
109
|
+
(_Services$logger4 = _Init.Services.logger) === null || _Services$logger4 === void 0 ? void 0 : _Services$logger4.error(ex);
|
|
104
110
|
}
|
|
105
111
|
|
|
106
112
|
nextMsg = buffer.shift();
|
|
@@ -110,9 +116,11 @@ function useElmish(_ref) {
|
|
|
110
116
|
|
|
111
117
|
if (modified) {
|
|
112
118
|
setModel(function (prevModel) {
|
|
119
|
+
var _Services$logger5;
|
|
120
|
+
|
|
113
121
|
var updatedModel = _objectSpread(_objectSpread({}, prevModel), currentModel);
|
|
114
122
|
|
|
115
|
-
_Init.
|
|
123
|
+
(_Services$logger5 = _Init.Services.logger) === null || _Services$logger5 === void 0 ? void 0 : _Services$logger5.debug("Elm", "update model for", name, updatedModel);
|
|
116
124
|
return updatedModel;
|
|
117
125
|
});
|
|
118
126
|
}
|
|
@@ -160,7 +168,8 @@ function callUpdate(update, msg, model, props) {
|
|
|
160
168
|
|
|
161
169
|
function callUpdateMap(updateMap, msg, model, props) {
|
|
162
170
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
163
|
-
// @ts-expect-error -- We know that
|
|
164
|
-
|
|
171
|
+
// @ts-expect-error -- We know that msg fits
|
|
172
|
+
var updateFn = updateMap[msg.name];
|
|
173
|
+
return updateFn(msg, model, props);
|
|
165
174
|
}
|
|
166
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91c2VFbG1pc2gudHMiXSwibmFtZXMiOlsidXNlRWxtaXNoIiwibmFtZSIsInByb3BzIiwiaW5pdCIsInVwZGF0ZSIsInN1YnNjcmlwdGlvbiIsInJlZW50ZXJlZCIsImJ1ZmZlciIsImN1cnJlbnRNb2RlbCIsIm1vZGVsIiwic2V0TW9kZWwiLCJpbml0aWFsaXplZE1vZGVsIiwiZXhlY0NtZCIsImNtZCIsImZvckVhY2giLCJjYWxsIiwiZGlzcGF0Y2giLCJleCIsIkxvZ2dlclNlcnZpY2UiLCJlcnJvciIsIm1zZyIsIm1vZGVsSGFzQ2hhbmdlZCIsInVwZGF0ZWRNb2RlbCIsIk9iamVjdCIsImdldE93blByb3BlcnR5TmFtZXMiLCJsZW5ndGgiLCJkaXNwYXRjaE1pZGRsZXdhcmUiLCJwdXNoIiwibmV4dE1zZyIsIm1vZGlmaWVkIiwiaW5mbyIsImRlYnVnIiwiY2FsbFVwZGF0ZSIsIm5ld01vZGVsIiwic2hpZnQiLCJwcmV2TW9kZWwiLCJpbml0TW9kZWwiLCJpbml0Q21kIiwic3ViQ21kIiwiZGVzdHJ1Y3RvciIsImNhbGxVcGRhdGVNYXAiLCJ1cGRhdGVNYXAiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUNBOztBQUVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sU0FBU0EsU0FBVCxPQUF5TDtBQUFBLE1BQXJIQyxJQUFxSCxRQUFySEEsSUFBcUg7QUFBQSxNQUEvR0MsS0FBK0csUUFBL0dBLEtBQStHO0FBQUEsTUFBeEdDLElBQXdHLFFBQXhHQSxJQUF3RztBQUFBLE1BQWxHQyxNQUFrRyxRQUFsR0EsTUFBa0c7QUFBQSxNQUExRkMsWUFBMEYsUUFBMUZBLFlBQTBGO0FBQzVMLE1BQUlDLFNBQVMsR0FBRyxLQUFoQjtBQUNBLE1BQU1DLE1BQW1CLEdBQUcsRUFBNUI7QUFDQSxNQUFJQyxZQUE2QixHQUFHLEVBQXBDOztBQUVBLGtCQUEwQixxQkFBMkIsSUFBM0IsQ0FBMUI7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QUFDQTFCLElBQUFBLFFBQVEsQ0FBQ0MsZ0JBQUQsQ0FBUjs7QUFFQSxRQUFJMEIsT0FBSixFQUFhO0FBQ1R6QixNQUFBQSxPQUFPLENBQUN5QixPQUFELENBQVA7QUFDSDtBQUNKOztBQUVELHdCQUFVLFlBQU07QUFDWixRQUFJaEMsWUFBSixFQUFrQjtBQUNkLDBCQUE2QkEsWUFBWSxDQUFDTSxnQkFBRCxFQUE2QlQsS0FBN0IsQ0FBekM7QUFBQTtBQUFBLFVBQU9vQyxNQUFQO0FBQUEsVUFBZUMsVUFBZjs7QUFFQTNCLE1BQUFBLE9BQU8sQ0FBQzBCLE1BQUQsQ0FBUDs7QUFFQSxVQUFJQyxVQUFKLEVBQWdCO0FBQ1osZUFBT0EsVUFBUDtBQUNIO0FBQ0o7QUFDSixHQVZELEVBVUcsRUFWSDtBQVlBLFNBQU8sQ0FBQzVCLGdCQUFELEVBQW1CSyxRQUFuQixDQUFQO0FBQ0g7O0FBRU0sU0FBU2dCLFVBQVQsQ0FBbUU1QixNQUFuRSxFQUEySmdCLEdBQTNKLEVBQTBLWCxLQUExSyxFQUF5TFAsS0FBekwsRUFBNE87QUFDL08sTUFBSSxPQUFPRSxNQUFQLEtBQWtCLFVBQXRCLEVBQWtDO0FBQzlCLFdBQU9BLE1BQU0sQ0FBQ0ssS0FBRCxFQUFRVyxHQUFSLEVBQWFsQixLQUFiLENBQWI7QUFDSDs7QUFFRCxTQUFPc0MsYUFBYSxDQUFDcEMsTUFBRCxFQUFTZ0IsR0FBVCxFQUFjWCxLQUFkLEVBQXFCUCxLQUFyQixDQUFwQjtBQUNIOztBQUVNLFNBQVNzQyxhQUFULENBQXNFQyxTQUF0RSxFQUFzSHJCLEdBQXRILEVBQXFJWCxLQUFySSxFQUFvSlAsS0FBcEosRUFBdU07QUFDMU07QUFDQTtBQUNBLFNBQU91QyxTQUFTLENBQUNyQixHQUFHLENBQUNuQixJQUFMLENBQVQsQ0FBd0NtQixHQUF4QyxFQUE2Q1gsS0FBN0MsRUFBb0RQLEtBQXBELENBQVA7QUFDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENtZCwgRGlzcGF0Y2ggfSBmcm9tIFwiLi9DbWRcIjtcbmltcG9ydCB7IGRpc3BhdGNoTWlkZGxld2FyZSwgTG9nZ2VyU2VydmljZSB9IGZyb20gXCIuL0luaXRcIjtcbmltcG9ydCB7IEluaXRGdW5jdGlvbiwgTWVzc2FnZUJhc2UsIE51bGxhYmxlLCBVcGRhdGVGdW5jdGlvbiwgVXBkYXRlTWFwLCBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4vVHlwZXNcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCB0eXBlIFN1YnNjcmlwdGlvblJlc3VsdDxUTWVzc2FnZT4gPSBbQ21kPFRNZXNzYWdlPiwgKCgpID0+IHZvaWQpP107XG50eXBlIFN1YnNjcmlwdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+ID0gKG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpID0+IFN1YnNjcmlwdGlvblJlc3VsdDxUTWVzc2FnZT47XG5cbmludGVyZmFjZSBVc2VFbG1pc2hPcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlPiB7XG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHByb3BzOiBUUHJvcHMsXG4gICAgaW5pdDogSW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4gICAgdXBkYXRlOiBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4gICAgc3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG59XG5cbi8qKlxuICogSG9vayB0byB1c2UgdGhlIEVsbSBhcmNoaXRlY3R1cmUgcGF0dGVybiBpbiBhIGZ1bmN0aW9uIGNvbXBvbmVudC5cbiAqIEBwYXJhbSB7VXNlRWxtaXNoT3B0aW9uc30gb3B0aW9ucyBUaGUgb3B0aW9ucyBwYXNzZWQgdGhlIHRoZSBob29rLlxuICogQHJldHVybnMgQSB0dXBsZSBjb250YWluaW5nIHRoZSBjdXJyZW50IG1vZGVsIGFuZCB0aGUgZGlzcGF0Y2hlci5cbiAqIEBleGFtcGxlXG4gKiBjb25zdCBbbW9kZWwsIGRpc3BhdGNoXSA9IHVzZUVsbWlzaCh7IHByb3BzLCBpbml0LCB1cGRhdGUsIG5hbWU6IFwiTXlDb21wb25lbnRcIiB9KTtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUVsbWlzaDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKHsgbmFtZSwgcHJvcHMsIGluaXQsIHVwZGF0ZSwgc3Vic2NyaXB0aW9uIH06IFVzZUVsbWlzaE9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPik6IFtUTW9kZWwsIERpc3BhdGNoPFRNZXNzYWdlPl0ge1xuICAgIGxldCByZWVudGVyZWQgPSBmYWxzZTtcbiAgICBjb25zdCBidWZmZXI6IFRNZXNzYWdlIFtdID0gW107XG4gICAgbGV0IGN1cnJlbnRNb2RlbDogUGFydGlhbDxUTW9kZWw+ID0ge307XG5cbiAgICBjb25zdCBbbW9kZWwsIHNldE1vZGVsXSA9IHVzZVN0YXRlPE51bGxhYmxlPFRNb2RlbD4+KG51bGwpO1xuICAgIGxldCBpbml0aWFsaXplZE1vZGVsID0gbW9kZWw7XG5cbiAgICBjb25zdCBleGVjQ21kID0gdXNlQ2FsbGJhY2soKGNtZDogQ21kPFRNZXNzYWdlPik6IHZvaWQgPT4ge1xuICAgICAgICBjbWQuZm9yRWFjaChjYWxsID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY2FsbChkaXNwYXRjaCk7XG4gICAgICAgICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICAgICAgICAgIExvZ2dlclNlcnZpY2U/LmVycm9yKGV4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3QgZGlzcGF0Y2ggPSB1c2VDYWxsYmFjaygobXNnOiBUTWVzc2FnZSk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1vZGVsSGFzQ2hhbmdlZCA9ICh1cGRhdGVkTW9kZWw6IFBhcnRpYWw8VE1vZGVsPik6IGJvb2xlYW4gPT4gdXBkYXRlZE1vZGVsICE9PSBpbml0aWFsaXplZE1vZGVsICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHVwZGF0ZWRNb2RlbCkubGVuZ3RoID4gMDtcblxuICAgICAgICBpZiAoZGlzcGF0Y2hNaWRkbGV3YXJlKSB7XG4gICAgICAgICAgICBkaXNwYXRjaE1pZGRsZXdhcmUobXNnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZWVudGVyZWQpIHtcbiAgICAgICAgICAgIGJ1ZmZlci5wdXNoKG1zZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWVudGVyZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICBsZXQgbmV4dE1zZzogVE1lc3NhZ2UgfCB1bmRlZmluZWQgPSBtc2c7XG4gICAgICAgICAgICBsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgd2hpbGUgKG5leHRNc2cpIHtcbiAgICAgICAgICAgICAgICBMb2dnZXJTZXJ2aWNlPy5pbmZvKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIG5hbWUsIG5leHRNc2cubmFtZSk7XG4gICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uZGVidWcoXCJFbG1cIiwgXCJtZXNzYWdlIGZyb21cIiwgbmFtZSwgbmV4dE1zZyk7XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBbbmV3TW9kZWwsIGNtZF0gPSBjYWxsVXBkYXRlKHVwZGF0ZSwgbmV4dE1zZywgeyAuLi5pbml0aWFsaXplZE1vZGVsLCAuLi5jdXJyZW50TW9kZWwgfSwgcHJvcHMpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChtb2RlbEhhc0NoYW5nZWQobmV3TW9kZWwpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50TW9kZWwgPSB7IC4uLmN1cnJlbnRNb2RlbCwgLi4ubmV3TW9kZWwgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGNtZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXhlY0NtZChjbWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uZXJyb3IoZXgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG5leHRNc2cgPSBidWZmZXIuc2hpZnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlZW50ZXJlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAobW9kaWZpZWQpIHtcbiAgICAgICAgICAgICAgICBzZXRNb2RlbChwcmV2TW9kZWwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkTW9kZWwgPSB7IC4uLnByZXZNb2RlbCBhcyBUTW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9O1xuXG4gICAgICAgICAgICAgICAgICAgIExvZ2dlclNlcnZpY2U/LmRlYnVnKFwiRWxtXCIsIFwidXBkYXRlIG1vZGVsIGZvclwiLCBuYW1lLCB1cGRhdGVkTW9kZWwpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB1cGRhdGVkTW9kZWw7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG5cbiAgICBpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcbiAgICAgICAgY29uc3QgW2luaXRNb2RlbCwgaW5pdENtZF0gPSBpbml0KHByb3BzKTtcblxuICAgICAgICBpbml0aWFsaXplZE1vZGVsID0gaW5pdE1vZGVsO1xuICAgICAgICBzZXRNb2RlbChpbml0aWFsaXplZE1vZGVsKTtcblxuICAgICAgICBpZiAoaW5pdENtZCkge1xuICAgICAgICAgICAgZXhlY0NtZChpbml0Q21kKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChzdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IFtzdWJDbWQsIGRlc3RydWN0b3JdID0gc3Vic2NyaXB0aW9uKGluaXRpYWxpemVkTW9kZWwgYXMgVE1vZGVsLCBwcm9wcyk7XG5cbiAgICAgICAgICAgIGV4ZWNDbWQoc3ViQ21kKTtcblxuICAgICAgICAgICAgaWYgKGRlc3RydWN0b3IpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVzdHJ1Y3RvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtdKTtcblxuICAgIHJldHVybiBbaW5pdGlhbGl6ZWRNb2RlbCwgZGlzcGF0Y2hdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FsbFVwZGF0ZTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LCBtc2c6IFRNZXNzYWdlLCBtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG4gICAgaWYgKHR5cGVvZiB1cGRhdGUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gdXBkYXRlKG1vZGVsLCBtc2csIHByb3BzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2FsbFVwZGF0ZU1hcCh1cGRhdGUsIG1zZywgbW9kZWwsIHByb3BzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGxVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+ICh1cGRhdGVNYXA6IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LCBtc2c6IFRNZXNzYWdlLCBtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLS0gV2Uga25vdyB0aGF0IG5leHRNc2cgZml0c1xuICAgIHJldHVybiB1cGRhdGVNYXBbbXNnLm5hbWUgYXMgVE1lc3NhZ2VbXCJuYW1lXCJdXShtc2csIG1vZGVsLCBwcm9wcyk7XG59Il19
|
|
175
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFbG1pc2giLCJuYW1lIiwicHJvcHMiLCJpbml0IiwidXBkYXRlIiwic3Vic2NyaXB0aW9uIiwicmVlbnRlcmVkIiwiYnVmZmVyIiwiY3VycmVudE1vZGVsIiwidXNlU3RhdGUiLCJtb2RlbCIsInNldE1vZGVsIiwiaW5pdGlhbGl6ZWRNb2RlbCIsImV4ZWNDbWQiLCJ1c2VDYWxsYmFjayIsImNtZCIsImZvckVhY2giLCJjYWxsIiwiZGlzcGF0Y2giLCJleCIsIlNlcnZpY2VzIiwibG9nZ2VyIiwiZXJyb3IiLCJtc2ciLCJtb2RlbEhhc0NoYW5nZWQiLCJ1cGRhdGVkTW9kZWwiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwibGVuZ3RoIiwiZGlzcGF0Y2hNaWRkbGV3YXJlIiwicHVzaCIsIm5leHRNc2ciLCJtb2RpZmllZCIsImluZm8iLCJkZWJ1ZyIsImNhbGxVcGRhdGUiLCJuZXdNb2RlbCIsInNoaWZ0IiwicHJldk1vZGVsIiwiaW5pdE1vZGVsIiwiaW5pdENtZCIsInVzZUVmZmVjdCIsInN1YkNtZCIsImRlc3RydWN0b3IiLCJjYWxsVXBkYXRlTWFwIiwidXBkYXRlTWFwIiwidXBkYXRlRm4iXSwic291cmNlcyI6WyIuLi9zcmMvdXNlRWxtaXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwcyAqL1xuaW1wb3J0IHsgQ21kLCBEaXNwYXRjaCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgSW5pdEZ1bmN0aW9uLCBNZXNzYWdlQmFzZSwgTnVsbGFibGUsIFVwZGF0ZUZ1bmN0aW9uLCBVcGRhdGVNYXAsIFVwZGF0ZVJldHVyblR5cGUgfSBmcm9tIFwiLi9UeXBlc1wiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFNlcnZpY2VzIH0gZnJvbSBcIi4vSW5pdFwiO1xuXG50eXBlIFN1YnNjcmlwdGlvblJlc3VsdDxUTWVzc2FnZT4gPSBbQ21kPFRNZXNzYWdlPiwgKCgpID0+IHZvaWQpP107XG50eXBlIFN1YnNjcmlwdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+ID0gKG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpID0+IFN1YnNjcmlwdGlvblJlc3VsdDxUTWVzc2FnZT47XG5cbmludGVyZmFjZSBVc2VFbG1pc2hPcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlPiB7XG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHByb3BzOiBUUHJvcHMsXG4gICAgaW5pdDogSW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4gICAgdXBkYXRlOiBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4gICAgc3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG59XG5cbi8qKlxuICogSG9vayB0byB1c2UgdGhlIEVsbSBhcmNoaXRlY3R1cmUgcGF0dGVybiBpbiBhIGZ1bmN0aW9uIGNvbXBvbmVudC5cbiAqIEBwYXJhbSB7VXNlRWxtaXNoT3B0aW9uc30gb3B0aW9ucyBUaGUgb3B0aW9ucyBwYXNzZWQgdGhlIHRoZSBob29rLlxuICogQHJldHVybnMgQSB0dXBsZSBjb250YWluaW5nIHRoZSBjdXJyZW50IG1vZGVsIGFuZCB0aGUgZGlzcGF0Y2hlci5cbiAqIEBleGFtcGxlXG4gKiBjb25zdCBbbW9kZWwsIGRpc3BhdGNoXSA9IHVzZUVsbWlzaCh7IHByb3BzLCBpbml0LCB1cGRhdGUsIG5hbWU6IFwiTXlDb21wb25lbnRcIiB9KTtcbiAqL1xuZnVuY3Rpb24gdXNlRWxtaXNoPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlPiAoeyBuYW1lLCBwcm9wcywgaW5pdCwgdXBkYXRlLCBzdWJzY3JpcHRpb24gfTogVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KTogW1RNb2RlbCwgRGlzcGF0Y2g8VE1lc3NhZ2U+XSB7XG4gICAgbGV0IHJlZW50ZXJlZCA9IGZhbHNlO1xuICAgIGNvbnN0IGJ1ZmZlcjogVE1lc3NhZ2UgW10gPSBbXTtcbiAgICBsZXQgY3VycmVudE1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4gPSB7fTtcblxuICAgIGNvbnN0IFttb2RlbCwgc2V0TW9kZWxdID0gdXNlU3RhdGU8TnVsbGFibGU8VE1vZGVsPj4obnVsbCk7XG4gICAgbGV0IGluaXRpYWxpemVkTW9kZWwgPSBtb2RlbDtcblxuICAgIGNvbnN0IGV4ZWNDbWQgPSB1c2VDYWxsYmFjaygoY21kOiBDbWQ8VE1lc3NhZ2U+KTogdm9pZCA9PiB7XG4gICAgICAgIGNtZC5mb3JFYWNoKGNhbGwgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjYWxsKGRpc3BhdGNoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGV4OiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5lcnJvcihleCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IGRpc3BhdGNoID0gdXNlQ2FsbGJhY2soKG1zZzogVE1lc3NhZ2UpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKCFpbml0aWFsaXplZE1vZGVsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtb2RlbEhhc0NoYW5nZWQgPSAodXBkYXRlZE1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4pOiBib29sZWFuID0+IHVwZGF0ZWRNb2RlbCAhPT0gaW5pdGlhbGl6ZWRNb2RlbCAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh1cGRhdGVkTW9kZWwpLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgaWYgKFNlcnZpY2VzLmRpc3BhdGNoTWlkZGxld2FyZSkge1xuICAgICAgICAgICAgU2VydmljZXMuZGlzcGF0Y2hNaWRkbGV3YXJlKG1zZyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVlbnRlcmVkKSB7XG4gICAgICAgICAgICBidWZmZXIucHVzaChtc2cpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVlbnRlcmVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgbGV0IG5leHRNc2c6IFRNZXNzYWdlIHwgdW5kZWZpbmVkID0gbXNnO1xuICAgICAgICAgICAgbGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHdoaWxlIChuZXh0TXNnKSB7XG4gICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5pbmZvKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIG5hbWUsIG5leHRNc2cubmFtZSk7XG4gICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIkVsbVwiLCBcIm1lc3NhZ2UgZnJvbVwiLCBuYW1lLCBuZXh0TXNnKTtcblxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IFtuZXdNb2RlbCwgY21kXSA9IGNhbGxVcGRhdGUodXBkYXRlLCBuZXh0TXNnLCB7IC4uLmluaXRpYWxpemVkTW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9LCBwcm9wcyk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGVsSGFzQ2hhbmdlZChuZXdNb2RlbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRNb2RlbCA9IHsgLi4uY3VycmVudE1vZGVsLCAuLi5uZXdNb2RlbCB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoY21kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBleGVjQ21kKGNtZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlcy5sb2dnZXI/LmVycm9yKGV4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBuZXh0TXNnID0gYnVmZmVyLnNoaWZ0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZWVudGVyZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKG1vZGlmaWVkKSB7XG4gICAgICAgICAgICAgICAgc2V0TW9kZWwocHJldk1vZGVsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZE1vZGVsID0geyAuLi5wcmV2TW9kZWwgYXMgVE1vZGVsLCAuLi5jdXJyZW50TW9kZWwgfTtcblxuICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiRWxtXCIsIFwidXBkYXRlIG1vZGVsIGZvclwiLCBuYW1lLCB1cGRhdGVkTW9kZWwpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB1cGRhdGVkTW9kZWw7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG5cbiAgICBpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcbiAgICAgICAgY29uc3QgW2luaXRNb2RlbCwgaW5pdENtZF0gPSBpbml0KHByb3BzKTtcblxuICAgICAgICBpbml0aWFsaXplZE1vZGVsID0gaW5pdE1vZGVsO1xuICAgICAgICBzZXRNb2RlbChpbml0aWFsaXplZE1vZGVsKTtcblxuICAgICAgICBpZiAoaW5pdENtZCkge1xuICAgICAgICAgICAgZXhlY0NtZChpbml0Q21kKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChzdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IFtzdWJDbWQsIGRlc3RydWN0b3JdID0gc3Vic2NyaXB0aW9uKGluaXRpYWxpemVkTW9kZWwgYXMgVE1vZGVsLCBwcm9wcyk7XG5cbiAgICAgICAgICAgIGV4ZWNDbWQoc3ViQ21kKTtcblxuICAgICAgICAgICAgaWYgKGRlc3RydWN0b3IpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVzdHJ1Y3RvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtdKTtcblxuICAgIHJldHVybiBbaW5pdGlhbGl6ZWRNb2RlbCwgZGlzcGF0Y2hdO1xufVxuXG5mdW5jdGlvbiBjYWxsVXBkYXRlPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlPiAodXBkYXRlOiBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sIG1zZzogVE1lc3NhZ2UsIG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpOiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+IHtcbiAgICBpZiAodHlwZW9mIHVwZGF0ZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiB1cGRhdGUobW9kZWwsIG1zZywgcHJvcHMpO1xuICAgIH1cblxuICAgIHJldHVybiBjYWxsVXBkYXRlTWFwKHVwZGF0ZSwgbXNnLCBtb2RlbCwgcHJvcHMpO1xufVxuXG5mdW5jdGlvbiBjYWxsVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlPiAodXBkYXRlTWFwOiBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiwgbXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcyk6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIC0tIFdlIGtub3cgdGhhdCBtc2cgZml0c1xuICAgIGNvbnN0IHVwZGF0ZUZuID0gdXBkYXRlTWFwW21zZy5uYW1lIGFzIFRNZXNzYWdlW1wibmFtZVwiXV0gYXMgKG1zZzogVE1lc3NhZ2UsIG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpID0+IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTXNnPjtcblxuICAgIHJldHVybiB1cGRhdGVGbihtc2csIG1vZGVsLCBwcm9wcyk7XG59XG5cbmV4cG9ydCB0eXBlIHtcbiAgICBTdWJzY3JpcHRpb25SZXN1bHQsXG59O1xuXG5leHBvcnQge1xuICAgIHVzZUVsbWlzaCxcbiAgICBjYWxsVXBkYXRlLFxuICAgIGNhbGxVcGRhdGVNYXAsXG59OyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBYUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxTQUFULE9BQXlMO0VBQUEsSUFBckhDLElBQXFILFFBQXJIQSxJQUFxSDtFQUFBLElBQS9HQyxLQUErRyxRQUEvR0EsS0FBK0c7RUFBQSxJQUF4R0MsSUFBd0csUUFBeEdBLElBQXdHO0VBQUEsSUFBbEdDLE1BQWtHLFFBQWxHQSxNQUFrRztFQUFBLElBQTFGQyxZQUEwRixRQUExRkEsWUFBMEY7RUFDckwsSUFBSUMsU0FBUyxHQUFHLEtBQWhCO0VBQ0EsSUFBTUMsTUFBbUIsR0FBRyxFQUE1QjtFQUNBLElBQUlDLFlBQTZCLEdBQUcsRUFBcEM7O0VBRUEsZ0JBQTBCLElBQUFDLGVBQUEsRUFBMkIsSUFBM0IsQ0FBMUI7RUFBQTtFQUFBLElBQU9DLEtBQVA7RUFBQSxJQUFjQyxRQUFkOztFQUNBLElBQUlDLGdCQUFnQixHQUFHRixLQUF2QjtFQUVBLElBQU1HLE9BQU8sR0FBRyxJQUFBQyxrQkFBQSxFQUFZLFVBQUNDLEdBQUQsRUFBOEI7SUFDdERBLEdBQUcsQ0FBQ0MsT0FBSixDQUFZLFVBQUFDLElBQUksRUFBSTtNQUNoQixJQUFJO1FBQ0FBLElBQUksQ0FBQ0MsUUFBRCxDQUFKO01BQ0gsQ0FGRCxDQUVFLE9BQU9DLEVBQVAsRUFBb0I7UUFBQTs7UUFDbEIsb0JBQUFDLGNBQUEsQ0FBU0MsTUFBVCxzRUFBaUJDLEtBQWpCLENBQXVCSCxFQUF2QjtNQUNIO0lBQ0osQ0FORDtFQU9ILENBUmUsRUFRYixFQVJhLENBQWhCO0VBVUEsSUFBTUQsUUFBUSxHQUFHLElBQUFKLGtCQUFBLEVBQVksVUFBQ1MsR0FBRCxFQUF5QjtJQUNsRCxJQUFJLENBQUNYLGdCQUFMLEVBQXVCO01BQ25CO0lBQ0g7O0lBRUQsSUFBTVksZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixDQUFDQyxZQUFEO01BQUEsT0FBNENBLFlBQVksS0FBS2IsZ0JBQWpCLElBQXFDYyxNQUFNLENBQUNDLG1CQUFQLENBQTJCRixZQUEzQixFQUF5Q0csTUFBekMsR0FBa0QsQ0FBbkk7SUFBQSxDQUF4Qjs7SUFFQSxJQUFJUixjQUFBLENBQVNTLGtCQUFiLEVBQWlDO01BQzdCVCxjQUFBLENBQVNTLGtCQUFULENBQTRCTixHQUE1QjtJQUNIOztJQUVELElBQUlqQixTQUFKLEVBQWU7TUFDWEMsTUFBTSxDQUFDdUIsSUFBUCxDQUFZUCxHQUFaO0lBQ0gsQ0FGRCxNQUVPO01BQ0hqQixTQUFTLEdBQUcsSUFBWjtNQUVBLElBQUl5QixPQUE2QixHQUFHUixHQUFwQztNQUNBLElBQUlTLFFBQVEsR0FBRyxLQUFmOztNQUVBLE9BQU9ELE9BQVAsRUFBZ0I7UUFBQTs7UUFDWixxQkFBQVgsY0FBQSxDQUFTQyxNQUFULHdFQUFpQlksSUFBakIsQ0FBc0IsS0FBdEIsRUFBNkIsY0FBN0IsRUFBNkNoQyxJQUE3QyxFQUFtRDhCLE9BQU8sQ0FBQzlCLElBQTNEO1FBQ0EscUJBQUFtQixjQUFBLENBQVNDLE1BQVQsd0VBQWlCYSxLQUFqQixDQUF1QixLQUF2QixFQUE4QixjQUE5QixFQUE4Q2pDLElBQTlDLEVBQW9EOEIsT0FBcEQ7O1FBRUEsSUFBSTtVQUNBLGtCQUF3QkksVUFBVSxDQUFDL0IsTUFBRCxFQUFTMkIsT0FBVCxrQ0FBdUJuQixnQkFBdkIsR0FBNENKLFlBQTVDLEdBQTRETixLQUE1RCxDQUFsQztVQUFBO1VBQUEsSUFBT2tDLFFBQVA7VUFBQSxJQUFpQnJCLEdBQWpCOztVQUVBLElBQUlTLGVBQWUsQ0FBQ1ksUUFBRCxDQUFuQixFQUErQjtZQUMzQjVCLFlBQVksbUNBQVFBLFlBQVIsR0FBeUI0QixRQUF6QixDQUFaO1lBRUFKLFFBQVEsR0FBRyxJQUFYO1VBQ0g7O1VBRUQsSUFBSWpCLEdBQUosRUFBUztZQUNMRixPQUFPLENBQUNFLEdBQUQsQ0FBUDtVQUNIO1FBQ0osQ0FaRCxDQVlFLE9BQU9JLEVBQVAsRUFBb0I7VUFBQTs7VUFDbEIscUJBQUFDLGNBQUEsQ0FBU0MsTUFBVCx3RUFBaUJDLEtBQWpCLENBQXVCSCxFQUF2QjtRQUNIOztRQUVEWSxPQUFPLEdBQUd4QixNQUFNLENBQUM4QixLQUFQLEVBQVY7TUFDSDs7TUFDRC9CLFNBQVMsR0FBRyxLQUFaOztNQUVBLElBQUkwQixRQUFKLEVBQWM7UUFDVnJCLFFBQVEsQ0FBQyxVQUFBMkIsU0FBUyxFQUFJO1VBQUE7O1VBQ2xCLElBQU1iLFlBQVksbUNBQVFhLFNBQVIsR0FBZ0M5QixZQUFoQyxDQUFsQjs7VUFFQSxxQkFBQVksY0FBQSxDQUFTQyxNQUFULHdFQUFpQmEsS0FBakIsQ0FBdUIsS0FBdkIsRUFBOEIsa0JBQTlCLEVBQWtEakMsSUFBbEQsRUFBd0R3QixZQUF4RDtVQUVBLE9BQU9BLFlBQVA7UUFDSCxDQU5PLENBQVI7TUFPSDtJQUNKO0VBQ0osQ0FyRGdCLEVBcURkLEVBckRjLENBQWpCOztFQXVEQSxJQUFJLENBQUNiLGdCQUFMLEVBQXVCO0lBQ25CLFlBQTZCVCxJQUFJLENBQUNELEtBQUQsQ0FBakM7SUFBQTtJQUFBLElBQU9xQyxTQUFQO0lBQUEsSUFBa0JDLE9BQWxCOztJQUVBNUIsZ0JBQWdCLEdBQUcyQixTQUFuQjtJQUNBNUIsUUFBUSxDQUFDQyxnQkFBRCxDQUFSOztJQUVBLElBQUk0QixPQUFKLEVBQWE7TUFDVDNCLE9BQU8sQ0FBQzJCLE9BQUQsQ0FBUDtJQUNIO0VBQ0o7O0VBRUQsSUFBQUMsZ0JBQUEsRUFBVSxZQUFNO0lBQ1osSUFBSXBDLFlBQUosRUFBa0I7TUFDZCxvQkFBNkJBLFlBQVksQ0FBQ08sZ0JBQUQsRUFBNkJWLEtBQTdCLENBQXpDO01BQUE7TUFBQSxJQUFPd0MsTUFBUDtNQUFBLElBQWVDLFVBQWY7O01BRUE5QixPQUFPLENBQUM2QixNQUFELENBQVA7O01BRUEsSUFBSUMsVUFBSixFQUFnQjtRQUNaLE9BQU9BLFVBQVA7TUFDSDtJQUNKO0VBQ0osQ0FWRCxFQVVHLEVBVkg7RUFZQSxPQUFPLENBQUMvQixnQkFBRCxFQUFtQk0sUUFBbkIsQ0FBUDtBQUNIOztBQUVELFNBQVNpQixVQUFULENBQW1FL0IsTUFBbkUsRUFBMkptQixHQUEzSixFQUEwS2IsS0FBMUssRUFBeUxSLEtBQXpMLEVBQTRPO0VBQ3hPLElBQUksT0FBT0UsTUFBUCxLQUFrQixVQUF0QixFQUFrQztJQUM5QixPQUFPQSxNQUFNLENBQUNNLEtBQUQsRUFBUWEsR0FBUixFQUFhckIsS0FBYixDQUFiO0VBQ0g7O0VBRUQsT0FBTzBDLGFBQWEsQ0FBQ3hDLE1BQUQsRUFBU21CLEdBQVQsRUFBY2IsS0FBZCxFQUFxQlIsS0FBckIsQ0FBcEI7QUFDSDs7QUFFRCxTQUFTMEMsYUFBVCxDQUFzRUMsU0FBdEUsRUFBc0h0QixHQUF0SCxFQUFxSWIsS0FBckksRUFBb0pSLEtBQXBKLEVBQXVNO0VBQ25NO0VBQ0E7RUFDQSxJQUFNNEMsUUFBUSxHQUFHRCxTQUFTLENBQUN0QixHQUFHLENBQUN0QixJQUFMLENBQTFCO0VBRUEsT0FBTzZDLFFBQVEsQ0FBQ3ZCLEdBQUQsRUFBTWIsS0FBTixFQUFhUixLQUFiLENBQWY7QUFDSCJ9
|
package/package.json
CHANGED
|
@@ -1,29 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-elmish",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.1.0",
|
|
4
4
|
"description": "Elmish for React using Typescript",
|
|
5
5
|
"author": "atheck",
|
|
6
6
|
"license": "MIT",
|
|
7
|
-
"peerDependencies": {
|
|
8
|
-
"react": ">=16.8.0"
|
|
9
|
-
},
|
|
10
|
-
"devDependencies": {
|
|
11
|
-
"@babel/cli": "7.17.6",
|
|
12
|
-
"@babel/core": "7.17.8",
|
|
13
|
-
"@babel/plugin-proposal-class-properties": "7.16.7",
|
|
14
|
-
"@babel/preset-env": "7.16.11",
|
|
15
|
-
"@babel/preset-react": "7.16.7",
|
|
16
|
-
"@babel/preset-typescript": "7.16.7",
|
|
17
|
-
"@testing-library/react": "13.0.0",
|
|
18
|
-
"@types/jest": "27.4.1",
|
|
19
|
-
"@types/react": "17.0.43",
|
|
20
|
-
"eslint": "8.12.0",
|
|
21
|
-
"eslint-config-heck": "1.5.2",
|
|
22
|
-
"jest": "27.5.1",
|
|
23
|
-
"semantic-release": "19.0.2",
|
|
24
|
-
"ts-jest": "27.1.4",
|
|
25
|
-
"typescript": "4.6.3"
|
|
26
|
-
},
|
|
27
7
|
"scripts": {
|
|
28
8
|
"build": "npm run build:types && npm run build:js",
|
|
29
9
|
"build:types": "tsc --emitDeclarationOnly --project ./src",
|
|
@@ -31,8 +11,30 @@
|
|
|
31
11
|
"test": "jest --coverage",
|
|
32
12
|
"test:watch": "jest --watch --coverage",
|
|
33
13
|
"lint": "npx eslint --ext .ts,.tsx ./src",
|
|
14
|
+
"update": "npx npm-check-updates -i",
|
|
34
15
|
"semantic-release": "semantic-release"
|
|
35
16
|
},
|
|
17
|
+
"peerDependencies": {
|
|
18
|
+
"react": ">=16.8.0"
|
|
19
|
+
},
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"@babel/cli": "7.18.9",
|
|
22
|
+
"@babel/core": "7.18.9",
|
|
23
|
+
"@babel/plugin-proposal-class-properties": "7.18.6",
|
|
24
|
+
"@babel/preset-env": "7.18.9",
|
|
25
|
+
"@babel/preset-react": "7.18.6",
|
|
26
|
+
"@babel/preset-typescript": "7.18.6",
|
|
27
|
+
"@testing-library/react": "13.3.0",
|
|
28
|
+
"@types/jest": "28.1.6",
|
|
29
|
+
"@types/react": "18.0.15",
|
|
30
|
+
"eslint": "8.20.0",
|
|
31
|
+
"eslint-config-heck": "1.19.0",
|
|
32
|
+
"jest": "28.1.3",
|
|
33
|
+
"jest-environment-jsdom": "28.1.3",
|
|
34
|
+
"semantic-release": "19.0.3",
|
|
35
|
+
"ts-jest": "28.0.7",
|
|
36
|
+
"typescript": "4.7.4"
|
|
37
|
+
},
|
|
36
38
|
"homepage": "https://github.com/atheck/react-elmish",
|
|
37
39
|
"repository": {
|
|
38
40
|
"type": "git",
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Dispatch } from "../Cmd";
|
|
2
|
-
import { InitFunction, MessageBase, UpdateFunction } from "../Types";
|
|
3
|
-
/**
|
|
4
|
-
* Hook to use the Elm architecture pattern in a function component.
|
|
5
|
-
* @param props The props of the component.
|
|
6
|
-
* @param init Function to initialize the model.
|
|
7
|
-
* @param update The update function.
|
|
8
|
-
* @param name The name of the component.
|
|
9
|
-
* @returns A tuple containing the current model and the dispatcher.
|
|
10
|
-
* @example
|
|
11
|
-
* const [model, dispatch] = useElmish(props, init, update, "MyComponent");
|
|
12
|
-
* @deprecated Use `useElmish` with an options object instead.
|
|
13
|
-
*/
|
|
14
|
-
export declare function useElmish<TProps, TModel, TMsg extends MessageBase>(props: TProps, init: InitFunction<TProps, TModel, TMsg>, update: UpdateFunction<TProps, TModel, TMsg>, name: string): [TModel, Dispatch<TMsg>];
|