Commit a1e8bec
v1.3.0 Integration (#374)
* Port ngrx/entity and add createAsyncThunk (#352)
* Initial port of `@ngrx/entity` implementation
* Remove deprecated addAll method
* Port `@ngrx/entity` tests
* Simplify immutable entity operations by wrapping with Immer
* Don't overwrite state.ids if sorting order hasn't changed
* Simplify state adapter logic using Immer
- Removed all references to DidMutate enum
- Removed unneeded logic that only checked if state was mutated
* Add `isFSA` helper to createAction
* Swap state operator order to `(state, arg)` and support FSAs
- Swapped arguments to state operators so that they can be reused
as mostly standard Redux reducers
- Added a check to handle arg as either an FSA action or a value
- Swapped argument order in all test cases
- Added one test to provide reading payload from FSAs works
* Add a test to verify adapter usage with createSlice
* Document unexpected Immer behavior with nested produce calls
* Quiet lint warnings in tests
I have no idea why the NgRx code is mutating the Array prototype
in the first place, but let's leave that there for now.
* Export Entity types as part of the public API
* Add createAsyncThunk
* Export createAsyncThunk as part of the public API
* Ignore VS Code folder
* Mark new types as alpha
* 1.3.0-alpha.0
* Remove `removeMany(predicate)` overload
* Rework dispatched thunk action contents
- Move args inside `meta`
- Include contents directly as `payload`
* Update public API types
* typings experiment
* Update createAsyncThunk tests to match API changes
* Simplify entity ID type definitions
* Add a basic request ID counter to createAsyncThunk
* Add nanoid
* Include requestId in payload creator args, and use nanoid
* Hopefully fix type definitions for empty thunk action params
- Made `ActionParams = void`, which allows not declaring any args
in the payload creation function without TS complaining
- Found out I can switch the args order back so it's `(args, other)`
* Add overloads to make EntityAdapter methods createSlice-compatible
The overloads that had `TypeOrPayloadAction<T>` were resulting in
a payload of `undefined` for the associated action creator when
passed directly as a case reducer to `createSlice`. Adding overloads
that explicitly reference `PayloadAction<T>` allows the inference
to work correctly so that action payloads are detected.
* Add a test that combines slices, async thunks, and entities
* Remove TS 3.3 and 3.4 from the Travis setup
* Update public API
* 1.3.0-alpha.1
* Rework createAsyncThunk error handling behavior
- Removed `finished` action
- Serialized `Error` objects to a plain object
- Ensured errors in `fulfilled` dispatches won't get caught wrongly
- Changed to re-throw errors in case the user wants to handle them
* Update public API
* 1.3.0-alpha.2
* createAsyncThunk return fulfilled/rejected action instead of re-… (#361)
* createAsyncThunk return fulfilled/rejected action instead of re-trowing errors
* add unwrapResult helper
* add .abort() to the createAsyncThunk thunkAction (#362)
* add .abort() to the createAsyncThunk thunkAction
* per review comments
* put `abort` on the promise returned by `dispatch(asyncThunk())`
* remove reference to DOMException
* simplify rejected action creator
* fix error==undefined case, reduce diff
* update api report
* Add initial `getAsyncThunk` API docs and usage guide
* Rename thunk types and fields and export SerializedError
* Update public API
* 1.3.0-alpha.3
* Initial fix for createAsyncThunk thunk types
* Rework `createAsyncThunk` types to enable specifying getState type
* Fix thunk test types
* Update public API
* 1.3.0-alpha.4
* manually import types to prevent a bundling issue
* strongly type slice name (#354)
* strongly type slice name
* move new generic to the end and default it to string
* use ThunkApiConfig for optional type arguments (#364)
* 1.3.0-alpha.5
* Modify createStateOperator to detect and handle Immer drafts
* Update link styling to match main Redux site
* Update blockquote styling to match main Redux site
* Update side category menu styling to match main Redux site
* Consolidate Update generic type and remove unused overload
* Update `combinedTest` based on `createStateOperator` fixes
* Add API docs for `createEntityAdapter`
* guess what time it is again - it's public API time!
* 1.3.0-alpha.6
* Remove accidental yarn.lock
* Try fixing Netlify deploys: 1
* Update DS to fix sidebar bug
* Try forcing node version
* createAsyncThunk improvements (#367)
* prevent dispatching of further actions if asyncThunk has been cancelled, even if the payloadCreator didn't react to the `abort` request
* * add race between payloadCreator and abortedPromise
* simplify createAsyncThunk
* remove complicated logic where an AbortError thrown from the `payloadCreator` could influence the return value
* api report
* doc examples for cancellation
* Remove extraneous period from abort message
* Reorder cancellation content and improve wording
* Fix code padding color busted from DS alpha.41
* 1.3.0-alpha.7
* Update Docusaurus and add lockfile to 43 version (#369)
* Update Docusaurus and add lockfile to 43 version
* Fix lockfile
* Update netlify.toml to remove Yarn command
* Try forcing node version
Co-authored-by: Mark Erikson <mark@isquaredsoftware.com>
* Try adding the compressed-size-action (#372)
* Fix potential entity bugs identified by code review
- Comparer should always return a number for sorting
- Fixed missed state arg in add/remove test
- Added test to confirm expected ID change behavior
- Fixed bug in updateMany where multiple renames of one ID led to
corrupted values in entities table afterwards
* do that public API thing
* Document caveats with update operations
Co-authored-by: Lenz Weber <mail@lenzw.de>
Co-authored-by: Thibault Gouala <thibault.gouala@gmail.com>
Co-authored-by: Alexey Pyltsyn <lex61rus@gmail.com>
* 1.3.0-alpha.8
* remove `any` where applicable (#377)
* remove `any` where applicable
* re-add `| undefined`, remove review comments
* Fork redux-devtools-extension (#384)
* Only check format for Markdown files in /docs
* Add TS port of redux-devtools extension and use it
* Remove redux-devtools-extension dependency
* Remove stray console logs from tests
* Feature/immutable invariant (#381)
* strongly type slice name (#354)
* strongly type slice name
* move new generic to the end and default it to string
* Remove accidental yarn.lock
* Update DS to fix sidebar bug
* Update Docusaurus and add lockfile to 43 version (#369)
* Update Docusaurus and add lockfile to 43 version
* Fix lockfile
* Update netlify.toml to remove Yarn command
* Try forcing node version
Co-authored-by: Mark Erikson <mark@isquaredsoftware.com>
* Try adding the compressed-size-action (#372)
* Port redux-immutable-invariant and update docs
* Update lock
* Keep immutable middleware interface types during build
* Readd lock file
* Add mention of being a fork of redux-immutable-state-invariant
* Markdown formatting
Co-authored-by: Thibault Gouala <thibault.gouala@gmail.com>
Co-authored-by: Mark Erikson <mark@isquaredsoftware.com>
Co-authored-by: Alexey Pyltsyn <lex61rus@gmail.com>
* Immutable middleware cleanup (#385)
* Inline tiny-invariant and json-stringify-safe
* Remove unused deps
* Tweak immutable middleware docs typos
* TS dep updates (#386)
* Update createEntityAdapter type reference
* Update TypeScript and Prettier to latest
* Prettier reformatting
* 1.3.0-alpha.9
* update TS docs, add new 1.3.0 APIs (#388)
* Docs: add info on how to type Meta in `createSlice`
* Docs: better example for signal.addEventListener
* docs: TS usage for `createAsyncThunk`
* docs: TS docs for `createEntityAdapter`
* Edit new TS usage docs
Co-authored-by: Mark Erikson <mark@isquaredsoftware.com>
* Clarify createAsyncThunk type handling
* Use Immer 6 alpha (#396)
* Use fork of nanoid
* Remove nanoid
* Update to Immer 6 alpha
* Enable Immer 6's ES5 support
* Add TS 3.8 coverage
* 1.3.0-alpha.10
* Formatting
* RFC createAsyncThunk: reject with typed value (#393)
* createAsyncThunk: add rejectWithValue function
* Update docs on createAsyncThunk usage, add tests for rejectWithValue, fix rejected error return
* implement AbortController stub for node, react native & IE
Co-authored-by: Matt Sutkowski <msutkowski@gmail.com>
* remove createSerializableStateInvariantMiddleware and createImmutableStateInvariantMiddleware functionality from production builds (#406)
* bump immer to v6 (#407)
* Immer 6 final (#409)
* Update to Immer 6.0.1
* Fix AbortController test
* Ignore serializability of `meta.args` by default (#410)
* 1.3.0-beta.0
* display a warning if `immutableStateInvariantMiddleware` or `ser… (#427)
* display a warning if `immutableStateInvariantMiddleware` or `serializableStateInvariantMiddleware` take too long
* Update src/utils.ts
Co-authored-by: Mark Erikson <mark@isquaredsoftware.com>
* simplify signatures of `ActionCreatorWithOptionalPayload` and `A… (#428)
* prevent any-casting of S generic on entityAdapter reducer-like f… (#436)
* prevent any-casting of S generic on entityAdapter reducer-like functions
* remove `map` from entityAdapter
* remove references to `map` from the docs
* update API report
* remove export
* Fix bug in docs for createAsyncThunk example (#417)
fetchUserById payloadCreator should fetch when in pending (not idle) state
* Feature/entity selectors (#440)
* Add a `selectById` selector
* Export Reselect types
* Update API
* 1.3.0-beta.1
* Update list of APIs and README
Co-authored-by: Lenz Weber <mail@lenzw.de>
Co-authored-by: Thibault Gouala <thibault.gouala@gmail.com>
Co-authored-by: Alexey Pyltsyn <lex61rus@gmail.com>
Co-authored-by: Lenz Weber <lenz.weber@mayflower.de>
Co-authored-by: Matt Sutkowski <msutkowski@gmail.com>
Co-authored-by: David Walsh <dlwalsh@gmail.com>1 parent de26824 commit a1e8bec
File tree
50 files changed
+5665
-228
lines changed- docs
- api
- introduction
- tutorials
- usage
- etc
- src
- entities
- fixtures
- type-tests/files
- website
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
50 files changed
+5665
-228
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
5 | 6 | | |
6 | 7 | | |
7 | 8 | | |
8 | | - | |
9 | | - | |
10 | 9 | | |
11 | 10 | | |
12 | 11 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
7 | 6 | | |
8 | 7 | | |
9 | 8 | | |
| |||
44 | 43 | | |
45 | 44 | | |
46 | 45 | | |
47 | | - | |
| 46 | + | |
48 | 47 | | |
49 | 48 | | |
50 | 49 | | |
51 | | - | |
| 50 | + | |
52 | 51 | | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
57 | 58 | | |
58 | 59 | | |
59 | 60 | | |
| |||
0 commit comments