reducer-class
Version:
Boilerplate free class-based reducer creator. Built with TypeScript. Works with Redux and NGRX. Has integration with immer.
16 lines (15 loc) • 804 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const redux_create_reducer_1 = require("redux-create-reducer");
const reducer_class_helpers_1 = require("./reducer-class-helpers");
class ReducerClass {
static create() {
const instance = new this();
const keys = this.reducerClassHelpers.getClassInstanceMethodNames(instance);
const reducersWithActionTypes = this.reducerClassHelpers.getReducerClassMethodsWthActionTypes(instance, keys);
const reducerMap = this.reducerClassHelpers.getReducerMap(reducersWithActionTypes);
return redux_create_reducer_1.createReducer(instance.initialState, reducerMap);
}
}
ReducerClass.reducerClassHelpers = new reducer_class_helpers_1.ReducerClassHelpers();
exports.ReducerClass = ReducerClass;