Skip to content

Commit eef4314

Browse files
committed
Rename export to unstable_autotrackMemoize
1 parent 8ed8b3c commit eef4314

File tree

5 files changed

+40
-30
lines changed

5 files changed

+40
-30
lines changed

src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export type {
1212
SelectorResultArray
1313
} from './types'
1414

15-
export { autotrackMemoize } from './autotrackMemoize/autotrackMemoize'
15+
export { autotrackMemoize as unstable_autotrackMemoize } from './autotrackMemoize/autotrackMemoize'
1616

1717
export { weakMapMemoize } from './weakMapMemoize'
1818

test/autotrackMemoize.spec.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { createSelectorCreator, autotrackMemoize } from 'reselect'
1+
import { createSelectorCreator, unstable_autotrackMemoize } from 'reselect'
22

33
// Construct 1E6 states for perf test outside of the perf test so as to not change the execute time of the test function
44
const numOfStates = 1000000
@@ -24,7 +24,7 @@ for (let i = 0; i < numOfStates; i++) {
2424
}
2525

2626
describe('Basic selector behavior with autotrack', () => {
27-
const createSelector = createSelectorCreator(autotrackMemoize)
27+
const createSelector = createSelectorCreator(unstable_autotrackMemoize)
2828

2929
test('basic selector', () => {
3030
// console.log('Selector test')
@@ -122,8 +122,8 @@ describe('Basic selector behavior with autotrack', () => {
122122

123123
expect(selector(state1)).toBe(3)
124124
expect(selector.recomputations()).toBe(1)
125-
// Expected a million calls to a selector with the same arguments to take less than 1 second
126-
expect(totalTime).toBeLessThan(1000)
125+
// Expected a million calls to a selector with the same arguments to take less than 2 seconds
126+
expect(totalTime).toBeLessThan(2000)
127127
})
128128

129129
test('basic selector cache hit performance for state changes but shallowly equal selector args', () => {
@@ -147,7 +147,7 @@ describe('Basic selector behavior with autotrack', () => {
147147
expect(selector.recomputations()).toBe(1)
148148

149149
// Expected a million calls to a selector with the same arguments to take less than 1 second
150-
expect(totalTime).toBeLessThan(1000)
150+
expect(totalTime).toBeLessThan(2000)
151151
})
152152
})
153153

test/perfComparisons.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { PayloadAction } from '@reduxjs/toolkit'
22
import { configureStore, createSlice } from '@reduxjs/toolkit'
33
import {
4-
autotrackMemoize,
4+
unstable_autotrackMemoize,
55
createSelectorCreator,
66
defaultMemoize,
77
weakMapMemoize
@@ -19,7 +19,7 @@ describe('More perf comparisons', () => {
1919
})
2020

2121
const csDefault = createSelectorCreator(defaultMemoize)
22-
const csAutotrack = createSelectorCreator(autotrackMemoize)
22+
const csAutotrack = createSelectorCreator(unstable_autotrackMemoize)
2323

2424
interface Todo {
2525
id: number

test/reselect.spec.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { configureStore, createSlice } from '@reduxjs/toolkit'
55
import lodashMemoize from 'lodash/memoize'
66
import microMemoize from 'micro-memoize'
77
import {
8-
autotrackMemoize,
8+
unstable_autotrackMemoize,
99
createSelector,
1010
createSelectorCreator,
1111
defaultMemoize,
@@ -507,7 +507,7 @@ describe<LocalTestContext>('argsMemoize and memoize', it => {
507507
const selectorAutotrack = createSelector(
508508
(state: TodoState) => state.todos,
509509
todos => todos.map(({ id }) => id),
510-
{ memoize: autotrackMemoize }
510+
{ memoize: unstable_autotrackMemoize }
511511
)
512512
const outPutSelectorFields: (keyof OutputSelectorFields)[] = [
513513
'memoize',
@@ -691,16 +691,16 @@ describe<LocalTestContext>('argsMemoize and memoize', it => {
691691
// Call with new reference to force the selector to re-run
692692
selectorOriginal(deepClone(state))
693693
selectorOriginal(deepClone(state))
694-
// Override `argsMemoize` with `autotrackMemoize`
694+
// Override `argsMemoize` with `unstable_autotrackMemoize`
695695
const selectorOverrideArgsMemoize = createSelector(
696696
(state: TodoState) => state.todos,
697697
todos => todos.map(({ id }) => id),
698698
{
699699
memoize: defaultMemoize,
700700
memoizeOptions: { equalityCheck: (a, b) => a === b },
701-
// WARNING!! This is just for testing purposes, do not use `autotrackMemoize` to memoize the arguments,
701+
// WARNING!! This is just for testing purposes, do not use `unstable_autotrackMemoize` to memoize the arguments,
702702
// it can return false positives, since it's not tracking a nested field.
703-
argsMemoize: autotrackMemoize
703+
argsMemoize: unstable_autotrackMemoize
704704
}
705705
)
706706
selectorOverrideArgsMemoize(state)

typescript_test/argsMemoize.typetest.ts

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import memoizeOne from 'memoize-one'
22
import microMemoize from 'micro-memoize'
33
import {
4-
autotrackMemoize,
4+
unstable_autotrackMemoize,
55
createSelector,
66
createSelectorCreator,
77
defaultMemoize,
@@ -46,26 +46,26 @@ function overrideOnlyMemoizeInCreateSelector() {
4646
const selectorAutotrackSeparateInlineArgs = createSelector(
4747
(state: State) => state.todos,
4848
todos => todos.map(t => t.id),
49-
{ memoize: autotrackMemoize }
49+
{ memoize: unstable_autotrackMemoize }
5050
)
5151
const selectorAutotrackArgsAsArray = createSelector(
5252
[(state: State) => state.todos],
5353
todos => todos.map(t => t.id),
54-
{ memoize: autotrackMemoize }
54+
{ memoize: unstable_autotrackMemoize }
5555
)
56-
// @ts-expect-error When memoize is autotrackMemoize, type of memoizeOptions needs to be the same as options args in autotrackMemoize.
56+
// @ts-expect-error When memoize is unstable_autotrackMemoize, type of memoizeOptions needs to be the same as options args in unstable_autotrackMemoize.
5757
const selectorAutotrackArgsAsArrayWithMemoizeOptions = createSelector(
5858
[(state: State) => state.todos],
5959
// @ts-expect-error
6060
todos => todos.map(t => t.id),
61-
{ memoize: autotrackMemoize, memoizeOptions: { maxSize: 2 } }
61+
{ memoize: unstable_autotrackMemoize, memoizeOptions: { maxSize: 2 } }
6262
)
63-
// @ts-expect-error When memoize is autotrackMemoize, type of memoizeOptions needs to be the same as options args in autotrackMemoize.
63+
// @ts-expect-error When memoize is unstable_autotrackMemoize, type of memoizeOptions needs to be the same as options args in unstable_autotrackMemoize.
6464
const selectorAutotrackSeparateInlineArgsWithMemoizeOptions = createSelector(
6565
(state: State) => state.todos,
6666
// @ts-expect-error
6767
todos => todos.map(t => t.id),
68-
{ memoize: autotrackMemoize, memoizeOptions: { maxSize: 2 } }
68+
{ memoize: unstable_autotrackMemoize, memoizeOptions: { maxSize: 2 } }
6969
)
7070
const selectorWeakMapSeparateInlineArgs = createSelector(
7171
(state: State) => state.todos,
@@ -93,7 +93,9 @@ function overrideOnlyMemoizeInCreateSelector() {
9393
)
9494
const createSelectorDefault = createSelectorCreator(defaultMemoize)
9595
const createSelectorWeakMap = createSelectorCreator(weakMapMemoize)
96-
const createSelectorAutotrack = createSelectorCreator(autotrackMemoize)
96+
const createSelectorAutotrack = createSelectorCreator(
97+
unstable_autotrackMemoize
98+
)
9799
const changeMemoizeMethodSelectorDefault = createSelectorDefault(
98100
(state: State) => state.todos,
99101
todos => todos.map(t => t.id),
@@ -110,7 +112,7 @@ function overrideOnlyMemoizeInCreateSelector() {
110112
{ memoize: defaultMemoize }
111113
)
112114
const changeMemoizeMethodSelectorDefaultWithMemoizeOptions =
113-
// @ts-expect-error When memoize is changed to weakMapMemoize or autotrackMemoize, memoizeOptions cannot be the same type as options args in defaultMemoize.
115+
// @ts-expect-error When memoize is changed to weakMapMemoize or unstable_autotrackMemoize, memoizeOptions cannot be the same type as options args in defaultMemoize.
114116
createSelectorDefault(
115117
(state: State) => state.todos,
116118
// @ts-expect-error
@@ -155,26 +157,32 @@ function overrideOnlyArgsMemoizeInCreateSelector() {
155157
const selectorAutotrackSeparateInlineArgs = createSelector(
156158
(state: State) => state.todos,
157159
todos => todos.map(t => t.id),
158-
{ argsMemoize: autotrackMemoize }
160+
{ argsMemoize: unstable_autotrackMemoize }
159161
)
160162
const selectorAutotrackArgsAsArray = createSelector(
161163
[(state: State) => state.todos],
162164
todos => todos.map(t => t.id),
163-
{ argsMemoize: autotrackMemoize }
165+
{ argsMemoize: unstable_autotrackMemoize }
164166
)
165-
// @ts-expect-error When argsMemoize is autotrackMemoize, type of argsMemoizeOptions needs to be the same as options args in autotrackMemoize.
167+
// @ts-expect-error When argsMemoize is unstable_autotrackMemoize, type of argsMemoizeOptions needs to be the same as options args in unstable_autotrackMemoize.
166168
const selectorAutotrackArgsAsArrayWithMemoizeOptions = createSelector(
167169
[(state: State) => state.todos],
168170
// @ts-expect-error
169171
todos => todos.map(t => t.id),
170-
{ argsMemoize: autotrackMemoize, argsMemoizeOptions: { maxSize: 2 } }
172+
{
173+
argsMemoize: unstable_autotrackMemoize,
174+
argsMemoizeOptions: { maxSize: 2 }
175+
}
171176
)
172-
// @ts-expect-error When argsMemoize is autotrackMemoize, type of argsMemoizeOptions needs to be the same as options args in autotrackMemoize.
177+
// @ts-expect-error When argsMemoize is unstable_autotrackMemoize, type of argsMemoizeOptions needs to be the same as options args in unstable_autotrackMemoize.
173178
const selectorAutotrackSeparateInlineArgsWithMemoizeOptions = createSelector(
174179
(state: State) => state.todos,
175180
// @ts-expect-error
176181
todos => todos.map(t => t.id),
177-
{ argsMemoize: autotrackMemoize, argsMemoizeOptions: { maxSize: 2 } }
182+
{
183+
argsMemoize: unstable_autotrackMemoize,
184+
argsMemoizeOptions: { maxSize: 2 }
185+
}
178186
)
179187
const selectorWeakMapSeparateInlineArgs = createSelector(
180188
(state: State) => state.todos,
@@ -202,7 +210,9 @@ function overrideOnlyArgsMemoizeInCreateSelector() {
202210
)
203211
const createSelectorDefault = createSelectorCreator(defaultMemoize)
204212
const createSelectorWeakMap = createSelectorCreator(weakMapMemoize)
205-
const createSelectorAutotrack = createSelectorCreator(autotrackMemoize)
213+
const createSelectorAutotrack = createSelectorCreator(
214+
unstable_autotrackMemoize
215+
)
206216
const changeMemoizeMethodSelectorDefault = createSelectorDefault(
207217
(state: State) => state.todos,
208218
todos => todos.map(t => t.id),
@@ -219,7 +229,7 @@ function overrideOnlyArgsMemoizeInCreateSelector() {
219229
{ argsMemoize: defaultMemoize }
220230
)
221231
const changeMemoizeMethodSelectorDefaultWithMemoizeOptions =
222-
// @ts-expect-error When argsMemoize is changed to weakMapMemoize or autotrackMemoize, argsMemoizeOptions cannot be the same type as options args in defaultMemoize.
232+
// @ts-expect-error When argsMemoize is changed to weakMapMemoize or unstable_autotrackMemoize, argsMemoizeOptions cannot be the same type as options args in defaultMemoize.
223233
createSelectorDefault(
224234
(state: State) => state.todos,
225235
// @ts-expect-error

0 commit comments

Comments
 (0)