@mic-rexjs/usecases-react 2.0.2 → 2.1.1
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/index.min.js +1 -1
- package/es/components/UseCaseFragment/index.d.ts +2 -2
- package/es/components/UseCaseFragment/types.d.ts +3 -3
- package/es/configs/defaultUseCaseContext/index.d.ts +2 -3
- package/es/configs/defaultUseCaseContext/types.d.ts +10 -12
- package/es/configs/useCaseContextReferenceMap/types.d.ts +5 -5
- package/es/enums/UseCaseArgumentTypes/index.d.ts +5 -0
- package/es/enums/UseCaseArgumentTypes/index.js +6 -0
- package/es/enums/UseCaseModeErrors/index.d.ts +4 -0
- package/es/enums/UseCaseModeErrors/index.js +5 -0
- package/es/enums/UseCaseStatuses/index.d.ts +10 -0
- package/es/enums/UseCaseStatuses/index.js +18 -0
- package/es/hooks/useArgumentTypes/index.d.ts +3 -0
- package/es/hooks/useArgumentTypes/index.js +19 -0
- package/es/hooks/useContextualItem/index.d.ts +3 -0
- package/es/hooks/useContextualItem/index.js +13 -0
- package/es/hooks/useContextualItem/types.d.ts +3 -0
- package/es/hooks/useEntity/index.d.ts +4 -0
- package/es/hooks/useEntity/index.js +49 -0
- package/es/hooks/useGlobalUseCase/index.js +2 -8
- package/es/hooks/useGlobalUseCase/index.test.js +6 -56
- package/es/hooks/useGlobalUseCase/types.d.ts +4 -11
- package/es/hooks/useMemoizedCall/index.d.ts +2 -0
- package/es/hooks/useMemoizedCall/index.js +15 -0
- package/es/hooks/useProvider/index.d.ts +4 -4
- package/es/hooks/useProvider/index.js +16 -17
- package/es/hooks/useSafeMode/index.d.ts +3 -0
- package/es/hooks/useSafeMode/index.js +18 -0
- package/es/hooks/useStatelessUseCase/index.js +2 -5
- package/es/hooks/useStatelessUseCase/index.test.js +4 -42
- package/es/hooks/useStatelessUseCase/types.d.ts +2 -4
- package/es/hooks/useUseCase/index.js +45 -75
- package/es/hooks/useUseCase/index.test.js +74 -20
- package/es/hooks/useUseCase/types.d.ts +40 -45
- package/es/hooks/useUseCaseContext/index.d.ts +5 -3
- package/es/hooks/useUseCaseContext/index.js +10 -3
- package/es/hooks/useUseCaseContext/index.test.js +39 -12
- package/es/hooks/useUseCaseStatuses/index.d.ts +6 -0
- package/es/hooks/useUseCaseStatuses/index.js +29 -0
- package/es/index.d.ts +1 -1
- package/es/methods/cacheCall/index.d.ts +2 -0
- package/es/methods/cacheCall/index.js +26 -0
- package/es/methods/cacheCall/types.d.ts +13 -0
- package/es/methods/cacheCalls/index.d.ts +2 -0
- package/es/methods/cacheCalls/index.js +8 -0
- package/es/methods/fillArguments/index.d.ts +5 -0
- package/es/methods/fillArguments/index.js +41 -0
- package/es/methods/fillArguments/types.d.ts +10 -0
- package/es/methods/fillArguments/types.js +1 -0
- package/es/methods/getRenderingEntity/index.d.ts +3 -0
- package/es/methods/getRenderingEntity/index.js +13 -0
- package/es/methods/initEntityReducers/index.d.ts +2 -3
- package/es/methods/initEntityReducers/index.js +2 -3
- package/es/methods/triggerCallbacks/index.d.ts +1 -1
- package/es/methods/triggerCallbacks/index.js +3 -3
- package/lib/enums/UseCaseArgumentTypes/index.js +13 -0
- package/lib/enums/UseCaseModeErrors/index.js +12 -0
- package/lib/enums/UseCaseStatuses/index.js +25 -0
- package/lib/hooks/useArgumentTypes/index.js +31 -0
- package/lib/hooks/useContextualItem/index.js +21 -0
- package/lib/hooks/useEntity/index.js +63 -0
- package/lib/hooks/useGlobalUseCase/index.js +2 -15
- package/lib/hooks/useGlobalUseCase/index.test.js +5 -57
- package/lib/hooks/useMemoizedCall/index.js +22 -0
- package/lib/hooks/useProvider/index.js +18 -17
- package/lib/hooks/useSafeMode/index.js +25 -0
- package/lib/hooks/useStatelessUseCase/index.js +2 -12
- package/lib/hooks/useStatelessUseCase/index.test.js +2 -43
- package/lib/hooks/useUseCase/index.js +55 -83
- package/lib/hooks/useUseCase/index.test.js +104 -57
- package/lib/hooks/useUseCaseContext/index.js +12 -3
- package/lib/hooks/useUseCaseContext/index.test.js +45 -19
- package/lib/hooks/useUseCaseStatuses/index.js +36 -0
- package/lib/methods/cacheCall/index.js +42 -0
- package/lib/methods/cacheCalls/index.js +20 -0
- package/lib/methods/fillArguments/index.js +31 -0
- package/lib/methods/fillArguments/types.js +5 -0
- package/lib/methods/getRenderingEntity/index.js +20 -0
- package/lib/methods/initEntityReducers/index.js +2 -3
- package/lib/methods/triggerCallbacks/index.js +3 -3
- package/package.json +3 -3
- package/es/hooks/useChangeCallbackCollection/index.d.ts +0 -3
- package/es/hooks/useChangeCallbackCollection/index.js +0 -29
- package/es/methods/cacheReducerCalls/index.d.ts +0 -3
- package/es/methods/cacheReducerCalls/index.js +0 -26
- package/es/methods/cacheReducerCalls/types.d.ts +0 -11
- package/es/methods/getRootEntity/index.d.ts +0 -3
- package/es/methods/getRootEntity/index.js +0 -10
- package/es/methods/initEntityReducers/types.d.ts +0 -3
- package/es/methods/removeItem/index.d.ts +0 -1
- package/es/methods/removeItem/index.js +0 -7
- package/es/methods/toMaxArguments/index.d.ts +0 -3
- package/es/methods/toMaxArguments/index.js +0 -28
- package/lib/hooks/useChangeCallbackCollection/index.js +0 -37
- package/lib/methods/cacheReducerCalls/index.js +0 -45
- package/lib/methods/getRootEntity/index.js +0 -17
- package/lib/methods/removeItem/index.js +0 -14
- package/lib/methods/toMaxArguments/index.js +0 -25
- /package/es/{methods/cacheReducerCalls → hooks/useContextualItem}/types.js +0 -0
- /package/es/methods/{initEntityReducers → cacheCall}/types.js +0 -0
- /package/lib/{methods/cacheReducerCalls → hooks/useContextualItem}/types.js +0 -0
- /package/lib/methods/{initEntityReducers → cacheCall}/types.js +0 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useUseCaseStatuses = void 0;
|
|
7
|
+
var _UseCaseArgumentTypes = require("../../enums/UseCaseArgumentTypes");
|
|
8
|
+
var _UseCaseModes = require("../../enums/UseCaseModes");
|
|
9
|
+
var _UseCaseStatuses = require("../../enums/UseCaseStatuses");
|
|
10
|
+
var _ahooks = require("ahooks");
|
|
11
|
+
var useUseCaseStatuses = function useUseCaseStatuses(argumentTypes, mode, contextValue) {
|
|
12
|
+
return (0, _ahooks.useCreation)(function () {
|
|
13
|
+
var statuses = _UseCaseStatuses.UseCaseStatuses.None;
|
|
14
|
+
var _ref = contextValue || {},
|
|
15
|
+
store = _ref.store;
|
|
16
|
+
if ((argumentTypes & _UseCaseArgumentTypes.UseCaseArgumentTypes.Entity) === _UseCaseArgumentTypes.UseCaseArgumentTypes.Entity) {
|
|
17
|
+
statuses |= _UseCaseStatuses.UseCaseStatuses.EntityRootEnabled;
|
|
18
|
+
}
|
|
19
|
+
if (contextValue === null) {
|
|
20
|
+
statuses |= _UseCaseStatuses.UseCaseStatuses.RootEnabled;
|
|
21
|
+
} else {
|
|
22
|
+
statuses |= _UseCaseStatuses.UseCaseStatuses.ContextEnabled;
|
|
23
|
+
}
|
|
24
|
+
if (store) {
|
|
25
|
+
statuses |= _UseCaseStatuses.UseCaseStatuses.EntityEnabled;
|
|
26
|
+
}
|
|
27
|
+
if ((mode & _UseCaseModes.UseCaseModes.Stateless) === _UseCaseModes.UseCaseModes.Stateless) {
|
|
28
|
+
statuses |= _UseCaseStatuses.UseCaseStatuses.StatelessEnabled;
|
|
29
|
+
}
|
|
30
|
+
if ((mode & _UseCaseModes.UseCaseModes.Global) === _UseCaseModes.UseCaseModes.Global) {
|
|
31
|
+
statuses |= _UseCaseStatuses.UseCaseStatuses.GlobalEnabled;
|
|
32
|
+
}
|
|
33
|
+
return statuses;
|
|
34
|
+
}, [argumentTypes, contextValue, mode]);
|
|
35
|
+
};
|
|
36
|
+
exports.useUseCaseStatuses = useUseCaseStatuses;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.cacheCall = void 0;
|
|
7
|
+
var _isSameArray = require("../isSameArray");
|
|
8
|
+
var cacheCall = function cacheCall(factory, options) {
|
|
9
|
+
var cache;
|
|
10
|
+
var _ref = options || {},
|
|
11
|
+
_ref$onShouldCache = _ref.onShouldCache,
|
|
12
|
+
onShouldCache = _ref$onShouldCache === void 0 ? function () {
|
|
13
|
+
return true;
|
|
14
|
+
} : _ref$onShouldCache,
|
|
15
|
+
_ref$onCompare = _ref.onCompare,
|
|
16
|
+
onCompare = _ref$onCompare === void 0 ? function (newArgs, oldArgs) {
|
|
17
|
+
return (0, _isSameArray.isSameArray)(newArgs, oldArgs);
|
|
18
|
+
} : _ref$onCompare;
|
|
19
|
+
return function () {
|
|
20
|
+
var cacheable = onShouldCache();
|
|
21
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
22
|
+
args[_key] = arguments[_key];
|
|
23
|
+
}
|
|
24
|
+
if (cache && cacheable) {
|
|
25
|
+
var _cache = cache,
|
|
26
|
+
parameters = _cache.parameters,
|
|
27
|
+
_returnValue = _cache.returnValue;
|
|
28
|
+
if (onCompare(parameters, args)) {
|
|
29
|
+
return _returnValue;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
var returnValue = factory.apply(void 0, args);
|
|
33
|
+
if (cacheable) {
|
|
34
|
+
cache = {
|
|
35
|
+
parameters: args,
|
|
36
|
+
returnValue: returnValue
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
return returnValue;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
exports.cacheCall = cacheCall;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.cacheCalls = void 0;
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
var _cacheCall = require("../cacheCall");
|
|
10
|
+
var cacheCalls = function cacheCalls(sourceFactories, options) {
|
|
11
|
+
var cachedFactories = {};
|
|
12
|
+
Object.entries(sourceFactories).forEach(function (_ref) {
|
|
13
|
+
var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
|
|
14
|
+
key = _ref2[0],
|
|
15
|
+
factory = _ref2[1];
|
|
16
|
+
cachedFactories[key] = (0, _cacheCall.cacheCall)(factory, options);
|
|
17
|
+
});
|
|
18
|
+
return cachedFactories;
|
|
19
|
+
};
|
|
20
|
+
exports.cacheCalls = cacheCalls;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.fillArguments = void 0;
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
var _UseCaseModes = require("../../enums/UseCaseModes");
|
|
10
|
+
var _UseCaseArgumentTypes = require("../../enums/UseCaseArgumentTypes");
|
|
11
|
+
var fillArguments = function fillArguments(args, argumentTypes) {
|
|
12
|
+
var _args = (0, _slicedToArray2["default"])(args, 5),
|
|
13
|
+
arg1 = _args[0],
|
|
14
|
+
arg2 = _args[1],
|
|
15
|
+
arg3 = _args[2],
|
|
16
|
+
arg4 = _args[3],
|
|
17
|
+
arg5 = _args[4];
|
|
18
|
+
var hasEntity = (argumentTypes & _UseCaseArgumentTypes.UseCaseArgumentTypes.Entity) === _UseCaseArgumentTypes.UseCaseArgumentTypes.Entity;
|
|
19
|
+
var hasMode = (argumentTypes & _UseCaseArgumentTypes.UseCaseArgumentTypes.Mode) === _UseCaseArgumentTypes.UseCaseArgumentTypes.Mode;
|
|
20
|
+
if (hasEntity) {
|
|
21
|
+
if (hasMode) {
|
|
22
|
+
return [arg1, arg2, arg3, arg4 || {}, arg5 || []];
|
|
23
|
+
}
|
|
24
|
+
return [arg1, arg2, _UseCaseModes.UseCaseModes.Normal, arg3 || {}, arg4 || []];
|
|
25
|
+
}
|
|
26
|
+
if (hasMode) {
|
|
27
|
+
return [null, arg1, arg2, arg3 || {}, arg4 || []];
|
|
28
|
+
}
|
|
29
|
+
return [null, arg1, _UseCaseModes.UseCaseModes.Normal, arg2 || {}, arg3 || []];
|
|
30
|
+
};
|
|
31
|
+
exports.fillArguments = fillArguments;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getRenderingEntity = void 0;
|
|
7
|
+
var _UseCaseStatuses = require("../../enums/UseCaseStatuses");
|
|
8
|
+
var getRenderingEntity = function getRenderingEntity(statuses, entityState, rootEntity, contextEntity) {
|
|
9
|
+
if ((statuses & _UseCaseStatuses.UseCaseStatuses.EntityRootEnabled) !== _UseCaseStatuses.UseCaseStatuses.EntityRootEnabled) {
|
|
10
|
+
return contextEntity;
|
|
11
|
+
}
|
|
12
|
+
if ((statuses & _UseCaseStatuses.UseCaseStatuses.StatelessEnabled) !== _UseCaseStatuses.UseCaseStatuses.StatelessEnabled) {
|
|
13
|
+
return entityState;
|
|
14
|
+
}
|
|
15
|
+
if (typeof rootEntity === 'function') {
|
|
16
|
+
return rootEntity();
|
|
17
|
+
}
|
|
18
|
+
return rootEntity;
|
|
19
|
+
};
|
|
20
|
+
exports.getRenderingEntity = getRenderingEntity;
|
|
@@ -11,13 +11,12 @@ var _usecases = require("@mic-rexjs/usecases");
|
|
|
11
11
|
var _excluded = ["watch", "onChange", "options"];
|
|
12
12
|
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; }
|
|
13
13
|
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) { (0, _defineProperty2["default"])(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; }
|
|
14
|
-
var initEntityReducers = function initEntityReducers(
|
|
14
|
+
var initEntityReducers = function initEntityReducers(usecase, store, options) {
|
|
15
15
|
var watch = options.watch,
|
|
16
16
|
onChange = options.onChange,
|
|
17
17
|
usecaseOptions = options.options,
|
|
18
18
|
restUseCaseOptions = (0, _objectWithoutProperties2["default"])(options, _excluded);
|
|
19
|
-
return (0, _usecases.createEntityReducers)(
|
|
20
|
-
onChange: onEntityChange,
|
|
19
|
+
return (0, _usecases.createEntityReducers)(store, usecase, _objectSpread(_objectSpread(_objectSpread({}, restUseCaseOptions), usecaseOptions), {}, {
|
|
21
20
|
onGenerate: function onGenerate(newEntity, result) {
|
|
22
21
|
return result;
|
|
23
22
|
}
|
|
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.triggerCallbacks = void 0;
|
|
7
|
-
var triggerCallbacks = function triggerCallbacks(
|
|
8
|
-
for (var i =
|
|
9
|
-
|
|
7
|
+
var triggerCallbacks = function triggerCallbacks(callbacks, newEntity, oldEntity) {
|
|
8
|
+
for (var i = callbacks.length; i > 0; i--) {
|
|
9
|
+
callbacks[i - 1](newEntity, oldEntity);
|
|
10
10
|
}
|
|
11
11
|
};
|
|
12
12
|
exports.triggerCallbacks = triggerCallbacks;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mic-rexjs/usecases-react",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"description": "React-based solution for use usecases of Clean Architecture",
|
|
5
5
|
"private": false,
|
|
6
6
|
"keywords": [
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
},
|
|
34
34
|
"license": "MIT",
|
|
35
35
|
"peerDependencies": {
|
|
36
|
-
"@mic-rexjs/usecases": "^2.
|
|
36
|
+
"@mic-rexjs/usecases": "^2.1.5",
|
|
37
37
|
"react": "^16.8.0 || ^17.0.0 || ^18.0.0"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"@commitlint/cli": "^17.6.6",
|
|
50
50
|
"@commitlint/config-angular": "^17.6.6",
|
|
51
51
|
"@jest/globals": "^29.5.0",
|
|
52
|
-
"@mic-rexjs/usecases": "^2.
|
|
52
|
+
"@mic-rexjs/usecases": "^2.1.5",
|
|
53
53
|
"@testing-library/react": "^14.0.0",
|
|
54
54
|
"@types/node": "^20.4.2",
|
|
55
55
|
"@types/react": "^18.2.14",
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { UseCaseHookOptions } from '../useUseCase/types';
|
|
2
|
-
import { ChangeCallback } from '../../configs/defaultUseCaseContext/types';
|
|
3
|
-
export declare const useChangeCallbackCollection: <T, TUseCaseOptions extends object, TOptions extends UseCaseHookOptions<T, TUseCaseOptions> = UseCaseHookOptions<T, TUseCaseOptions>>(isRoot: boolean, contextCollection: ChangeCallback<T>[] | null, options: TOptions) => ChangeCallback<T>[];
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { useCreation, useMemoizedFn, usePrevious, useUnmount } from 'ahooks';
|
|
2
|
-
import { removeItem } from '../../methods/removeItem';
|
|
3
|
-
import { triggerWatchers } from '../../methods/triggerWatchers';
|
|
4
|
-
export const useChangeCallbackCollection = (isRoot, contextCollection, options) => {
|
|
5
|
-
const changeCallbackCollection = useCreation(() => {
|
|
6
|
-
if (isRoot) {
|
|
7
|
-
return [];
|
|
8
|
-
}
|
|
9
|
-
return contextCollection;
|
|
10
|
-
}, [contextCollection, isRoot]);
|
|
11
|
-
const onEntityChange = useMemoizedFn((newEntity, oldEntity) => {
|
|
12
|
-
const { onChange, watch } = options;
|
|
13
|
-
if (watch) {
|
|
14
|
-
triggerWatchers(watch, newEntity, oldEntity);
|
|
15
|
-
}
|
|
16
|
-
onChange?.(newEntity, oldEntity);
|
|
17
|
-
});
|
|
18
|
-
const prevChangeCallbackCollection = usePrevious(changeCallbackCollection);
|
|
19
|
-
useCreation(() => {
|
|
20
|
-
if (prevChangeCallbackCollection) {
|
|
21
|
-
removeItem(prevChangeCallbackCollection, onEntityChange);
|
|
22
|
-
}
|
|
23
|
-
changeCallbackCollection.push(onEntityChange);
|
|
24
|
-
}, [onEntityChange, changeCallbackCollection, prevChangeCallbackCollection]);
|
|
25
|
-
useUnmount(() => {
|
|
26
|
-
removeItem(changeCallbackCollection, onEntityChange);
|
|
27
|
-
});
|
|
28
|
-
return changeCallbackCollection;
|
|
29
|
-
};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { ReducerMap } from '@mic-rexjs/usecases';
|
|
2
|
-
import { ShouldCacheReducerCallback } from './types';
|
|
3
|
-
export declare const cacheReducerCalls: <T extends ReducerMap<import("@mic-rexjs/usecases").Reducer<unknown>>>(reducers: T, shouldCache: ShouldCacheReducerCallback) => T;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { isSameArray } from '../isSameArray';
|
|
2
|
-
export const cacheReducerCalls = (reducers, shouldCache) => {
|
|
3
|
-
const cacheMap = {};
|
|
4
|
-
const newReducers = {};
|
|
5
|
-
for (const [key, reducer] of Object.entries(reducers)) {
|
|
6
|
-
newReducers[key] = ((...args) => {
|
|
7
|
-
const cache = cacheMap[key];
|
|
8
|
-
const cacheable = shouldCache();
|
|
9
|
-
if (cache && cacheable) {
|
|
10
|
-
const { parameters, returnValue } = cache;
|
|
11
|
-
if (isSameArray(parameters, args)) {
|
|
12
|
-
return returnValue;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
const returnValue = reducer(...args);
|
|
16
|
-
if (cacheable) {
|
|
17
|
-
cacheMap[key] = {
|
|
18
|
-
parameters: args,
|
|
19
|
-
returnValue,
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
return returnValue;
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
return newReducers;
|
|
26
|
-
};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Reducer, ReducerMap } from '@mic-rexjs/usecases';
|
|
2
|
-
export interface ReducerCallCache<T extends Reducer> {
|
|
3
|
-
parameters: Parameters<T>;
|
|
4
|
-
returnValue: ReturnType<T>;
|
|
5
|
-
}
|
|
6
|
-
export interface ShouldCacheReducerCallback {
|
|
7
|
-
(): boolean;
|
|
8
|
-
}
|
|
9
|
-
export type ReducerCallCacheMap<T extends ReducerMap> = {
|
|
10
|
-
[K in keyof T]?: ReducerCallCache<T[K]>;
|
|
11
|
-
};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { UseCaseModes } from '../../enums/UseCaseModes';
|
|
2
|
-
export const getRootEntity = (entityState, unsafeEntity, mode) => {
|
|
3
|
-
if ((mode & UseCaseModes.Stateless) !== UseCaseModes.Stateless) {
|
|
4
|
-
return entityState;
|
|
5
|
-
}
|
|
6
|
-
if (typeof unsafeEntity === 'function') {
|
|
7
|
-
return unsafeEntity();
|
|
8
|
-
}
|
|
9
|
-
return unsafeEntity;
|
|
10
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const removeItem: <T>(list: T[], item: T) => void;
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { UseCaseHookMaxParameters, UseCaseHookParameters } from '../../hooks/useUseCase/types';
|
|
2
|
-
import { EntityReducers, Reducers } from '@mic-rexjs/usecases';
|
|
3
|
-
export declare const toMaxArguments: <T, TReducers extends Reducers, TEntityReducers extends EntityReducers<T>, TUseCaseOptions extends object>([arg1, arg2, arg3, arg4, arg5]: UseCaseHookParameters<T, TReducers, TEntityReducers, TUseCaseOptions>) => UseCaseHookMaxParameters<T, TReducers, TEntityReducers, TUseCaseOptions>;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { UseCaseModes } from '../../enums/UseCaseModes';
|
|
2
|
-
export const toMaxArguments = ([arg1, arg2, arg3, arg4, arg5]) => {
|
|
3
|
-
if (typeof arg2 !== 'function') {
|
|
4
|
-
return [
|
|
5
|
-
null,
|
|
6
|
-
arg1,
|
|
7
|
-
UseCaseModes.Normal,
|
|
8
|
-
arg2 || {},
|
|
9
|
-
(arg3 || []),
|
|
10
|
-
];
|
|
11
|
-
}
|
|
12
|
-
if (typeof arg3 === 'number') {
|
|
13
|
-
return [
|
|
14
|
-
arg1,
|
|
15
|
-
arg2,
|
|
16
|
-
arg3,
|
|
17
|
-
(arg4 || {}),
|
|
18
|
-
arg5 || [],
|
|
19
|
-
];
|
|
20
|
-
}
|
|
21
|
-
return [
|
|
22
|
-
arg1,
|
|
23
|
-
arg2,
|
|
24
|
-
UseCaseModes.Normal,
|
|
25
|
-
(arg3 || {}),
|
|
26
|
-
(arg4 || []),
|
|
27
|
-
];
|
|
28
|
-
};
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.useChangeCallbackCollection = void 0;
|
|
7
|
-
var _ahooks = require("ahooks");
|
|
8
|
-
var _removeItem = require("../../methods/removeItem");
|
|
9
|
-
var _triggerWatchers = require("../../methods/triggerWatchers");
|
|
10
|
-
var useChangeCallbackCollection = function useChangeCallbackCollection(isRoot, contextCollection, options) {
|
|
11
|
-
var changeCallbackCollection = (0, _ahooks.useCreation)(function () {
|
|
12
|
-
if (isRoot) {
|
|
13
|
-
return [];
|
|
14
|
-
}
|
|
15
|
-
return contextCollection;
|
|
16
|
-
}, [contextCollection, isRoot]);
|
|
17
|
-
var onEntityChange = (0, _ahooks.useMemoizedFn)(function (newEntity, oldEntity) {
|
|
18
|
-
var onChange = options.onChange,
|
|
19
|
-
watch = options.watch;
|
|
20
|
-
if (watch) {
|
|
21
|
-
(0, _triggerWatchers.triggerWatchers)(watch, newEntity, oldEntity);
|
|
22
|
-
}
|
|
23
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(newEntity, oldEntity);
|
|
24
|
-
});
|
|
25
|
-
var prevChangeCallbackCollection = (0, _ahooks.usePrevious)(changeCallbackCollection);
|
|
26
|
-
(0, _ahooks.useCreation)(function () {
|
|
27
|
-
if (prevChangeCallbackCollection) {
|
|
28
|
-
(0, _removeItem.removeItem)(prevChangeCallbackCollection, onEntityChange);
|
|
29
|
-
}
|
|
30
|
-
changeCallbackCollection.push(onEntityChange);
|
|
31
|
-
}, [onEntityChange, changeCallbackCollection, prevChangeCallbackCollection]);
|
|
32
|
-
(0, _ahooks.useUnmount)(function () {
|
|
33
|
-
(0, _removeItem.removeItem)(changeCallbackCollection, onEntityChange);
|
|
34
|
-
});
|
|
35
|
-
return changeCallbackCollection;
|
|
36
|
-
};
|
|
37
|
-
exports.useChangeCallbackCollection = useChangeCallbackCollection;
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.cacheReducerCalls = void 0;
|
|
8
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
-
var _isSameArray = require("../isSameArray");
|
|
10
|
-
var cacheReducerCalls = function cacheReducerCalls(reducers, shouldCache) {
|
|
11
|
-
var cacheMap = {};
|
|
12
|
-
var newReducers = {};
|
|
13
|
-
var _loop = function _loop() {
|
|
14
|
-
var _Object$entries$_i = (0, _slicedToArray2["default"])(_Object$entries[_i], 2),
|
|
15
|
-
key = _Object$entries$_i[0],
|
|
16
|
-
reducer = _Object$entries$_i[1];
|
|
17
|
-
newReducers[key] = function () {
|
|
18
|
-
var cache = cacheMap[key];
|
|
19
|
-
var cacheable = shouldCache();
|
|
20
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
21
|
-
args[_key] = arguments[_key];
|
|
22
|
-
}
|
|
23
|
-
if (cache && cacheable) {
|
|
24
|
-
var parameters = cache.parameters,
|
|
25
|
-
_returnValue = cache.returnValue;
|
|
26
|
-
if ((0, _isSameArray.isSameArray)(parameters, args)) {
|
|
27
|
-
return _returnValue;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
var returnValue = reducer.apply(void 0, args);
|
|
31
|
-
if (cacheable) {
|
|
32
|
-
cacheMap[key] = {
|
|
33
|
-
parameters: args,
|
|
34
|
-
returnValue: returnValue
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
return returnValue;
|
|
38
|
-
};
|
|
39
|
-
};
|
|
40
|
-
for (var _i = 0, _Object$entries = Object.entries(reducers); _i < _Object$entries.length; _i++) {
|
|
41
|
-
_loop();
|
|
42
|
-
}
|
|
43
|
-
return newReducers;
|
|
44
|
-
};
|
|
45
|
-
exports.cacheReducerCalls = cacheReducerCalls;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.getRootEntity = void 0;
|
|
7
|
-
var _UseCaseModes = require("../../enums/UseCaseModes");
|
|
8
|
-
var getRootEntity = function getRootEntity(entityState, unsafeEntity, mode) {
|
|
9
|
-
if ((mode & _UseCaseModes.UseCaseModes.Stateless) !== _UseCaseModes.UseCaseModes.Stateless) {
|
|
10
|
-
return entityState;
|
|
11
|
-
}
|
|
12
|
-
if (typeof unsafeEntity === 'function') {
|
|
13
|
-
return unsafeEntity();
|
|
14
|
-
}
|
|
15
|
-
return unsafeEntity;
|
|
16
|
-
};
|
|
17
|
-
exports.getRootEntity = getRootEntity;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.removeItem = void 0;
|
|
7
|
-
var removeItem = function removeItem(list, item) {
|
|
8
|
-
var index = list.indexOf(item);
|
|
9
|
-
if (index === -1) {
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
list.splice(index, 1);
|
|
13
|
-
};
|
|
14
|
-
exports.removeItem = removeItem;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.toMaxArguments = void 0;
|
|
8
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
-
var _UseCaseModes = require("../../enums/UseCaseModes");
|
|
10
|
-
var toMaxArguments = function toMaxArguments(_ref) {
|
|
11
|
-
var _ref2 = (0, _slicedToArray2["default"])(_ref, 5),
|
|
12
|
-
arg1 = _ref2[0],
|
|
13
|
-
arg2 = _ref2[1],
|
|
14
|
-
arg3 = _ref2[2],
|
|
15
|
-
arg4 = _ref2[3],
|
|
16
|
-
arg5 = _ref2[4];
|
|
17
|
-
if (typeof arg2 !== 'function') {
|
|
18
|
-
return [null, arg1, _UseCaseModes.UseCaseModes.Normal, arg2 || {}, arg3 || []];
|
|
19
|
-
}
|
|
20
|
-
if (typeof arg3 === 'number') {
|
|
21
|
-
return [arg1, arg2, arg3, arg4 || {}, arg5 || []];
|
|
22
|
-
}
|
|
23
|
-
return [arg1, arg2, _UseCaseModes.UseCaseModes.Normal, arg3 || {}, arg4 || []];
|
|
24
|
-
};
|
|
25
|
-
exports.toMaxArguments = toMaxArguments;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|