Typesafe Actions Versions Save

Typesafe utilities for "action-creators" in Redux / Flux Architecture

v4.1.1

5 years ago

Improvements

  • Added typing support for reducer as object map #140

v4.1.0

5 years ago

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

5 years ago

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: https://github.com/piotrwitek/typesafe-actions/issues/124#issuecomment-479446603

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

5 years ago

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

5 years ago

Improvements

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

v3.2.0

5 years ago

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.2.1

5 years ago

Improvements

Fixed #122

v3.1.0

5 years ago

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

5 years ago

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

5 years ago

FIXED:

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