File tree Expand file tree Collapse file tree 1 file changed +15
-9
lines changed Expand file tree Collapse file tree 1 file changed +15
-9
lines changed Original file line number Diff line number Diff line change 1
1
import { current , isDraft } from 'immer'
2
- import { createSelector } from 'reselect'
2
+ import { createSelectorCreator , defaultMemoize } from 'reselect'
3
+
4
+ export const createDraftSafeSelectorCreator : typeof createSelectorCreator = (
5
+ ...args : unknown [ ]
6
+ ) => {
7
+ const createSelector = ( createSelectorCreator as any ) ( ...args )
8
+ return ( ...args : unknown [ ] ) => {
9
+ const selector = createSelector ( ...args )
10
+ const wrappedSelector = ( value : unknown , ...rest : unknown [ ] ) =>
11
+ selector ( isDraft ( value ) ? current ( value ) : value , ...rest )
12
+ return wrappedSelector as any
13
+ }
14
+ }
3
15
4
16
/**
5
17
* "Draft-Safe" version of `reselect`'s `createSelector`:
@@ -8,11 +20,5 @@ import { createSelector } from 'reselect'
8
20
* that might be possibly outdated if the draft has been modified since.
9
21
* @public
10
22
*/
11
- export const createDraftSafeSelector : typeof createSelector = (
12
- ...args : unknown [ ]
13
- ) => {
14
- const selector = ( createSelector as any ) ( ...args )
15
- const wrappedSelector = ( value : unknown , ...rest : unknown [ ] ) =>
16
- selector ( isDraft ( value ) ? current ( value ) : value , ...rest )
17
- return wrappedSelector as any
18
- }
23
+ export const createDraftSafeSelector =
24
+ createDraftSafeSelectorCreator ( defaultMemoize )
You can’t perform that action at this time.
0 commit comments