@mic-rexjs/usecases-react 1.8.0 → 2.0.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 +1 -1
- package/dist/index.min.js +1 -1
- package/es/configs/defaultUseCaseContext/index.d.ts +2 -3
- package/es/configs/defaultUseCaseContext/index.js +1 -1
- package/es/configs/defaultUseCaseContext/types.d.ts +11 -3
- package/es/configs/usecaseContextMap/types.d.ts +2 -5
- package/es/enums/UseCaseModes/index.d.ts +6 -0
- package/es/enums/UseCaseModes/index.js +7 -0
- package/es/hooks/useChangeCallbackCollection/index.d.ts +3 -0
- package/es/hooks/useChangeCallbackCollection/index.js +29 -0
- package/es/hooks/useGlobalUseCase/index.d.ts +2 -0
- package/es/hooks/useGlobalUseCase/index.js +11 -0
- package/es/hooks/useGlobalUseCase/index.test.js +71 -0
- package/es/hooks/useGlobalUseCase/types.d.ts +12 -0
- package/es/hooks/useGlobalUseCase/types.js +1 -0
- package/es/hooks/useProvider/index.d.ts +3 -5
- package/es/hooks/useProvider/index.js +25 -17
- package/es/hooks/useStatelessUseCase/index.d.ts +2 -0
- package/es/hooks/useStatelessUseCase/index.js +8 -0
- package/es/hooks/useStatelessUseCase/index.test.d.ts +1 -0
- package/es/hooks/useStatelessUseCase/index.test.js +75 -0
- package/es/hooks/useStatelessUseCase/types.d.ts +5 -0
- package/es/hooks/useStatelessUseCase/types.js +1 -0
- package/es/hooks/useUseCase/index.js +27 -29
- package/es/hooks/useUseCase/index.test.js +243 -207
- package/es/hooks/useUseCase/types.d.ts +55 -8
- package/es/hooks/useUseCaseContext/index.d.ts +2 -2
- package/es/hooks/useUseCaseContext/index.js +1 -1
- package/es/index.d.ts +2 -0
- package/es/index.js +2 -0
- package/es/methods/getRootEntity/index.d.ts +2 -1
- package/es/methods/getRootEntity/index.js +6 -5
- package/es/methods/initEntityReducers/index.js +1 -1
- package/es/methods/toMaxArguments/index.d.ts +3 -0
- package/es/methods/toMaxArguments/index.js +28 -0
- package/es/methods/triggerCallbacks/index.d.ts +2 -3
- package/es/methods/triggerCallbacks/index.js +3 -12
- package/lib/configs/defaultUseCaseContext/index.js +1 -1
- package/lib/enums/UseCaseModes/index.js +14 -0
- package/lib/hooks/useChangeCallbackCollection/index.js +37 -0
- package/lib/hooks/useGlobalUseCase/index.js +25 -0
- package/lib/hooks/useGlobalUseCase/index.test.js +78 -0
- package/lib/hooks/useProvider/index.js +30 -24
- package/lib/hooks/useStatelessUseCase/index.js +22 -0
- package/lib/hooks/useStatelessUseCase/index.test.js +78 -0
- package/lib/hooks/useStatelessUseCase/types.js +5 -0
- package/lib/hooks/useUseCase/index.js +40 -31
- package/lib/hooks/useUseCase/index.test.js +337 -288
- package/lib/hooks/useUseCaseContext/index.js +1 -1
- package/lib/index.js +15 -1
- package/lib/methods/getRootEntity/index.js +6 -5
- package/lib/methods/initEntityReducers/index.js +2 -3
- package/lib/methods/toMaxArguments/index.js +25 -0
- package/lib/methods/triggerCallbacks/index.js +3 -13
- package/package.json +1 -1
- package/es/hooks/useOptionsRefCollection/index.d.ts +0 -3
- package/es/hooks/useOptionsRefCollection/index.js +0 -22
- package/es/hooks/useOptionsRefCollection/types.d.ts +0 -2
- package/lib/hooks/useOptionsRefCollection/index.js +0 -29
- /package/es/hooks/{useOptionsRefCollection/types.js → useGlobalUseCase/index.test.d.ts} +0 -0
- /package/lib/hooks/{useOptionsRefCollection → useGlobalUseCase}/types.js +0 -0
|
@@ -16,7 +16,7 @@ var useUseCaseContext = function useUseCaseContext(usecase, defaultContext) {
|
|
|
16
16
|
if (defaultContext) {
|
|
17
17
|
return defaultContext;
|
|
18
18
|
}
|
|
19
|
-
var ctx = (0, _react.createContext)(
|
|
19
|
+
var ctx = (0, _react.createContext)(null);
|
|
20
20
|
map.set(usecase, ctx);
|
|
21
21
|
return ctx;
|
|
22
22
|
});
|
package/lib/index.js
CHANGED
|
@@ -9,6 +9,18 @@ Object.defineProperty(exports, "UseCaseFragment", {
|
|
|
9
9
|
return _UseCaseFragment.UseCaseFragment;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
+
Object.defineProperty(exports, "useGlobalUseCase", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _useGlobalUseCase.useGlobalUseCase;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "useStatelessUseCase", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _useStatelessUseCase.useStatelessUseCase;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
12
24
|
Object.defineProperty(exports, "useUseCase", {
|
|
13
25
|
enumerable: true,
|
|
14
26
|
get: function get() {
|
|
@@ -16,4 +28,6 @@ Object.defineProperty(exports, "useUseCase", {
|
|
|
16
28
|
}
|
|
17
29
|
});
|
|
18
30
|
var _UseCaseFragment = require("./components/UseCaseFragment");
|
|
19
|
-
var _useUseCase = require("./hooks/useUseCase");
|
|
31
|
+
var _useUseCase = require("./hooks/useUseCase");
|
|
32
|
+
var _useGlobalUseCase = require("./hooks/useGlobalUseCase");
|
|
33
|
+
var _useStatelessUseCase = require("./hooks/useStatelessUseCase");
|
|
@@ -4,13 +4,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.getRootEntity = void 0;
|
|
7
|
-
var
|
|
8
|
-
|
|
7
|
+
var _UseCaseModes = require("../../enums/UseCaseModes");
|
|
8
|
+
var getRootEntity = function getRootEntity(entityState, unsafeEntity, mode) {
|
|
9
|
+
if ((mode & _UseCaseModes.UseCaseModes.Stateless) !== _UseCaseModes.UseCaseModes.Stateless) {
|
|
9
10
|
return entityState;
|
|
10
11
|
}
|
|
11
|
-
if (typeof
|
|
12
|
-
return
|
|
12
|
+
if (typeof unsafeEntity === 'function') {
|
|
13
|
+
return unsafeEntity();
|
|
13
14
|
}
|
|
14
|
-
return
|
|
15
|
+
return unsafeEntity;
|
|
15
16
|
};
|
|
16
17
|
exports.getRootEntity = getRootEntity;
|
|
@@ -8,14 +8,13 @@ exports.initEntityReducers = void 0;
|
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
9
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
10
|
var _usecases = require("@mic-rexjs/usecases");
|
|
11
|
-
var _excluded = ["
|
|
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
14
|
var initEntityReducers = function initEntityReducers(entity, usecase, options, onEntityChange) {
|
|
15
15
|
var _entityReducerUseCase = (0, _usecases.entityReducerUseCase)(),
|
|
16
16
|
createEntityReducers = _entityReducerUseCase.createEntityReducers;
|
|
17
|
-
var
|
|
18
|
-
watch = options.watch,
|
|
17
|
+
var watch = options.watch,
|
|
19
18
|
onChange = options.onChange,
|
|
20
19
|
usecaseOptions = options.options,
|
|
21
20
|
restUseCaseOptions = (0, _objectWithoutProperties2["default"])(options, _excluded);
|
|
@@ -0,0 +1,25 @@
|
|
|
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;
|
|
@@ -4,19 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.triggerCallbacks = void 0;
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
var options = optionsRefCollection[i - 1].current;
|
|
11
|
-
if (!options) {
|
|
12
|
-
continue;
|
|
13
|
-
}
|
|
14
|
-
var onChange = options.onChange,
|
|
15
|
-
watch = options.watch;
|
|
16
|
-
if (watch) {
|
|
17
|
-
(0, _triggerWatchers.triggerWatchers)(watch, newEntity, oldEntity);
|
|
18
|
-
}
|
|
19
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(newEntity, oldEntity);
|
|
7
|
+
var triggerCallbacks = function triggerCallbacks(changeCallbackCollection, newEntity, oldEntity) {
|
|
8
|
+
for (var i = changeCallbackCollection.length; i > 0; i--) {
|
|
9
|
+
changeCallbackCollection[i - 1](newEntity, oldEntity);
|
|
20
10
|
}
|
|
21
11
|
};
|
|
22
12
|
exports.triggerCallbacks = triggerCallbacks;
|
package/package.json
CHANGED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { UseCaseHookOptions } from '../useUseCase/types';
|
|
2
|
-
import { OptionsRefCollection } from './types';
|
|
3
|
-
export declare const useOptionsRefCollection: <T, TUseCaseOptions extends object, TOptions extends UseCaseHookOptions<T, TUseCaseOptions> = UseCaseHookOptions<T, TUseCaseOptions>>(isRoot: boolean, contextOptionsRefCollection: OptionsRefCollection<TOptions> | null, options: TOptions) => OptionsRefCollection<TOptions>;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { useCreation, useLatest, usePrevious, useUnmount } from 'ahooks';
|
|
2
|
-
import { removeItem } from '../../methods/removeItem';
|
|
3
|
-
export const useOptionsRefCollection = (isRoot, contextOptionsRefCollection, options) => {
|
|
4
|
-
const optionsRef = useLatest(options);
|
|
5
|
-
const optionsRefCollection = useCreation(() => {
|
|
6
|
-
if (isRoot) {
|
|
7
|
-
return [];
|
|
8
|
-
}
|
|
9
|
-
return contextOptionsRefCollection;
|
|
10
|
-
}, [contextOptionsRefCollection, isRoot]);
|
|
11
|
-
const prevOptionsRefCollection = usePrevious(optionsRefCollection);
|
|
12
|
-
useCreation(() => {
|
|
13
|
-
if (prevOptionsRefCollection) {
|
|
14
|
-
removeItem(prevOptionsRefCollection, optionsRef);
|
|
15
|
-
}
|
|
16
|
-
optionsRefCollection.push(optionsRef);
|
|
17
|
-
}, [optionsRef, optionsRefCollection, prevOptionsRefCollection]);
|
|
18
|
-
useUnmount(() => {
|
|
19
|
-
removeItem(optionsRefCollection, optionsRef);
|
|
20
|
-
});
|
|
21
|
-
return optionsRefCollection;
|
|
22
|
-
};
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.useOptionsRefCollection = void 0;
|
|
7
|
-
var _ahooks = require("ahooks");
|
|
8
|
-
var _removeItem = require("../../methods/removeItem");
|
|
9
|
-
var useOptionsRefCollection = function useOptionsRefCollection(isRoot, contextOptionsRefCollection, options) {
|
|
10
|
-
var optionsRef = (0, _ahooks.useLatest)(options);
|
|
11
|
-
var optionsRefCollection = (0, _ahooks.useCreation)(function () {
|
|
12
|
-
if (isRoot) {
|
|
13
|
-
return [];
|
|
14
|
-
}
|
|
15
|
-
return contextOptionsRefCollection;
|
|
16
|
-
}, [contextOptionsRefCollection, isRoot]);
|
|
17
|
-
var prevOptionsRefCollection = (0, _ahooks.usePrevious)(optionsRefCollection);
|
|
18
|
-
(0, _ahooks.useCreation)(function () {
|
|
19
|
-
if (prevOptionsRefCollection) {
|
|
20
|
-
(0, _removeItem.removeItem)(prevOptionsRefCollection, optionsRef);
|
|
21
|
-
}
|
|
22
|
-
optionsRefCollection.push(optionsRef);
|
|
23
|
-
}, [optionsRef, optionsRefCollection, prevOptionsRefCollection]);
|
|
24
|
-
(0, _ahooks.useUnmount)(function () {
|
|
25
|
-
(0, _removeItem.removeItem)(optionsRefCollection, optionsRef);
|
|
26
|
-
});
|
|
27
|
-
return optionsRefCollection;
|
|
28
|
-
};
|
|
29
|
-
exports.useOptionsRefCollection = useOptionsRefCollection;
|
|
File without changes
|
|
File without changes
|