Skip to content

Releases: piotrwitek/typesafe-actions

v4.1.1

22 Apr 12:09
Compare
Choose a tag to compare

Improvements

  • Added typing support for reducer as object map #140

v4.1.0

21 Apr 23:11
Compare
Choose a tag to compare

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

03 Apr 12:33
Compare
Choose a tag to compare

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

03 Apr 11:56
Compare
Choose a tag to compare

Improvements

  • Improved ActionType to bring back v3.3 behaviour #132
  • Fixed backward compatibility for void type parameters from v3.1 (after internal type refactoring for v3.2 they were not treated as EmptyAC anymore) #124

v3.3.0

01 Apr 22:11
Compare
Choose a tag to compare

Improvements

Updated types to be compatible with the recent TypeScript release v3.4.1 🎉

v3.2.1

25 Feb 09:26
Compare
Choose a tag to compare

Improvements

Fixed #122

v3.2.0

25 Feb 11:31
Compare
Choose a tag to compare

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

Fixed #117
Fixed #118

v3.1.0

15 Feb 21:45
Compare
Choose a tag to compare

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

31 Dec 02:48
Compare
Choose a tag to compare

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.

v2.2.0

31 Dec 02:38
Compare
Choose a tag to compare

FIXED:

Resolved #68
Resolved #53
Resolved #91
Resolved #44
Resolved #74
Resolved #77
Resolved #100
Resolved #42