8000 GitHub - djoeman84/immutable-reducer: Reducers based off of ImmutableJS records
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

djoeman84/immutable-reducer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Version Build Status MIT license dependencies devDependency Status airbnb code style


Dependencies

Getting Started

npm install immutable-reducer --save

Examples

Usage

appReducer.js

import { ImmutableReducer } from  'immutable-reducer';
import { createReducer } from 'redux-caller';
import { SET_USER, CLEAR_USER } from './actions.js';
import moment from 'moment';

class UserReducer extends ImmutableReducer {
    [SET_USER]({payload}) {
        return this.set('user', payload);
    }
    [CLEAR_USER]() {
        return this.set('user', null);
    }
    getUserAge() {
        const now = moment();
        const birth = moment(this.user.dob);
        return now.diff(birth, 'years');
    }
}

AppReducer.defa
7950
ultProperties = {
    user: null
};

export const userReducer = createReducer(new UserReducer());
appStore.js

import { createStore, combineReducers } from 'redux'
import { userReducer } from 'redux-caller';

export const store = createStore(combineReducers({
    user: userReducer
}));
actions.js

export const SET_USER = 'SET_USER';
export const CLEAR_USER = 'CLEAR_USER';

export const login = (user) => ({
    type: SET_USER,
    payload: user
});

export const logout = () => ({
    type: CLEAR_USER
});

Credits

  • ImmutableJS for underlying data structures
  • npm-starter
  • Airbnb for the work they've put into the javascript style guide and into the ESlint package.

License

MIT @ Joe Delgado

About

Reducers based off of ImmutableJS records

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  
0