Releases: piotrwitek/typesafe-actions
v4.1.1
v4.1.0
New API
- Added
createReducer
a typesafe reducer factory using object map and chain API #106 - Exported various helper-types returned from public API #123
v4.0.0
Breaking change
From v4.x.x
all action creators will use undefined
instead of void
as a generic type parameter to make the action-creator function require NO parameters.
Background discussion: #124 (comment)
const increment = createStandardAction('INCREMENT')<undefined>();
increment(); // <= no parameters required
const fetchUsers = createAsyncAction(
'FETCH_USERS_REQUEST',
'FETCH_USERS_SUCCESS',
'FETCH_USERS_FAILURE'
)<undefined, User[], Error>();
fetchUsers.request(); // <= no parameters required
v3.4.0
v3.3.0
Improvements
Updated types to be compatible with the recent TypeScript release v3.4.1 🎉
v3.2.1
v3.2.0
New API
action
and createAction
have new 3rd parameter which is error property on action object making it fully FSA compliant.
import { action, createAction } from 'typesafe-actions';
export const todosError = (message: string) => action('todos/ERROR', message, undefined, true);
// todosError: (message: string) => { type: "todos/ADD"; payload: string; error: boolean; }
export const todosError = createAction('todos/ERROR', action => {
// Note: "action" callback does not need "type" parameter
return (message: string) => action(message, undefined, true);
});
// todosError: (message: string) => { type: "todos/ADD"; payload: string; error: boolean; }
Improvements
v3.1.0
New API
createCustomAction
Create an enhanced action-creator with unlimited number of arguments and custom properties on action object.
- Arguments of resulting action-creator will preserve their original semantic names
(id, firstName, lastName)
. - Returned action objects have custom properties
({ type, customProp1, customProp2, ...customPropN })
createCustomAction(type, type => {
return (namedArg1, namedArg2, ...namedArgN) => ({ type, customProp1, customProp2, ...customPropN })
})
Examples:
> Advanced Usage Examples
import { createCustomAction } from 'typesafe-actions';
const add = createCustomAction('CUSTOM', type => {
return (first: number, second: number) => ({ type, customProp1: first, customProp2: second });
});
add(1) // { type: "CUSTOM"; customProp1: number; customProp2: number; }
v3.0.0
Breaking change
From v3.x.x the minimum required TS version is v3.2.
This allow us to benefit from new type-checker features like tuple types and to simplify some existing complexity in function overloads.
This should help us in the long run to implement new features faster.