vest-utils 0.1.0-dev-f3ecc9 → 0.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/dist/cjs/vest-utils.development.js +67 -65
- package/dist/cjs/vest-utils.production.js +1 -1
- package/dist/es/vest-utils.development.js +68 -65
- package/dist/es/vest-utils.production.js +1 -1
- package/dist/umd/vest-utils.development.js +67 -65
- package/dist/umd/vest-utils.production.js +1 -1
- package/package.json +1 -1
- package/src/__tests__/greaterThan.test.ts +4 -13
- package/src/__tests__/lengthEquals.test.ts +2 -4
- package/src/__tests__/longerThan.test.ts +1 -3
- package/src/__tests__/numberEquals.test.ts +5 -13
- package/src/bus.ts +4 -6
- package/src/deferThrow.ts +0 -2
- package/src/vest-utils.ts +0 -3
- package/tsconfig.json +0 -1
- package/types/vest-utils.d.ts +12 -33
- package/types/vest-utils.d.ts.map +1 -1
- package/src/__tests__/tinyState.test.ts +0 -67
- package/src/tinyState.ts +0 -23
|
@@ -3,26 +3,32 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
function bindNot(fn) {
|
|
6
|
-
return (
|
|
6
|
+
return function () {
|
|
7
|
+
var args = [];
|
|
8
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
9
|
+
args[_i] = arguments[_i];
|
|
10
|
+
}
|
|
11
|
+
return !fn.apply(void 0, args);
|
|
12
|
+
};
|
|
7
13
|
}
|
|
8
14
|
|
|
9
15
|
function isNumeric(value) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
16
|
+
var str = String(value);
|
|
17
|
+
var num = Number(value);
|
|
18
|
+
var result = !isNaN(parseFloat(str)) && !isNaN(Number(value)) && isFinite(num);
|
|
13
19
|
return Boolean(result);
|
|
14
20
|
}
|
|
15
|
-
|
|
21
|
+
var isNotNumeric = bindNot(isNumeric);
|
|
16
22
|
|
|
17
23
|
function numberEquals(value, eq) {
|
|
18
24
|
return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
|
|
19
25
|
}
|
|
20
|
-
|
|
26
|
+
var numberNotEquals = bindNot(numberEquals);
|
|
21
27
|
|
|
22
28
|
function lengthEquals(value, arg1) {
|
|
23
29
|
return numberEquals(value.length, arg1);
|
|
24
30
|
}
|
|
25
|
-
|
|
31
|
+
var lengthNotEquals = bindNot(lengthEquals);
|
|
26
32
|
|
|
27
33
|
function greaterThan(value, gt) {
|
|
28
34
|
return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
|
|
@@ -35,48 +41,54 @@ function longerThan(value, arg1) {
|
|
|
35
41
|
/**
|
|
36
42
|
* Creates a cache function
|
|
37
43
|
*/
|
|
38
|
-
function createCache(maxSize
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
44
|
+
function createCache(maxSize) {
|
|
45
|
+
if (maxSize === void 0) { maxSize = 1; }
|
|
46
|
+
var cacheStorage = [];
|
|
47
|
+
var cache = function (deps, cacheAction) {
|
|
48
|
+
var cacheHit = cache.get(deps);
|
|
42
49
|
// cache hit is not null
|
|
43
50
|
if (cacheHit)
|
|
44
51
|
return cacheHit[1];
|
|
45
|
-
|
|
52
|
+
var result = cacheAction();
|
|
46
53
|
cacheStorage.unshift([deps.concat(), result]);
|
|
47
54
|
if (longerThan(cacheStorage, maxSize))
|
|
48
55
|
cacheStorage.length = maxSize;
|
|
49
56
|
return result;
|
|
50
57
|
};
|
|
51
58
|
// invalidate an item in the cache by its dependencies
|
|
52
|
-
cache.invalidate = (deps)
|
|
53
|
-
|
|
59
|
+
cache.invalidate = function (deps) {
|
|
60
|
+
var index = findIndex(deps);
|
|
54
61
|
if (index > -1)
|
|
55
62
|
cacheStorage.splice(index, 1);
|
|
56
63
|
};
|
|
57
64
|
// Retrieves an item from the cache.
|
|
58
|
-
cache.get =
|
|
65
|
+
cache.get = function (deps) {
|
|
66
|
+
return cacheStorage[findIndex(deps)] || null;
|
|
67
|
+
};
|
|
59
68
|
return cache;
|
|
60
69
|
function findIndex(deps) {
|
|
61
|
-
return cacheStorage.findIndex(
|
|
62
|
-
|
|
70
|
+
return cacheStorage.findIndex(function (_a) {
|
|
71
|
+
var cachedDeps = _a[0];
|
|
72
|
+
return lengthEquals(deps, cachedDeps.length) &&
|
|
73
|
+
deps.every(function (dep, i) { return dep === cachedDeps[i]; });
|
|
74
|
+
});
|
|
63
75
|
}
|
|
64
76
|
}
|
|
65
77
|
|
|
66
78
|
function isNull(value) {
|
|
67
79
|
return value === null;
|
|
68
80
|
}
|
|
69
|
-
|
|
81
|
+
var isNotNull = bindNot(isNull);
|
|
70
82
|
|
|
71
83
|
function isUndefined(value) {
|
|
72
84
|
return value === undefined;
|
|
73
85
|
}
|
|
74
|
-
|
|
86
|
+
var isNotUndefined = bindNot(isUndefined);
|
|
75
87
|
|
|
76
88
|
function isNullish(value) {
|
|
77
89
|
return isNull(value) || isUndefined(value);
|
|
78
90
|
}
|
|
79
|
-
|
|
91
|
+
var isNotNullish = bindNot(isNullish);
|
|
80
92
|
|
|
81
93
|
function asArray(possibleArg) {
|
|
82
94
|
return [].concat(possibleArg);
|
|
@@ -86,8 +98,12 @@ function isFunction(value) {
|
|
|
86
98
|
return typeof value === 'function';
|
|
87
99
|
}
|
|
88
100
|
|
|
89
|
-
function optionalFunctionValue(value
|
|
90
|
-
|
|
101
|
+
function optionalFunctionValue(value) {
|
|
102
|
+
var args = [];
|
|
103
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
104
|
+
args[_i - 1] = arguments[_i];
|
|
105
|
+
}
|
|
106
|
+
return isFunction(value) ? value.apply(void 0, args) : value;
|
|
91
107
|
}
|
|
92
108
|
|
|
93
109
|
function defaultTo(value, defaultValue) {
|
|
@@ -101,10 +117,10 @@ function defaultTo(value, defaultValue) {
|
|
|
101
117
|
function isArray(value) {
|
|
102
118
|
return Boolean(Array.isArray(value));
|
|
103
119
|
}
|
|
104
|
-
|
|
120
|
+
var isNotArray = bindNot(isArray);
|
|
105
121
|
|
|
106
122
|
function last(values) {
|
|
107
|
-
|
|
123
|
+
var valuesArray = asArray(values);
|
|
108
124
|
return valuesArray[valuesArray.length - 1];
|
|
109
125
|
}
|
|
110
126
|
|
|
@@ -112,13 +128,14 @@ function last(values) {
|
|
|
112
128
|
// Normally, behaves like a nested-array map,
|
|
113
129
|
// but returning `null` will drop the element from the array
|
|
114
130
|
function transform(array, cb) {
|
|
115
|
-
|
|
116
|
-
for (
|
|
131
|
+
var res = [];
|
|
132
|
+
for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {
|
|
133
|
+
var v = array_1[_i];
|
|
117
134
|
if (isArray(v)) {
|
|
118
135
|
res.push(transform(v, cb));
|
|
119
136
|
}
|
|
120
137
|
else {
|
|
121
|
-
|
|
138
|
+
var output = cb(v);
|
|
122
139
|
if (isNotNull(output)) {
|
|
123
140
|
res.push(output);
|
|
124
141
|
}
|
|
@@ -130,12 +147,12 @@ function valueAtPath(array, path) {
|
|
|
130
147
|
return getCurrent(array, path)[last(path)];
|
|
131
148
|
}
|
|
132
149
|
function setValueAtPath(array, path, value) {
|
|
133
|
-
|
|
150
|
+
var current = getCurrent(array, path);
|
|
134
151
|
current[last(path)] = value;
|
|
135
152
|
return array;
|
|
136
153
|
}
|
|
137
154
|
function flatten(values) {
|
|
138
|
-
return asArray(values).reduce((acc, value)
|
|
155
|
+
return asArray(values).reduce(function (acc, value) {
|
|
139
156
|
if (isArray(value)) {
|
|
140
157
|
return acc.concat(flatten(value));
|
|
141
158
|
}
|
|
@@ -143,8 +160,9 @@ function flatten(values) {
|
|
|
143
160
|
}, []);
|
|
144
161
|
}
|
|
145
162
|
function getCurrent(array, path) {
|
|
146
|
-
|
|
147
|
-
for (
|
|
163
|
+
var current = array;
|
|
164
|
+
for (var _i = 0, _a = path.slice(0, -1); _i < _a.length; _i++) {
|
|
165
|
+
var p = _a[_i];
|
|
148
166
|
current[p] = defaultTo(current[p], []);
|
|
149
167
|
current = current[p];
|
|
150
168
|
}
|
|
@@ -161,7 +179,7 @@ var nestedArray = /*#__PURE__*/Object.freeze({
|
|
|
161
179
|
});
|
|
162
180
|
|
|
163
181
|
function callEach(arr) {
|
|
164
|
-
return arr.forEach(fn
|
|
182
|
+
return arr.forEach(function (fn) { return fn(); });
|
|
165
183
|
}
|
|
166
184
|
|
|
167
185
|
/**
|
|
@@ -208,27 +226,27 @@ function isBoolean(value) {
|
|
|
208
226
|
}
|
|
209
227
|
|
|
210
228
|
function deferThrow(message) {
|
|
211
|
-
setTimeout(()
|
|
229
|
+
setTimeout(function () {
|
|
212
230
|
throw new Error(message);
|
|
213
231
|
}, 0);
|
|
214
232
|
}
|
|
215
233
|
|
|
216
234
|
function createBus() {
|
|
217
|
-
|
|
235
|
+
var listeners = {};
|
|
218
236
|
return {
|
|
219
|
-
emit(event, data) {
|
|
220
|
-
listener(event).forEach(handler
|
|
237
|
+
emit: function (event, data) {
|
|
238
|
+
listener(event).forEach(function (handler) {
|
|
221
239
|
handler(data);
|
|
222
240
|
});
|
|
223
241
|
},
|
|
224
|
-
on(event, handler) {
|
|
242
|
+
on: function (event, handler) {
|
|
225
243
|
listeners[event] = listener(event).concat(handler);
|
|
226
244
|
return {
|
|
227
|
-
off() {
|
|
228
|
-
listeners[event] = listener(event).filter(h
|
|
229
|
-
}
|
|
245
|
+
off: function () {
|
|
246
|
+
listeners[event] = listener(event).filter(function (h) { return h !== handler; });
|
|
247
|
+
}
|
|
230
248
|
};
|
|
231
|
-
}
|
|
249
|
+
}
|
|
232
250
|
};
|
|
233
251
|
function listener(event) {
|
|
234
252
|
return listeners[event] || [];
|
|
@@ -243,15 +261,17 @@ var bus = /*#__PURE__*/Object.freeze({
|
|
|
243
261
|
/**
|
|
244
262
|
* @returns a unique numeric id.
|
|
245
263
|
*/
|
|
246
|
-
|
|
264
|
+
var seq = genSeq();
|
|
247
265
|
function genSeq(namespace) {
|
|
248
|
-
return ((n)
|
|
266
|
+
return (function (n) { return function () {
|
|
267
|
+
return "".concat(namespace ? namespace + '_' : '').concat(n++);
|
|
268
|
+
}; })(0);
|
|
249
269
|
}
|
|
250
270
|
|
|
251
271
|
function mapFirst(array, callback) {
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
for (
|
|
272
|
+
var broke = false;
|
|
273
|
+
var breakoutValue = null;
|
|
274
|
+
for (var i = 0; i < array.length; i++) {
|
|
255
275
|
callback(array[i], breakout, i);
|
|
256
276
|
if (broke) {
|
|
257
277
|
return breakoutValue;
|
|
@@ -277,29 +297,12 @@ function isEmpty(value) {
|
|
|
277
297
|
}
|
|
278
298
|
return false;
|
|
279
299
|
}
|
|
280
|
-
|
|
300
|
+
var isNotEmpty = bindNot(isEmpty);
|
|
281
301
|
|
|
282
302
|
function isPositive(value) {
|
|
283
303
|
return greaterThan(value, 0);
|
|
284
304
|
}
|
|
285
305
|
|
|
286
|
-
function createTinyState(initialValue) {
|
|
287
|
-
let value;
|
|
288
|
-
resetValue();
|
|
289
|
-
return () => [value, setValue, resetValue];
|
|
290
|
-
function setValue(nextValue) {
|
|
291
|
-
value = optionalFunctionValue(nextValue, value);
|
|
292
|
-
}
|
|
293
|
-
function resetValue() {
|
|
294
|
-
setValue(optionalFunctionValue(initialValue));
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
var tinyState = /*#__PURE__*/Object.freeze({
|
|
299
|
-
__proto__: null,
|
|
300
|
-
createTinyState: createTinyState
|
|
301
|
-
});
|
|
302
|
-
|
|
303
306
|
exports.StringObject = StringObject;
|
|
304
307
|
exports.asArray = asArray;
|
|
305
308
|
exports.assign = assign;
|
|
@@ -341,4 +344,3 @@ exports.numberEquals = numberEquals;
|
|
|
341
344
|
exports.numberNotEquals = numberNotEquals;
|
|
342
345
|
exports.optionalFunctionValue = optionalFunctionValue;
|
|
343
346
|
exports.seq = seq;
|
|
344
|
-
exports.tinyState = tinyState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function
|
|
1
|
+
"use strict";function r(r){return function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return!r.apply(void 0,t)}}function t(r){var t=String(r),n=Number(r),e=!isNaN(parseFloat(t))&&!isNaN(Number(r))&&isFinite(n);return Boolean(e)}Object.defineProperty(exports,"__esModule",{value:!0});var n=r(t);function e(r,n){return t(r)&&t(n)&&Number(r)===Number(n)}var o=r(e);function u(r,t){return e(r.length,t)}var i=r(u);function s(r,n){return t(r)&&t(n)&&Number(r)>Number(n)}function c(r,t){return s(r.length,t)}function a(r){return null===r}var f=r(a);function l(r){return void 0===r}var p=r(l);function x(r){return a(r)||l(r)}var v=r(x);function h(r){return[].concat(r)}function g(r){return"function"==typeof r}function N(r){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return g(r)?r.apply(void 0,t):r}function d(r,t){var n;return null!==(n=N(r))&&void 0!==n?n:N(t)}function b(r){return Boolean(Array.isArray(r))}var y=r(b);function m(r){var t=h(r);return t[t.length-1]}function E(r,t){for(var n=r,e=0,o=t.slice(0,-1);e<o.length;e++){var u=o[e];n[u]=d(n[u],[]),n=n[u]}return n}var _=Object.freeze({__proto__:null,transform:function r(t,n){for(var e=[],o=0,u=t;o<u.length;o++){var i=u[o];if(b(i))e.push(r(i,n));else{var s=n(i);f(s)&&e.push(s)}}return e},valueAtPath:function(r,t){return E(r,t)[m(t)]},setValueAtPath:function(r,t,n){return E(r,t)[m(t)]=n,r},flatten:function r(t){return h(t).reduce((function(t,n){return b(n)?t.concat(r(n)):h(t).concat(n)}),[])},getCurrent:E});function O(r,t){return Object.prototype.hasOwnProperty.call(r,t)}var j=Object.assign;var w=Object.freeze({__proto__:null,createBus:function(){var r={};return{emit:function(r,n){t(r).forEach((function(r){r(n)}))},on:function(n,e){return r[n]=t(n).concat(e),{off:function(){r[n]=t(n).filter((function(r){return r!==e}))}}}};function t(t){return r[t]||[]}}}),A=P();function P(r){return t=0,function(){return"".concat(r?r+"_":"").concat(t++)};var t}function S(r){return!r||(O(r,"length")?u(r,0):"object"==typeof r&&u(Object.keys(r),0))}var q=r(S);exports.StringObject=function(r){return new String(N(r))},exports.asArray=h,exports.assign=j,exports.bindNot=r,exports.bus=w,exports.cache=function(r){void 0===r&&(r=1);var t=[],n=function(e,o){var u=n.get(e);if(u)return u[1];var i=o();return t.unshift([e.concat(),i]),c(t,r)&&(t.length=r),i};return n.invalidate=function(r){var n=e(r);n>-1&&t.splice(n,1)},n.get=function(r){return t[e(r)]||null},n;function e(r){return t.findIndex((function(t){var n=t[0];return u(r,n.length)&&r.every((function(r,t){return r===n[t]}))}))}},exports.callEach=function(r){return r.forEach((function(r){return r()}))},exports.defaultTo=d,exports.deferThrow=function(r){setTimeout((function(){throw new Error(r)}),0)},exports.either=function(r,t){return!!r!=!!t},exports.genSeq=P,exports.greaterThan=s,exports.hasOwnProperty=O,exports.invariant=function(r,t){if(!r)throw t instanceof String?t.valueOf():new Error(t?N(t):t)},exports.isArray=b,exports.isBoolean=function(r){return!!r===r},exports.isEmpty=S,exports.isFunction=g,exports.isNotArray=y,exports.isNotEmpty=q,exports.isNotNull=f,exports.isNotNullish=v,exports.isNotNumeric=n,exports.isNotUndefined=p,exports.isNull=a,exports.isNullish=x,exports.isNumeric=t,exports.isPositive=function(r){return s(r,0)},exports.isPromise=function(r){return r&&g(r.then)},exports.isStringValue=function(r){return String(r)===r},exports.isUndefined=l,exports.last=m,exports.lengthEquals=u,exports.lengthNotEquals=i,exports.longerThan=c,exports.mapFirst=function(r,t){for(var n=!1,e=null,o=0;o<r.length;o++)if(t(r[o],u,o),n)return e;function u(r,t){r&&(n=!0,e=t)}},exports.nestedArray=_,exports.numberEquals=e,exports.numberNotEquals=o,exports.optionalFunctionValue=N,exports.seq=A;
|
|
@@ -1,24 +1,30 @@
|
|
|
1
1
|
function bindNot(fn) {
|
|
2
|
-
return (
|
|
2
|
+
return function () {
|
|
3
|
+
var args = [];
|
|
4
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
5
|
+
args[_i] = arguments[_i];
|
|
6
|
+
}
|
|
7
|
+
return !fn.apply(void 0, args);
|
|
8
|
+
};
|
|
3
9
|
}
|
|
4
10
|
|
|
5
11
|
function isNumeric(value) {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
12
|
+
var str = String(value);
|
|
13
|
+
var num = Number(value);
|
|
14
|
+
var result = !isNaN(parseFloat(str)) && !isNaN(Number(value)) && isFinite(num);
|
|
9
15
|
return Boolean(result);
|
|
10
16
|
}
|
|
11
|
-
|
|
17
|
+
var isNotNumeric = bindNot(isNumeric);
|
|
12
18
|
|
|
13
19
|
function numberEquals(value, eq) {
|
|
14
20
|
return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
|
|
15
21
|
}
|
|
16
|
-
|
|
22
|
+
var numberNotEquals = bindNot(numberEquals);
|
|
17
23
|
|
|
18
24
|
function lengthEquals(value, arg1) {
|
|
19
25
|
return numberEquals(value.length, arg1);
|
|
20
26
|
}
|
|
21
|
-
|
|
27
|
+
var lengthNotEquals = bindNot(lengthEquals);
|
|
22
28
|
|
|
23
29
|
function greaterThan(value, gt) {
|
|
24
30
|
return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
|
|
@@ -31,48 +37,54 @@ function longerThan(value, arg1) {
|
|
|
31
37
|
/**
|
|
32
38
|
* Creates a cache function
|
|
33
39
|
*/
|
|
34
|
-
function createCache(maxSize
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
40
|
+
function createCache(maxSize) {
|
|
41
|
+
if (maxSize === void 0) { maxSize = 1; }
|
|
42
|
+
var cacheStorage = [];
|
|
43
|
+
var cache = function (deps, cacheAction) {
|
|
44
|
+
var cacheHit = cache.get(deps);
|
|
38
45
|
// cache hit is not null
|
|
39
46
|
if (cacheHit)
|
|
40
47
|
return cacheHit[1];
|
|
41
|
-
|
|
48
|
+
var result = cacheAction();
|
|
42
49
|
cacheStorage.unshift([deps.concat(), result]);
|
|
43
50
|
if (longerThan(cacheStorage, maxSize))
|
|
44
51
|
cacheStorage.length = maxSize;
|
|
45
52
|
return result;
|
|
46
53
|
};
|
|
47
54
|
// invalidate an item in the cache by its dependencies
|
|
48
|
-
cache.invalidate = (deps)
|
|
49
|
-
|
|
55
|
+
cache.invalidate = function (deps) {
|
|
56
|
+
var index = findIndex(deps);
|
|
50
57
|
if (index > -1)
|
|
51
58
|
cacheStorage.splice(index, 1);
|
|
52
59
|
};
|
|
53
60
|
// Retrieves an item from the cache.
|
|
54
|
-
cache.get =
|
|
61
|
+
cache.get = function (deps) {
|
|
62
|
+
return cacheStorage[findIndex(deps)] || null;
|
|
63
|
+
};
|
|
55
64
|
return cache;
|
|
56
65
|
function findIndex(deps) {
|
|
57
|
-
return cacheStorage.findIndex(
|
|
58
|
-
|
|
66
|
+
return cacheStorage.findIndex(function (_a) {
|
|
67
|
+
var cachedDeps = _a[0];
|
|
68
|
+
return lengthEquals(deps, cachedDeps.length) &&
|
|
69
|
+
deps.every(function (dep, i) { return dep === cachedDeps[i]; });
|
|
70
|
+
});
|
|
59
71
|
}
|
|
60
72
|
}
|
|
61
73
|
|
|
62
74
|
function isNull(value) {
|
|
63
75
|
return value === null;
|
|
64
76
|
}
|
|
65
|
-
|
|
77
|
+
var isNotNull = bindNot(isNull);
|
|
66
78
|
|
|
67
79
|
function isUndefined(value) {
|
|
68
80
|
return value === undefined;
|
|
69
81
|
}
|
|
70
|
-
|
|
82
|
+
var isNotUndefined = bindNot(isUndefined);
|
|
71
83
|
|
|
72
84
|
function isNullish(value) {
|
|
73
85
|
return isNull(value) || isUndefined(value);
|
|
74
86
|
}
|
|
75
|
-
|
|
87
|
+
var isNotNullish = bindNot(isNullish);
|
|
76
88
|
|
|
77
89
|
function asArray(possibleArg) {
|
|
78
90
|
return [].concat(possibleArg);
|
|
@@ -82,8 +94,12 @@ function isFunction(value) {
|
|
|
82
94
|
return typeof value === 'function';
|
|
83
95
|
}
|
|
84
96
|
|
|
85
|
-
function optionalFunctionValue(value
|
|
86
|
-
|
|
97
|
+
function optionalFunctionValue(value) {
|
|
98
|
+
var args = [];
|
|
99
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
100
|
+
args[_i - 1] = arguments[_i];
|
|
101
|
+
}
|
|
102
|
+
return isFunction(value) ? value.apply(void 0, args) : value;
|
|
87
103
|
}
|
|
88
104
|
|
|
89
105
|
function defaultTo(value, defaultValue) {
|
|
@@ -97,10 +113,10 @@ function defaultTo(value, defaultValue) {
|
|
|
97
113
|
function isArray(value) {
|
|
98
114
|
return Boolean(Array.isArray(value));
|
|
99
115
|
}
|
|
100
|
-
|
|
116
|
+
var isNotArray = bindNot(isArray);
|
|
101
117
|
|
|
102
118
|
function last(values) {
|
|
103
|
-
|
|
119
|
+
var valuesArray = asArray(values);
|
|
104
120
|
return valuesArray[valuesArray.length - 1];
|
|
105
121
|
}
|
|
106
122
|
|
|
@@ -108,13 +124,14 @@ function last(values) {
|
|
|
108
124
|
// Normally, behaves like a nested-array map,
|
|
109
125
|
// but returning `null` will drop the element from the array
|
|
110
126
|
function transform(array, cb) {
|
|
111
|
-
|
|
112
|
-
for (
|
|
127
|
+
var res = [];
|
|
128
|
+
for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {
|
|
129
|
+
var v = array_1[_i];
|
|
113
130
|
if (isArray(v)) {
|
|
114
131
|
res.push(transform(v, cb));
|
|
115
132
|
}
|
|
116
133
|
else {
|
|
117
|
-
|
|
134
|
+
var output = cb(v);
|
|
118
135
|
if (isNotNull(output)) {
|
|
119
136
|
res.push(output);
|
|
120
137
|
}
|
|
@@ -126,12 +143,12 @@ function valueAtPath(array, path) {
|
|
|
126
143
|
return getCurrent(array, path)[last(path)];
|
|
127
144
|
}
|
|
128
145
|
function setValueAtPath(array, path, value) {
|
|
129
|
-
|
|
146
|
+
var current = getCurrent(array, path);
|
|
130
147
|
current[last(path)] = value;
|
|
131
148
|
return array;
|
|
132
149
|
}
|
|
133
150
|
function flatten(values) {
|
|
134
|
-
return asArray(values).reduce((acc, value)
|
|
151
|
+
return asArray(values).reduce(function (acc, value) {
|
|
135
152
|
if (isArray(value)) {
|
|
136
153
|
return acc.concat(flatten(value));
|
|
137
154
|
}
|
|
@@ -139,8 +156,9 @@ function flatten(values) {
|
|
|
139
156
|
}, []);
|
|
140
157
|
}
|
|
141
158
|
function getCurrent(array, path) {
|
|
142
|
-
|
|
143
|
-
for (
|
|
159
|
+
var current = array;
|
|
160
|
+
for (var _i = 0, _a = path.slice(0, -1); _i < _a.length; _i++) {
|
|
161
|
+
var p = _a[_i];
|
|
144
162
|
current[p] = defaultTo(current[p], []);
|
|
145
163
|
current = current[p];
|
|
146
164
|
}
|
|
@@ -157,7 +175,7 @@ var nestedArray = /*#__PURE__*/Object.freeze({
|
|
|
157
175
|
});
|
|
158
176
|
|
|
159
177
|
function callEach(arr) {
|
|
160
|
-
return arr.forEach(fn
|
|
178
|
+
return arr.forEach(function (fn) { return fn(); });
|
|
161
179
|
}
|
|
162
180
|
|
|
163
181
|
/**
|
|
@@ -204,27 +222,27 @@ function isBoolean(value) {
|
|
|
204
222
|
}
|
|
205
223
|
|
|
206
224
|
function deferThrow(message) {
|
|
207
|
-
setTimeout(()
|
|
225
|
+
setTimeout(function () {
|
|
208
226
|
throw new Error(message);
|
|
209
227
|
}, 0);
|
|
210
228
|
}
|
|
211
229
|
|
|
212
230
|
function createBus() {
|
|
213
|
-
|
|
231
|
+
var listeners = {};
|
|
214
232
|
return {
|
|
215
|
-
emit(event, data) {
|
|
216
|
-
listener(event).forEach(handler
|
|
233
|
+
emit: function (event, data) {
|
|
234
|
+
listener(event).forEach(function (handler) {
|
|
217
235
|
handler(data);
|
|
218
236
|
});
|
|
219
237
|
},
|
|
220
|
-
on(event, handler) {
|
|
238
|
+
on: function (event, handler) {
|
|
221
239
|
listeners[event] = listener(event).concat(handler);
|
|
222
240
|
return {
|
|
223
|
-
off() {
|
|
224
|
-
listeners[event] = listener(event).filter(h
|
|
225
|
-
}
|
|
241
|
+
off: function () {
|
|
242
|
+
listeners[event] = listener(event).filter(function (h) { return h !== handler; });
|
|
243
|
+
}
|
|
226
244
|
};
|
|
227
|
-
}
|
|
245
|
+
}
|
|
228
246
|
};
|
|
229
247
|
function listener(event) {
|
|
230
248
|
return listeners[event] || [];
|
|
@@ -239,15 +257,17 @@ var bus = /*#__PURE__*/Object.freeze({
|
|
|
239
257
|
/**
|
|
240
258
|
* @returns a unique numeric id.
|
|
241
259
|
*/
|
|
242
|
-
|
|
260
|
+
var seq = genSeq();
|
|
243
261
|
function genSeq(namespace) {
|
|
244
|
-
return ((n)
|
|
262
|
+
return (function (n) { return function () {
|
|
263
|
+
return "".concat(namespace ? namespace + '_' : '').concat(n++);
|
|
264
|
+
}; })(0);
|
|
245
265
|
}
|
|
246
266
|
|
|
247
267
|
function mapFirst(array, callback) {
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
for (
|
|
268
|
+
var broke = false;
|
|
269
|
+
var breakoutValue = null;
|
|
270
|
+
for (var i = 0; i < array.length; i++) {
|
|
251
271
|
callback(array[i], breakout, i);
|
|
252
272
|
if (broke) {
|
|
253
273
|
return breakoutValue;
|
|
@@ -273,27 +293,10 @@ function isEmpty(value) {
|
|
|
273
293
|
}
|
|
274
294
|
return false;
|
|
275
295
|
}
|
|
276
|
-
|
|
296
|
+
var isNotEmpty = bindNot(isEmpty);
|
|
277
297
|
|
|
278
298
|
function isPositive(value) {
|
|
279
299
|
return greaterThan(value, 0);
|
|
280
300
|
}
|
|
281
301
|
|
|
282
|
-
|
|
283
|
-
let value;
|
|
284
|
-
resetValue();
|
|
285
|
-
return () => [value, setValue, resetValue];
|
|
286
|
-
function setValue(nextValue) {
|
|
287
|
-
value = optionalFunctionValue(nextValue, value);
|
|
288
|
-
}
|
|
289
|
-
function resetValue() {
|
|
290
|
-
setValue(optionalFunctionValue(initialValue));
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
var tinyState = /*#__PURE__*/Object.freeze({
|
|
295
|
-
__proto__: null,
|
|
296
|
-
createTinyState: createTinyState
|
|
297
|
-
});
|
|
298
|
-
|
|
299
|
-
export { StringObject, asArray, assign, bindNot, bus, createCache as cache, callEach, defaultTo, deferThrow, either, genSeq, greaterThan, hasOwnProperty, invariant, isArray, isBoolean, isEmpty, isFunction, isNotArray, isNotEmpty, isNotNull, isNotNullish, isNotNumeric, isNotUndefined, isNull, isNullish, isNumeric, isPositive, isPromise, isStringValue, isUndefined, last, lengthEquals, lengthNotEquals, longerThan, mapFirst, nestedArray, numberEquals, numberNotEquals, optionalFunctionValue, seq, tinyState };
|
|
302
|
+
export { StringObject, asArray, assign, bindNot, bus, createCache as cache, callEach, defaultTo, deferThrow, either, genSeq, greaterThan, hasOwnProperty, invariant, isArray, isBoolean, isEmpty, isFunction, isNotArray, isNotEmpty, isNotNull, isNotNullish, isNotNumeric, isNotUndefined, isNull, isNullish, isNumeric, isPositive, isPromise, isStringValue, isUndefined, last, lengthEquals, lengthNotEquals, longerThan, mapFirst, nestedArray, numberEquals, numberNotEquals, optionalFunctionValue, seq };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function n(n){return(
|
|
1
|
+
function n(n){return function(){for(var r=[],t=0;t<arguments.length;t++)r[t]=arguments[t];return!n.apply(void 0,r)}}function r(n){var r=String(n),t=Number(n),u=!isNaN(parseFloat(r))&&!isNaN(Number(n))&&isFinite(t);return Boolean(u)}var t=n(r);function u(n,t){return r(n)&&r(t)&&Number(n)===Number(t)}var e=n(u);function o(n,r){return u(n.length,r)}var c=n(o);function i(n,t){return r(n)&&r(t)&&Number(n)>Number(t)}function f(n,r){return i(n.length,r)}function a(n){void 0===n&&(n=1);var r=[],t=function(u,e){var o=t.get(u);if(o)return o[1];var c=e();return r.unshift([u.concat(),c]),f(r,n)&&(r.length=n),c};return t.invalidate=function(n){var t=u(n);t>-1&&r.splice(t,1)},t.get=function(n){return r[u(n)]||null},t;function u(n){return r.findIndex((function(r){var t=r[0];return o(n,t.length)&&n.every((function(n,r){return n===t[r]}))}))}}function l(n){return null===n}var v=n(l);function h(n){return void 0===n}var s=n(h);function g(n){return l(n)||h(n)}var p=n(g);function b(n){return[].concat(n)}function y(n){return"function"==typeof n}function N(n){for(var r=[],t=1;t<arguments.length;t++)r[t-1]=arguments[t];return y(n)?n.apply(void 0,r):n}function d(n,r){var t;return null!==(t=N(n))&&void 0!==t?t:N(r)}function m(n){return Boolean(Array.isArray(n))}var _=n(m);function O(n){var r=b(n);return r[r.length-1]}function j(n,r){for(var t=n,u=0,e=r.slice(0,-1);u<e.length;u++){var o=e[u];t[o]=d(t[o],[]),t=t[o]}return t}var w=Object.freeze({__proto__:null,transform:function n(r,t){for(var u=[],e=0,o=r;e<o.length;e++){var c=o[e];if(m(c))u.push(n(c,t));else{var i=t(c);v(i)&&u.push(i)}}return u},valueAtPath:function(n,r){return j(n,r)[O(r)]},setValueAtPath:function(n,r,t){return j(n,r)[O(r)]=t,n},flatten:function n(r){return b(r).reduce((function(r,t){return m(t)?r.concat(n(t)):b(r).concat(t)}),[])},getCurrent:j});function A(n){return n.forEach((function(n){return n()}))}function E(n,r){return Object.prototype.hasOwnProperty.call(n,r)}function S(n){return n&&y(n.then)}var B=Object.assign;function P(n,r){if(!n)throw r instanceof String?r.valueOf():new Error(r?N(r):r)}function x(n){return new String(N(n))}function z(n){return String(n)===n}function F(n,r){return!!n!=!!r}function k(n){return!!n===n}function C(n){setTimeout((function(){throw new Error(n)}),0)}var I=Object.freeze({__proto__:null,createBus:function(){var n={};return{emit:function(n,t){r(n).forEach((function(n){n(t)}))},on:function(t,u){return n[t]=r(t).concat(u),{off:function(){n[t]=r(t).filter((function(n){return n!==u}))}}}};function r(r){return n[r]||[]}}}),T=V();function V(n){return r=0,function(){return"".concat(n?n+"_":"").concat(r++)};var r}function q(n,r){for(var t=!1,u=null,e=0;e<n.length;e++)if(r(n[e],o,e),t)return u;function o(n,r){n&&(t=!0,u=r)}}function D(n){return!n||(E(n,"length")?o(n,0):"object"==typeof n&&o(Object.keys(n),0))}var G=n(D);function H(n){return i(n,0)}export{x as StringObject,b as asArray,B as assign,n as bindNot,I as bus,a as cache,A as callEach,d as defaultTo,C as deferThrow,F as either,V as genSeq,i as greaterThan,E as hasOwnProperty,P as invariant,m as isArray,k as isBoolean,D as isEmpty,y as isFunction,_ as isNotArray,G as isNotEmpty,v as isNotNull,p as isNotNullish,t as isNotNumeric,s as isNotUndefined,l as isNull,g as isNullish,r as isNumeric,H as isPositive,S as isPromise,z as isStringValue,h as isUndefined,O as last,o as lengthEquals,c as lengthNotEquals,f as longerThan,q as mapFirst,w as nestedArray,u as numberEquals,e as numberNotEquals,N as optionalFunctionValue,T as seq};
|
|
@@ -5,26 +5,32 @@
|
|
|
5
5
|
})(this, (function (exports) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function bindNot(fn) {
|
|
8
|
-
return (
|
|
8
|
+
return function () {
|
|
9
|
+
var args = [];
|
|
10
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
11
|
+
args[_i] = arguments[_i];
|
|
12
|
+
}
|
|
13
|
+
return !fn.apply(void 0, args);
|
|
14
|
+
};
|
|
9
15
|
}
|
|
10
16
|
|
|
11
17
|
function isNumeric(value) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
18
|
+
var str = String(value);
|
|
19
|
+
var num = Number(value);
|
|
20
|
+
var result = !isNaN(parseFloat(str)) && !isNaN(Number(value)) && isFinite(num);
|
|
15
21
|
return Boolean(result);
|
|
16
22
|
}
|
|
17
|
-
|
|
23
|
+
var isNotNumeric = bindNot(isNumeric);
|
|
18
24
|
|
|
19
25
|
function numberEquals(value, eq) {
|
|
20
26
|
return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
|
|
21
27
|
}
|
|
22
|
-
|
|
28
|
+
var numberNotEquals = bindNot(numberEquals);
|
|
23
29
|
|
|
24
30
|
function lengthEquals(value, arg1) {
|
|
25
31
|
return numberEquals(value.length, arg1);
|
|
26
32
|
}
|
|
27
|
-
|
|
33
|
+
var lengthNotEquals = bindNot(lengthEquals);
|
|
28
34
|
|
|
29
35
|
function greaterThan(value, gt) {
|
|
30
36
|
return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
|
|
@@ -37,48 +43,54 @@
|
|
|
37
43
|
/**
|
|
38
44
|
* Creates a cache function
|
|
39
45
|
*/
|
|
40
|
-
function createCache(maxSize
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
46
|
+
function createCache(maxSize) {
|
|
47
|
+
if (maxSize === void 0) { maxSize = 1; }
|
|
48
|
+
var cacheStorage = [];
|
|
49
|
+
var cache = function (deps, cacheAction) {
|
|
50
|
+
var cacheHit = cache.get(deps);
|
|
44
51
|
// cache hit is not null
|
|
45
52
|
if (cacheHit)
|
|
46
53
|
return cacheHit[1];
|
|
47
|
-
|
|
54
|
+
var result = cacheAction();
|
|
48
55
|
cacheStorage.unshift([deps.concat(), result]);
|
|
49
56
|
if (longerThan(cacheStorage, maxSize))
|
|
50
57
|
cacheStorage.length = maxSize;
|
|
51
58
|
return result;
|
|
52
59
|
};
|
|
53
60
|
// invalidate an item in the cache by its dependencies
|
|
54
|
-
cache.invalidate = (deps)
|
|
55
|
-
|
|
61
|
+
cache.invalidate = function (deps) {
|
|
62
|
+
var index = findIndex(deps);
|
|
56
63
|
if (index > -1)
|
|
57
64
|
cacheStorage.splice(index, 1);
|
|
58
65
|
};
|
|
59
66
|
// Retrieves an item from the cache.
|
|
60
|
-
cache.get =
|
|
67
|
+
cache.get = function (deps) {
|
|
68
|
+
return cacheStorage[findIndex(deps)] || null;
|
|
69
|
+
};
|
|
61
70
|
return cache;
|
|
62
71
|
function findIndex(deps) {
|
|
63
|
-
return cacheStorage.findIndex(
|
|
64
|
-
|
|
72
|
+
return cacheStorage.findIndex(function (_a) {
|
|
73
|
+
var cachedDeps = _a[0];
|
|
74
|
+
return lengthEquals(deps, cachedDeps.length) &&
|
|
75
|
+
deps.every(function (dep, i) { return dep === cachedDeps[i]; });
|
|
76
|
+
});
|
|
65
77
|
}
|
|
66
78
|
}
|
|
67
79
|
|
|
68
80
|
function isNull(value) {
|
|
69
81
|
return value === null;
|
|
70
82
|
}
|
|
71
|
-
|
|
83
|
+
var isNotNull = bindNot(isNull);
|
|
72
84
|
|
|
73
85
|
function isUndefined(value) {
|
|
74
86
|
return value === undefined;
|
|
75
87
|
}
|
|
76
|
-
|
|
88
|
+
var isNotUndefined = bindNot(isUndefined);
|
|
77
89
|
|
|
78
90
|
function isNullish(value) {
|
|
79
91
|
return isNull(value) || isUndefined(value);
|
|
80
92
|
}
|
|
81
|
-
|
|
93
|
+
var isNotNullish = bindNot(isNullish);
|
|
82
94
|
|
|
83
95
|
function asArray(possibleArg) {
|
|
84
96
|
return [].concat(possibleArg);
|
|
@@ -88,8 +100,12 @@
|
|
|
88
100
|
return typeof value === 'function';
|
|
89
101
|
}
|
|
90
102
|
|
|
91
|
-
function optionalFunctionValue(value
|
|
92
|
-
|
|
103
|
+
function optionalFunctionValue(value) {
|
|
104
|
+
var args = [];
|
|
105
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
106
|
+
args[_i - 1] = arguments[_i];
|
|
107
|
+
}
|
|
108
|
+
return isFunction(value) ? value.apply(void 0, args) : value;
|
|
93
109
|
}
|
|
94
110
|
|
|
95
111
|
function defaultTo(value, defaultValue) {
|
|
@@ -103,10 +119,10 @@
|
|
|
103
119
|
function isArray(value) {
|
|
104
120
|
return Boolean(Array.isArray(value));
|
|
105
121
|
}
|
|
106
|
-
|
|
122
|
+
var isNotArray = bindNot(isArray);
|
|
107
123
|
|
|
108
124
|
function last(values) {
|
|
109
|
-
|
|
125
|
+
var valuesArray = asArray(values);
|
|
110
126
|
return valuesArray[valuesArray.length - 1];
|
|
111
127
|
}
|
|
112
128
|
|
|
@@ -114,13 +130,14 @@
|
|
|
114
130
|
// Normally, behaves like a nested-array map,
|
|
115
131
|
// but returning `null` will drop the element from the array
|
|
116
132
|
function transform(array, cb) {
|
|
117
|
-
|
|
118
|
-
for (
|
|
133
|
+
var res = [];
|
|
134
|
+
for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {
|
|
135
|
+
var v = array_1[_i];
|
|
119
136
|
if (isArray(v)) {
|
|
120
137
|
res.push(transform(v, cb));
|
|
121
138
|
}
|
|
122
139
|
else {
|
|
123
|
-
|
|
140
|
+
var output = cb(v);
|
|
124
141
|
if (isNotNull(output)) {
|
|
125
142
|
res.push(output);
|
|
126
143
|
}
|
|
@@ -132,12 +149,12 @@
|
|
|
132
149
|
return getCurrent(array, path)[last(path)];
|
|
133
150
|
}
|
|
134
151
|
function setValueAtPath(array, path, value) {
|
|
135
|
-
|
|
152
|
+
var current = getCurrent(array, path);
|
|
136
153
|
current[last(path)] = value;
|
|
137
154
|
return array;
|
|
138
155
|
}
|
|
139
156
|
function flatten(values) {
|
|
140
|
-
return asArray(values).reduce((acc, value)
|
|
157
|
+
return asArray(values).reduce(function (acc, value) {
|
|
141
158
|
if (isArray(value)) {
|
|
142
159
|
return acc.concat(flatten(value));
|
|
143
160
|
}
|
|
@@ -145,8 +162,9 @@
|
|
|
145
162
|
}, []);
|
|
146
163
|
}
|
|
147
164
|
function getCurrent(array, path) {
|
|
148
|
-
|
|
149
|
-
for (
|
|
165
|
+
var current = array;
|
|
166
|
+
for (var _i = 0, _a = path.slice(0, -1); _i < _a.length; _i++) {
|
|
167
|
+
var p = _a[_i];
|
|
150
168
|
current[p] = defaultTo(current[p], []);
|
|
151
169
|
current = current[p];
|
|
152
170
|
}
|
|
@@ -163,7 +181,7 @@
|
|
|
163
181
|
});
|
|
164
182
|
|
|
165
183
|
function callEach(arr) {
|
|
166
|
-
return arr.forEach(fn
|
|
184
|
+
return arr.forEach(function (fn) { return fn(); });
|
|
167
185
|
}
|
|
168
186
|
|
|
169
187
|
/**
|
|
@@ -210,27 +228,27 @@
|
|
|
210
228
|
}
|
|
211
229
|
|
|
212
230
|
function deferThrow(message) {
|
|
213
|
-
setTimeout(()
|
|
231
|
+
setTimeout(function () {
|
|
214
232
|
throw new Error(message);
|
|
215
233
|
}, 0);
|
|
216
234
|
}
|
|
217
235
|
|
|
218
236
|
function createBus() {
|
|
219
|
-
|
|
237
|
+
var listeners = {};
|
|
220
238
|
return {
|
|
221
|
-
emit(event, data) {
|
|
222
|
-
listener(event).forEach(handler
|
|
239
|
+
emit: function (event, data) {
|
|
240
|
+
listener(event).forEach(function (handler) {
|
|
223
241
|
handler(data);
|
|
224
242
|
});
|
|
225
243
|
},
|
|
226
|
-
on(event, handler) {
|
|
244
|
+
on: function (event, handler) {
|
|
227
245
|
listeners[event] = listener(event).concat(handler);
|
|
228
246
|
return {
|
|
229
|
-
off() {
|
|
230
|
-
listeners[event] = listener(event).filter(h
|
|
231
|
-
}
|
|
247
|
+
off: function () {
|
|
248
|
+
listeners[event] = listener(event).filter(function (h) { return h !== handler; });
|
|
249
|
+
}
|
|
232
250
|
};
|
|
233
|
-
}
|
|
251
|
+
}
|
|
234
252
|
};
|
|
235
253
|
function listener(event) {
|
|
236
254
|
return listeners[event] || [];
|
|
@@ -245,15 +263,17 @@
|
|
|
245
263
|
/**
|
|
246
264
|
* @returns a unique numeric id.
|
|
247
265
|
*/
|
|
248
|
-
|
|
266
|
+
var seq = genSeq();
|
|
249
267
|
function genSeq(namespace) {
|
|
250
|
-
return ((n)
|
|
268
|
+
return (function (n) { return function () {
|
|
269
|
+
return "".concat(namespace ? namespace + '_' : '').concat(n++);
|
|
270
|
+
}; })(0);
|
|
251
271
|
}
|
|
252
272
|
|
|
253
273
|
function mapFirst(array, callback) {
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
for (
|
|
274
|
+
var broke = false;
|
|
275
|
+
var breakoutValue = null;
|
|
276
|
+
for (var i = 0; i < array.length; i++) {
|
|
257
277
|
callback(array[i], breakout, i);
|
|
258
278
|
if (broke) {
|
|
259
279
|
return breakoutValue;
|
|
@@ -279,29 +299,12 @@
|
|
|
279
299
|
}
|
|
280
300
|
return false;
|
|
281
301
|
}
|
|
282
|
-
|
|
302
|
+
var isNotEmpty = bindNot(isEmpty);
|
|
283
303
|
|
|
284
304
|
function isPositive(value) {
|
|
285
305
|
return greaterThan(value, 0);
|
|
286
306
|
}
|
|
287
307
|
|
|
288
|
-
function createTinyState(initialValue) {
|
|
289
|
-
let value;
|
|
290
|
-
resetValue();
|
|
291
|
-
return () => [value, setValue, resetValue];
|
|
292
|
-
function setValue(nextValue) {
|
|
293
|
-
value = optionalFunctionValue(nextValue, value);
|
|
294
|
-
}
|
|
295
|
-
function resetValue() {
|
|
296
|
-
setValue(optionalFunctionValue(initialValue));
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
var tinyState = /*#__PURE__*/Object.freeze({
|
|
301
|
-
__proto__: null,
|
|
302
|
-
createTinyState: createTinyState
|
|
303
|
-
});
|
|
304
|
-
|
|
305
308
|
exports.StringObject = StringObject;
|
|
306
309
|
exports.asArray = asArray;
|
|
307
310
|
exports.assign = assign;
|
|
@@ -343,7 +346,6 @@
|
|
|
343
346
|
exports.numberNotEquals = numberNotEquals;
|
|
344
347
|
exports.optionalFunctionValue = optionalFunctionValue;
|
|
345
348
|
exports.seq = seq;
|
|
346
|
-
exports.tinyState = tinyState;
|
|
347
349
|
|
|
348
350
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
349
351
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self)["vest-utils"]={})}(this,(function(n){"use strict";function t(n){return(
|
|
1
|
+
!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self)["vest-utils"]={})}(this,(function(n){"use strict";function t(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function r(n){var t=String(n),r=Number(n),e=!isNaN(parseFloat(t))&&!isNaN(Number(n))&&isFinite(r);return Boolean(e)}var e=t(r);function u(n,t){return r(n)&&r(t)&&Number(n)===Number(t)}var i=t(u);function o(n,t){return u(n.length,t)}var c=t(o);function f(n,t){return r(n)&&r(t)&&Number(n)>Number(t)}function a(n,t){return f(n.length,t)}function l(n){return null===n}var s=t(l);function v(n){return void 0===n}var h=t(v);function g(n){return l(n)||v(n)}var d=t(g);function p(n){return[].concat(n)}function N(n){return"function"==typeof n}function y(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return N(n)?n.apply(void 0,t):n}function b(n,t){var r;return null!==(r=y(n))&&void 0!==r?r:y(t)}function m(n){return Boolean(Array.isArray(n))}var E=t(m);function _(n){var t=p(n);return t[t.length-1]}function O(n,t){for(var r=n,e=0,u=t.slice(0,-1);e<u.length;e++){var i=u[e];r[i]=b(r[i],[]),r=r[i]}return r}var j=Object.freeze({__proto__:null,transform:function n(t,r){for(var e=[],u=0,i=t;u<i.length;u++){var o=i[u];if(m(o))e.push(n(o,r));else{var c=r(o);s(c)&&e.push(c)}}return e},valueAtPath:function(n,t){return O(n,t)[_(t)]},setValueAtPath:function(n,t,r){return O(n,t)[_(t)]=r,n},flatten:function n(t){return p(t).reduce((function(t,r){return m(r)?t.concat(n(r)):p(t).concat(r)}),[])},getCurrent:O});function w(n,t){return Object.prototype.hasOwnProperty.call(n,t)}var A=Object.assign;var P=Object.freeze({__proto__:null,createBus:function(){var n={};return{emit:function(n,r){t(n).forEach((function(n){n(r)}))},on:function(r,e){return n[r]=t(r).concat(e),{off:function(){n[r]=t(r).filter((function(n){return n!==e}))}}}};function t(t){return n[t]||[]}}}),S=T();function T(n){return t=0,function(){return"".concat(n?n+"_":"").concat(t++)};var t}function q(n){return!n||(w(n,"length")?o(n,0):"object"==typeof n&&o(Object.keys(n),0))}var F=t(q);n.StringObject=function(n){return new String(y(n))},n.asArray=p,n.assign=A,n.bindNot=t,n.bus=P,n.cache=function(n){void 0===n&&(n=1);var t=[],r=function(e,u){var i=r.get(e);if(i)return i[1];var o=u();return t.unshift([e.concat(),o]),a(t,n)&&(t.length=n),o};return r.invalidate=function(n){var r=e(n);r>-1&&t.splice(r,1)},r.get=function(n){return t[e(n)]||null},r;function e(n){return t.findIndex((function(t){var r=t[0];return o(n,r.length)&&n.every((function(n,t){return n===r[t]}))}))}},n.callEach=function(n){return n.forEach((function(n){return n()}))},n.defaultTo=b,n.deferThrow=function(n){setTimeout((function(){throw new Error(n)}),0)},n.either=function(n,t){return!!n!=!!t},n.genSeq=T,n.greaterThan=f,n.hasOwnProperty=w,n.invariant=function(n,t){if(!n)throw t instanceof String?t.valueOf():new Error(t?y(t):t)},n.isArray=m,n.isBoolean=function(n){return!!n===n},n.isEmpty=q,n.isFunction=N,n.isNotArray=E,n.isNotEmpty=F,n.isNotNull=s,n.isNotNullish=d,n.isNotNumeric=e,n.isNotUndefined=h,n.isNull=l,n.isNullish=g,n.isNumeric=r,n.isPositive=function(n){return f(n,0)},n.isPromise=function(n){return n&&N(n.then)},n.isStringValue=function(n){return String(n)===n},n.isUndefined=v,n.last=_,n.lengthEquals=o,n.lengthNotEquals=c,n.longerThan=a,n.mapFirst=function(n,t){for(var r=!1,e=null,u=0;u<n.length;u++)if(t(n[u],i,u),r)return e;function i(n,t){n&&(r=!0,e=t)}},n.nestedArray=j,n.numberEquals=u,n.numberNotEquals=i,n.optionalFunctionValue=y,n.seq=S,Object.defineProperty(n,"__esModule",{value:!0})}));
|
package/package.json
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { random, datatype } from 'faker';
|
|
2
2
|
|
|
3
3
|
import { greaterThan } from 'greaterThan';
|
|
4
4
|
|
|
5
|
-
const { random, datatype } = faker;
|
|
6
|
-
|
|
7
5
|
describe('Tests greaterThan rule', () => {
|
|
8
|
-
|
|
9
|
-
let arg0: number;
|
|
6
|
+
let arg0;
|
|
10
7
|
|
|
8
|
+
describe('Arguments are numbers', () => {
|
|
11
9
|
beforeEach(() => {
|
|
12
10
|
arg0 = datatype.number();
|
|
13
11
|
});
|
|
@@ -32,15 +30,9 @@ describe('Tests greaterThan rule', () => {
|
|
|
32
30
|
});
|
|
33
31
|
|
|
34
32
|
describe('Arguments are numeric strings', () => {
|
|
35
|
-
let arg0: string;
|
|
36
|
-
|
|
37
|
-
beforeEach(() => {
|
|
38
|
-
arg0 = datatype.number().toString();
|
|
39
|
-
});
|
|
40
|
-
|
|
41
33
|
describe('When first argument is larger', () => {
|
|
42
34
|
it('Should return true', () => {
|
|
43
|
-
expect(greaterThan(
|
|
35
|
+
expect(greaterThan(`${arg0}`, `${arg0 - 1}`)).toBe(true);
|
|
44
36
|
});
|
|
45
37
|
});
|
|
46
38
|
|
|
@@ -60,7 +52,6 @@ describe('Tests greaterThan rule', () => {
|
|
|
60
52
|
describe('Arguments are non numeric', () => {
|
|
61
53
|
[random.word(), `${datatype.number()}`.split(''), {}].forEach(element => {
|
|
62
54
|
it('Should return false', () => {
|
|
63
|
-
// @ts-expect-error - testing invalid input
|
|
64
55
|
expect(greaterThan(element, 0)).toBe(false);
|
|
65
56
|
});
|
|
66
57
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import faker from 'faker';
|
|
2
2
|
|
|
3
3
|
import { lengthEquals } from 'lengthEquals';
|
|
4
4
|
|
|
@@ -46,12 +46,10 @@ describe('Tests lengthEquals rule', () => {
|
|
|
46
46
|
});
|
|
47
47
|
|
|
48
48
|
it('Should return false for number argument', () => {
|
|
49
|
-
|
|
50
|
-
expect(lengthEquals(100, 0)).toBe(false);
|
|
49
|
+
expect(lengthEquals(length, 0)).toBe(false);
|
|
51
50
|
});
|
|
52
51
|
|
|
53
52
|
it('Should return false for boolean argument', () => {
|
|
54
|
-
// @ts-expect-error - testing wrong input
|
|
55
53
|
expect(lengthEquals(boolean, 0)).toBe(false);
|
|
56
54
|
});
|
|
57
55
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import faker from 'faker';
|
|
2
2
|
|
|
3
3
|
import { longerThan } from 'longerThan';
|
|
4
4
|
|
|
@@ -46,12 +46,10 @@ describe('Tests longerThan rule', () => {
|
|
|
46
46
|
});
|
|
47
47
|
|
|
48
48
|
it('Should return false for number argument', () => {
|
|
49
|
-
// @ts-expect-error - testing wrong input
|
|
50
49
|
expect(longerThan(length, 0)).toBe(false);
|
|
51
50
|
});
|
|
52
51
|
|
|
53
52
|
it('Should return false for boolean argument', () => {
|
|
54
|
-
// @ts-expect-error - testing wrong input
|
|
55
53
|
expect(longerThan(boolean, 0)).toBe(false);
|
|
56
54
|
});
|
|
57
55
|
});
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { random, datatype } from 'faker';
|
|
2
2
|
|
|
3
3
|
import { numberEquals } from 'numberEquals';
|
|
4
4
|
|
|
5
|
-
const { random, datatype } = faker;
|
|
6
|
-
|
|
7
5
|
describe('Tests numberEquals rule', () => {
|
|
6
|
+
let arg0;
|
|
7
|
+
|
|
8
8
|
describe('Arguments are numbers', () => {
|
|
9
|
-
let arg0: number;
|
|
10
9
|
beforeEach(() => {
|
|
11
10
|
arg0 = datatype.number();
|
|
12
11
|
});
|
|
@@ -31,15 +30,9 @@ describe('Tests numberEquals rule', () => {
|
|
|
31
30
|
});
|
|
32
31
|
|
|
33
32
|
describe('Arguments are numeric strings', () => {
|
|
34
|
-
let arg0: string;
|
|
35
|
-
|
|
36
|
-
beforeEach(() => {
|
|
37
|
-
arg0 = datatype.number().toString();
|
|
38
|
-
});
|
|
39
|
-
|
|
40
33
|
describe('When first argument is larger', () => {
|
|
41
34
|
it('Should return false', () => {
|
|
42
|
-
expect(numberEquals(`${arg0}`, `${
|
|
35
|
+
expect(numberEquals(`${arg0}`, `${arg0 - 1}`)).toBe(false);
|
|
43
36
|
});
|
|
44
37
|
});
|
|
45
38
|
|
|
@@ -51,7 +44,7 @@ describe('Tests numberEquals rule', () => {
|
|
|
51
44
|
|
|
52
45
|
describe('When values are equal', () => {
|
|
53
46
|
it('Should return true', () => {
|
|
54
|
-
expect(numberEquals(
|
|
47
|
+
expect(numberEquals(arg0, arg0)).toBe(true);
|
|
55
48
|
});
|
|
56
49
|
});
|
|
57
50
|
});
|
|
@@ -59,7 +52,6 @@ describe('Tests numberEquals rule', () => {
|
|
|
59
52
|
describe('Arguments are non numeric', () => {
|
|
60
53
|
[random.word(), `${datatype.number()}`.split(''), {}].forEach(element => {
|
|
61
54
|
it('Should return false', () => {
|
|
62
|
-
// @ts-expect-error - testing invalid input
|
|
63
55
|
expect(numberEquals(element, 0)).toBe(false);
|
|
64
56
|
});
|
|
65
57
|
});
|
package/src/bus.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import type { CB } from 'utilityTypes';
|
|
2
2
|
|
|
3
|
-
export function createBus():
|
|
3
|
+
export function createBus(): {
|
|
4
|
+
on: (event: string, handler: CB) => OnReturn;
|
|
5
|
+
emit: (event: string, ...args: any[]) => void;
|
|
6
|
+
} {
|
|
4
7
|
const listeners: Record<string, CB[]> = {};
|
|
5
8
|
|
|
6
9
|
return {
|
|
@@ -27,8 +30,3 @@ export function createBus(): BusType {
|
|
|
27
30
|
}
|
|
28
31
|
|
|
29
32
|
type OnReturn = { off: () => void };
|
|
30
|
-
|
|
31
|
-
export type BusType = {
|
|
32
|
-
on: (event: string, handler: CB) => OnReturn;
|
|
33
|
-
emit: (event: string, ...args: any[]) => void;
|
|
34
|
-
};
|
package/src/deferThrow.ts
CHANGED
package/src/vest-utils.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
export { default as cache, CacheApi } from 'cache';
|
|
2
|
-
export { BusType } from 'bus';
|
|
3
|
-
export { TinyState } from 'tinyState';
|
|
4
2
|
export { isNullish, isNotNullish } from 'isNullish';
|
|
5
3
|
export * as nestedArray from 'nestedArray';
|
|
6
4
|
export { default as asArray } from 'asArray';
|
|
@@ -31,7 +29,6 @@ export { isUndefined, isNotUndefined } from 'isUndefined';
|
|
|
31
29
|
export { isArray, isNotArray } from 'isArrayValue';
|
|
32
30
|
export { isEmpty, isNotEmpty } from 'isEmpty';
|
|
33
31
|
export { isPositive } from 'isPositive';
|
|
34
|
-
export * as tinyState from 'tinyState';
|
|
35
32
|
|
|
36
33
|
export type { DropFirst } from 'utilityTypes';
|
|
37
34
|
export type { Stringable } from 'utilityTypes';
|
package/tsconfig.json
CHANGED
package/types/vest-utils.d.ts
CHANGED
|
@@ -17,25 +17,6 @@ type CacheApi<T = unknown> = {
|
|
|
17
17
|
] | null;
|
|
18
18
|
invalidate(item: any): void;
|
|
19
19
|
};
|
|
20
|
-
type DropFirst<T extends unknown[]> = T extends [
|
|
21
|
-
unknown,
|
|
22
|
-
...infer U
|
|
23
|
-
] ? U : never;
|
|
24
|
-
type Stringable = string | ((...args: any[]) => string);
|
|
25
|
-
type CB = (...args: any[]) => any;
|
|
26
|
-
type ValueOf<T> = T[keyof T];
|
|
27
|
-
type OnReturn = {
|
|
28
|
-
off: () => void;
|
|
29
|
-
};
|
|
30
|
-
type BusType = {
|
|
31
|
-
on: (event: string, handler: CB) => OnReturn;
|
|
32
|
-
emit: (event: string, ...args: any[]) => void;
|
|
33
|
-
};
|
|
34
|
-
type TinyState<S> = () => [
|
|
35
|
-
value: S,
|
|
36
|
-
setValue: (next: S | ((prev: S) => S)) => void,
|
|
37
|
-
resetValue: () => void
|
|
38
|
-
];
|
|
39
20
|
declare function isNullish(value: any): value is null | undefined;
|
|
40
21
|
declare const isNotNullish: (value: any) => boolean;
|
|
41
22
|
declare namespace nestedArray {
|
|
@@ -50,6 +31,13 @@ declare namespace nestedArray {
|
|
|
50
31
|
function getCurrent<T>(array: NestedArray<T>, path: number[]): NestedArray<T>;
|
|
51
32
|
}
|
|
52
33
|
declare function asArray<T>(possibleArg: T | T[]): T[];
|
|
34
|
+
type DropFirst<T extends unknown[]> = T extends [
|
|
35
|
+
unknown,
|
|
36
|
+
...infer U
|
|
37
|
+
] ? U : never;
|
|
38
|
+
type Stringable = string | ((...args: any[]) => string);
|
|
39
|
+
type CB = (...args: any[]) => any;
|
|
40
|
+
type ValueOf<T> = T[keyof T];
|
|
53
41
|
declare function callEach(arr: CB[]): void;
|
|
54
42
|
/**
|
|
55
43
|
* A safe hasOwnProperty access
|
|
@@ -83,14 +71,13 @@ declare namespace bus {
|
|
|
83
71
|
type Stringable = string | ((...args: any[]) => string);
|
|
84
72
|
type CB = (...args: any[]) => any;
|
|
85
73
|
type ValueOf<T> = T[keyof T];
|
|
86
|
-
function createBus():
|
|
87
|
-
type OnReturn = {
|
|
88
|
-
off: () => void;
|
|
89
|
-
};
|
|
90
|
-
type BusType = {
|
|
74
|
+
function createBus(): {
|
|
91
75
|
on: (event: string, handler: CB) => OnReturn;
|
|
92
76
|
emit: (event: string, ...args: any[]) => void;
|
|
93
77
|
};
|
|
78
|
+
type OnReturn = {
|
|
79
|
+
off: () => void;
|
|
80
|
+
};
|
|
94
81
|
}
|
|
95
82
|
/**
|
|
96
83
|
* @returns a unique numeric id.
|
|
@@ -119,14 +106,6 @@ declare const isNotArray: (value: unknown) => boolean;
|
|
|
119
106
|
declare function isEmpty(value: unknown): boolean;
|
|
120
107
|
declare const isNotEmpty: (value: unknown) => boolean;
|
|
121
108
|
declare function isPositive(value: number | string): boolean;
|
|
122
|
-
|
|
123
|
-
function createTinyState<S>(initialValue: S | (() => S)): TinyState<S>;
|
|
124
|
-
type TinyState<S> = () => [
|
|
125
|
-
value: S,
|
|
126
|
-
setValue: (next: S | ((prev: S) => S)) => void,
|
|
127
|
-
resetValue: () => void
|
|
128
|
-
];
|
|
129
|
-
}
|
|
130
|
-
export { createCache as cache, CacheApi, BusType, TinyState, isNullish, isNotNullish, nestedArray, asArray, callEach, hasOwnProperty, isPromise, optionalFunctionValue, _default as assign, defaultTo, invariant, StringObject, isStringValue, bindNot, either, isBoolean, last, deferThrow, bus, seq, genSeq, isFunction, mapFirst, greaterThan, longerThan, isNumeric, isNotNumeric, lengthEquals, lengthNotEquals, numberEquals, numberNotEquals, isNull, isNotNull, isUndefined, isNotUndefined, isArray, isNotArray, isEmpty, isNotEmpty, isPositive, tinyState };
|
|
109
|
+
export { createCache as cache, CacheApi, isNullish, isNotNullish, nestedArray, asArray, callEach, hasOwnProperty, isPromise, optionalFunctionValue, _default as assign, defaultTo, invariant, StringObject, isStringValue, bindNot, either, isBoolean, last, deferThrow, bus, seq, genSeq, isFunction, mapFirst, greaterThan, longerThan, isNumeric, isNotNumeric, lengthEquals, lengthNotEquals, numberEquals, numberNotEquals, isNull, isNotNull, isUndefined, isNotUndefined, isArray, isNotArray, isEmpty, isNotEmpty, isPositive };
|
|
131
110
|
export type { DropFirst, Stringable, CB, ValueOf };
|
|
132
111
|
//# sourceMappingURL=vest-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vest-utils.d.ts","sourceRoot":"","sources":["../src/vest-utils.ts","../src/bindNot.ts","../src/isNumeric.ts","../src/numberEquals.ts","../src/lengthEquals.ts","../src/greaterThan.ts","../src/longerThan.ts","../src/cache.ts","../src/
|
|
1
|
+
{"version":3,"file":"vest-utils.d.ts","sourceRoot":"","sources":["../src/vest-utils.ts","../src/bindNot.ts","../src/isNumeric.ts","../src/numberEquals.ts","../src/lengthEquals.ts","../src/greaterThan.ts","../src/longerThan.ts","../src/cache.ts","../src/isNull.ts","../src/isUndefined.ts","../src/isNullish.ts","../src/asArray.ts","../src/isFunction.ts","../src/optionalFunctionValue.ts","../src/defaultTo.ts","../src/isArrayValue.ts","../src/last.ts","../src/nestedArray.ts","../src/utilityTypes.ts","../src/callEach.ts","../src/hasOwnProperty.ts","../src/isPromise.ts","../src/assign.ts","../src/invariant.ts","../src/isStringValue.ts","../src/either.ts","../src/isBooleanValue.ts","../src/deferThrow.ts","../src/bus.ts","../src/seq.ts","../src/mapFirst.ts","../src/isEmpty.ts","../src/isPositive.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,ggBAA8B,CAAc;AAgCnD,YAAY,sCAAa,CAAqB"}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { createTinyState } from 'tinyState';
|
|
2
|
-
|
|
3
|
-
describe('tinyTest', () => {
|
|
4
|
-
it('Should be a function', () => {
|
|
5
|
-
expect(typeof createTinyState).toBe('function');
|
|
6
|
-
});
|
|
7
|
-
|
|
8
|
-
it('Should return a function', () => {
|
|
9
|
-
expect(typeof createTinyState(1)).toBe('function');
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
it('Should return a function that returns an array', () => {
|
|
13
|
-
expect(Array.isArray(createTinyState(1)())).toBe(true);
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
it('Should return a function that returns an array with three items', () => {
|
|
17
|
-
expect(createTinyState(1)()).toHaveLength(3);
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
it('Should return a function that returns an array with three items, the first being the initial value', () => {
|
|
21
|
-
expect(createTinyState('initial_value')()[0]).toBe('initial_value');
|
|
22
|
-
|
|
23
|
-
const initialValue = {};
|
|
24
|
-
expect(createTinyState(initialValue)()[0]).toBe(initialValue);
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
it('Should return a function that returns an array with three items, the second being a function', () => {
|
|
28
|
-
expect(typeof createTinyState(1)()[1]).toBe('function');
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
it('Should return a function that returns an array with three items, the third being a function', () => {
|
|
32
|
-
expect(typeof createTinyState(1)()[2]).toBe('function');
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
it('Updates the value when the second item is called', () => {
|
|
36
|
-
const testState = createTinyState('initial_value');
|
|
37
|
-
|
|
38
|
-
{
|
|
39
|
-
const [, setValue] = testState();
|
|
40
|
-
setValue('new_value');
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
{
|
|
44
|
-
const [value] = testState();
|
|
45
|
-
expect(value).toBe('new_value');
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
it('resets the value when the third item is called', () => {
|
|
50
|
-
const testState = createTinyState('initial_value');
|
|
51
|
-
|
|
52
|
-
{
|
|
53
|
-
const [, setValue] = testState();
|
|
54
|
-
setValue('new_value');
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
{
|
|
58
|
-
const [, , resetValue] = testState();
|
|
59
|
-
resetValue();
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
{
|
|
63
|
-
const [value] = testState();
|
|
64
|
-
expect(value).toBe('initial_value');
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
});
|
package/src/tinyState.ts
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import optionalFunctionValue from 'optionalFunctionValue';
|
|
2
|
-
|
|
3
|
-
export function createTinyState<S>(initialValue: S | (() => S)): TinyState<S> {
|
|
4
|
-
let value: S;
|
|
5
|
-
|
|
6
|
-
resetValue();
|
|
7
|
-
|
|
8
|
-
return () => [value, setValue, resetValue];
|
|
9
|
-
|
|
10
|
-
function setValue(nextValue: S | ((currentValue: S) => S)) {
|
|
11
|
-
value = optionalFunctionValue(nextValue, value);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
function resetValue() {
|
|
15
|
-
setValue(optionalFunctionValue(initialValue));
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export type TinyState<S> = () => [
|
|
20
|
-
value: S,
|
|
21
|
-
setValue: (next: S | ((prev: S) => S)) => void,
|
|
22
|
-
resetValue: () => void
|
|
23
|
-
];
|