@mic-rexjs/usecases-react 1.4.0 → 1.5.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 +2 -2
- package/dist/index.min.js +1 -1
- package/es/components/UseCaseFragment/types.d.ts +1 -1
- package/es/hooks/useCompareDeps/index.js +3 -16
- package/es/hooks/useReducer/index.d.ts +2 -0
- package/es/hooks/useReducer/index.js +20 -0
- package/es/hooks/useUseCase/index.js +2 -2
- package/es/hooks/useUseCase/index.test.js +493 -41
- package/es/hooks/useUseCase/types.d.ts +18 -6
- package/es/index.d.ts +1 -0
- package/es/index.js +1 -0
- package/es/methods/compareProperty/index.d.ts +2 -0
- package/es/methods/compareProperty/index.js +34 -0
- package/es/methods/compareProperty/types.d.ts +3 -0
- package/es/methods/hasField/index.d.ts +1 -0
- package/es/methods/hasField/index.js +6 -0
- package/es/methods/initEntityReducers/types.d.ts +1 -1
- package/es/methods/isSameArray/index.d.ts +1 -0
- package/es/methods/isSameArray/index.js +14 -0
- package/es/methods/triggerCallbacks/index.d.ts +1 -1
- package/es/methods/triggerCallbacks/index.js +3 -3
- package/es/methods/triggerWatchers/index.d.ts +1 -1
- package/es/methods/triggerWatchers/index.js +12 -8
- package/lib/hooks/useCompareDeps/index.js +3 -16
- package/lib/hooks/useReducer/index.js +30 -0
- package/lib/hooks/useUseCase/index.js +2 -2
- package/lib/hooks/useUseCase/index.test.js +643 -91
- package/lib/index.js +7 -0
- package/lib/methods/compareProperty/index.js +50 -0
- package/lib/methods/hasField/index.js +15 -0
- package/lib/methods/isSameArray/index.js +21 -0
- package/lib/methods/triggerCallbacks/index.js +3 -3
- package/lib/methods/triggerWatchers/index.js +16 -9
- package/package.json +1 -1
- package/es/hooks/useScope/index.d.ts +0 -2
- package/es/hooks/useScope/index.js +0 -3
- package/es/hooks/useScope/types.d.ts +0 -3
- package/lib/hooks/useScope/index.js +0 -10
- /package/es/{hooks/useScope → methods/compareProperty}/types.js +0 -0
- /package/lib/{hooks/useScope → methods/compareProperty}/types.js +0 -0
package/lib/index.js
CHANGED
|
@@ -9,6 +9,12 @@ Object.defineProperty(exports, "UseCaseFragment", {
|
|
|
9
9
|
return _UseCaseFragment.UseCaseFragment;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
+
Object.defineProperty(exports, "useReducer", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _useReducer.useReducer;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
12
18
|
Object.defineProperty(exports, "useUseCase", {
|
|
13
19
|
enumerable: true,
|
|
14
20
|
get: function get() {
|
|
@@ -16,4 +22,5 @@ Object.defineProperty(exports, "useUseCase", {
|
|
|
16
22
|
}
|
|
17
23
|
});
|
|
18
24
|
var _UseCaseFragment = require("./components/UseCaseFragment");
|
|
25
|
+
var _useReducer = require("./hooks/useReducer");
|
|
19
26
|
var _useUseCase = require("./hooks/useUseCase");
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.compareProperty = void 0;
|
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _hasField = require("../hasField");
|
|
11
|
+
var compareProperty = function compareProperty(from, to, fieldPath, callback) {
|
|
12
|
+
var fieldPathStack = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];
|
|
13
|
+
var undef = void 0;
|
|
14
|
+
var _ref = fieldPath.match(/^([^.]+)\.(.+)$/) || [],
|
|
15
|
+
_ref2 = (0, _slicedToArray2["default"])(_ref, 3),
|
|
16
|
+
_ref2$ = _ref2[1],
|
|
17
|
+
key = _ref2$ === void 0 ? fieldPath : _ref2$,
|
|
18
|
+
_ref2$2 = _ref2[2],
|
|
19
|
+
subFieldPath = _ref2$2 === void 0 ? '' : _ref2$2;
|
|
20
|
+
var hasFromField = (0, _hasField.hasField)(from, key);
|
|
21
|
+
var hasToField = (0, _hasField.hasField)(to, key);
|
|
22
|
+
var currentFieldPathStack = [].concat((0, _toConsumableArray2["default"])(fieldPathStack), [key]);
|
|
23
|
+
if (hasFromField || hasToField) {
|
|
24
|
+
var fromValue = hasFromField ? from[key] : undef;
|
|
25
|
+
var toValue = hasToField ? to[key] : undef;
|
|
26
|
+
if (subFieldPath) {
|
|
27
|
+
compareProperty(fromValue, toValue, subFieldPath, callback, currentFieldPathStack);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
if (fromValue === toValue) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
callback(fromValue, toValue, currentFieldPathStack);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (/^\d+^/.test(key)) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
var fromArray = Array.isArray(from) ? from : [];
|
|
40
|
+
var toArray = Array.isArray(to) ? to : [];
|
|
41
|
+
var fromLength = fromArray.length;
|
|
42
|
+
var toLength = toArray.length;
|
|
43
|
+
var length = Math.max(fromLength, toLength);
|
|
44
|
+
for (var i = 0; i < length; i++) {
|
|
45
|
+
var fromItem = fromArray[i];
|
|
46
|
+
var toItem = toArray[i];
|
|
47
|
+
compareProperty(fromItem, toItem, fieldPath, callback, [].concat((0, _toConsumableArray2["default"])(fieldPathStack), ["".concat(i)]));
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
exports.compareProperty = compareProperty;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.hasField = void 0;
|
|
8
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
9
|
+
var hasField = function hasField(data, field) {
|
|
10
|
+
if ((0, _typeof2["default"])(data) !== 'object' || data === null) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
return Object.hasOwn(data, field);
|
|
14
|
+
};
|
|
15
|
+
exports.hasField = hasField;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.isSameArray = void 0;
|
|
7
|
+
var isSameArray = function isSameArray(array1, array2) {
|
|
8
|
+
var length1 = array1.length;
|
|
9
|
+
var length2 = array2.length;
|
|
10
|
+
if (length1 !== length2) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
for (var i = 0; i < length1; i++) {
|
|
14
|
+
if (array1[i] === array2[i]) {
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
return true;
|
|
20
|
+
};
|
|
21
|
+
exports.isSameArray = isSameArray;
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.triggerCallbacks = void 0;
|
|
7
7
|
var _triggerWatchers = require("../triggerWatchers");
|
|
8
|
-
var triggerCallbacks = function triggerCallbacks(optionsRefCollection, newEntity,
|
|
8
|
+
var triggerCallbacks = function triggerCallbacks(optionsRefCollection, newEntity, oldEntity) {
|
|
9
9
|
for (var i = optionsRefCollection.length; i > 0; i--) {
|
|
10
10
|
var options = optionsRefCollection[i - 1].current;
|
|
11
11
|
if (!options) {
|
|
@@ -14,9 +14,9 @@ var triggerCallbacks = function triggerCallbacks(optionsRefCollection, newEntity
|
|
|
14
14
|
var onChange = options.onChange,
|
|
15
15
|
watch = options.watch;
|
|
16
16
|
if (watch) {
|
|
17
|
-
(0, _triggerWatchers.triggerWatchers)(watch, newEntity,
|
|
17
|
+
(0, _triggerWatchers.triggerWatchers)(watch, newEntity, oldEntity);
|
|
18
18
|
}
|
|
19
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(newEntity,
|
|
19
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(newEntity, oldEntity);
|
|
20
20
|
}
|
|
21
21
|
};
|
|
22
22
|
exports.triggerCallbacks = triggerCallbacks;
|
|
@@ -6,17 +6,24 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.triggerWatchers = void 0;
|
|
8
8
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
-
var
|
|
10
|
-
|
|
9
|
+
var _compareProperty = require("../compareProperty");
|
|
10
|
+
var triggerWatchers = function triggerWatchers(watch, newEntity, oldEntity) {
|
|
11
|
+
var _loop = function _loop() {
|
|
11
12
|
var _Object$entries$_i = (0, _slicedToArray2["default"])(_Object$entries[_i], 2),
|
|
12
|
-
|
|
13
|
+
fieldPath = _Object$entries$_i[0],
|
|
13
14
|
watcher = _Object$entries$_i[1];
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
(0, _compareProperty.compareProperty)(oldEntity, newEntity, fieldPath, function (oldValue, newValue, fieldPaths) {
|
|
16
|
+
watcher({
|
|
17
|
+
fieldPaths: fieldPaths,
|
|
18
|
+
newEntity: newEntity,
|
|
19
|
+
oldEntity: oldEntity,
|
|
20
|
+
newValue: newValue,
|
|
21
|
+
oldValue: oldValue
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
for (var _i = 0, _Object$entries = Object.entries(watch); _i < _Object$entries.length; _i++) {
|
|
26
|
+
_loop();
|
|
20
27
|
}
|
|
21
28
|
};
|
|
22
29
|
exports.triggerWatchers = triggerWatchers;
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|