UNPKG

@gjv/redux-slice-factory

Version:

Generic factory functions for common slice data structures

39 lines (34 loc) 974 B
import { SerializedError } from '@reduxjs/toolkit' import StatusEnum from '../../constants/StatusEnum' import MetaState, { IMetaState } from '../meta-state' /** * @public */ export interface IModelState< T, TStatusEnum extends keyof typeof StatusEnum | & string = keyof typeof StatusEnum, TError extends SerializedError = SerializedError > extends IMetaState<TStatusEnum, TError> { /** * The model of the slice. */ model: T; } const create = < T, TStatusEnum extends keyof typeof StatusEnum | & string = keyof typeof StatusEnum, TError extends SerializedError = SerializedError > (args: Partial<IModelState<T, TStatusEnum, TError>> = {}): IModelState<T, TStatusEnum, TError> => { const metaState = MetaState.create(args) return { ...metaState, model: args.model as T, } } /** * @public */ const ModelState = { create: create, } export default ModelState