Skip to content
This repository was archived by the owner on Jun 16, 2021. It is now read-only.

Latest commit

 

History

History
809 lines (472 loc) · 27.3 KB

dataservice.md

File metadata and controls

809 lines (472 loc) · 27.3 KB

redux-data-service > DataService

Class: DataService

DataService is an IService for marshalling data (by default, with an external service such as a REST end point). To use this class, extend it and set the name and ModelClass fields in the child class.

The default IAdapter for this class is a RestAdapter. It uses the Service's name to determine the name of the corresponding API end-point. env.process.API_URL as the API root url. To override this default functionality, the _adapter property should be set on the child class.

The default ISerializer for this class is a RestSerializer. The _serializer property should be set on the child class if you want to:

  • Change how the model is serialized or which values should be omitted
  • Change how the incoming data is transformed when the model is created abstract:

class:

Type parameters

R

Hierarchy

BaseService<IDataServiceStateRecord<T>>

↳ DataService

FakeModelService

Implements

Index

Properties

Accessors

Methods


Properties

<Protected> AdapterClass

● AdapterClass: IAdapterFactory<any>

Defined in Services/DataService/DataService.ts:93


<Protected> MapperClass

● MapperClass: IMapperFactory<T, R>

Defined in Services/DataService/DataService.ts:94


<Abstract> ModelClass

● ModelClass: IModelFactory<T>

Defined in Services/DataService/DataService.ts:92


<Protected> SerializerClass

● SerializerClass: ISerializerFactory<T, any>

Defined in Services/DataService/DataService.ts:95


<Protected> _adapter

● _adapter: IAdapter<any>

Defined in Services/DataService/DataService.ts:97


<Protected> _mapper

● _mapper: IMapper<any>

Defined in Services/DataService/DataService.ts:98


<Protected> _serializer

● _serializer: ISerializer<any, R>

Defined in Services/DataService/DataService.ts:99


<Protected>``<Optional> internalActions

● internalActions: IActionCreators

Inherited from BaseService.internalActions

Defined in Services/BaseService.ts:45


<Protected>``<Optional> internalEpics

● internalEpics: IActionEpic[]

Inherited from BaseService.internalEpics

Defined in Services/BaseService.ts:44


<Protected>``<Optional> internalReducers

● internalReducers: IReducers<IDataServiceStateRecord<T>>

Inherited from BaseService.internalReducers

Defined in Services/BaseService.ts:43


<Protected>``<Optional> internalSelectors

● internalSelectors: ISelectors

Inherited from BaseService.internalSelectors

Defined in Services/BaseService.ts:46


<Protected> internalTypes

● internalTypes: IActionTypes

Inherited from BaseService.internalTypes

Defined in Services/BaseService.ts:47


<Abstract> name

● name: string

Implementation of IService.name

Inherited from BaseService.name

Defined in Services/BaseService.ts:39


<Protected> observablesByIdCache

● observablesByIdCache: object

Defined in Services/DataService/DataService.ts:102

Type declaration


<Protected> observablesByIdsCache

● observablesByIdsCache: object

Defined in Services/DataService/DataService.ts:103

Type declaration


<Protected> observablesByQueryCache

● observablesByQueryCache: object

Defined in Services/DataService/DataService.ts:104

Type declaration


<Protected> shadowObject

● shadowObject: IModel<T> = null

Defined in Services/DataService/DataService.ts:101


<Static>``<Protected> dispatch

● dispatch: function

Inherited from BaseService.dispatch

Defined in Services/BaseService.ts:41

Type declaration

▸(action: IAction): void

Parameters:

Name Type
action IAction

Returns: void


<Static>``<Protected> state$

● state$: any

Inherited from BaseService.state$

Defined in Services/BaseService.ts:42


Accessors

actions

getactions(): IActionCreators

Inherited from BaseService.actions

Defined in Services/BaseService.ts:205

Returns a map of IActionCreators, which when dispatched to Redux, one or many Reducers or epics may act on that IAction.

Returns: IActionCreators


adapter

getadapter(): IAdapter<any>

Defined in Services/DataService/DataService.ts:106

Returns: IAdapter<any>


epics

getepics(): IActionEpic[]

Inherited from BaseService.epics

Defined in Services/BaseService.ts:248

Returns an array of RxJS Observeable Epics from redux-observable, which are observers that are always listening for a given ActionType. They are useful for triggering side effects (such as loading data asynchronously) in response to an IAction via chainable, asynchronous "streams".

They will usually emit one or many Actions to pass data into Redux (via a IReducer) or to trigger other Epics. Not only can they be daisy-chained in this manner, RxJS also supports a variety of other common use-cases such as throttling/debouncing and retrying failed promises.

Notes:

  • When an IAction is dispatched to Redux, it hits the reducers BEFORE the epics.
  • Before you can use something from RxJS (such as an operator), you must import it first.

Returns: IActionEpic[]


mapper

getmapper(): IMapper<any, any>

Defined in Services/DataService/DataService.ts:115

Returns: IMapper<any, any>


reducer

getreducer(): IReducer<IDataServiceStateRecord<T>>

Inherited from BaseService.reducer

Defined in Services/BaseService.ts:170

Returns a single IReducer function which triggers the methods mapped in the internal reducers object to the given IAction type.

This is the function that is actually injected into and later triggered by Redux.

Returns: IReducer<IDataServiceStateRecord<T>>


<Protected> reducers

getreducers(): IReducers<IDataServiceStateRecord<T>>

Inherited from BaseService.reducers

Defined in Services/BaseService.ts:156

Return a map of functions which are triggered by the IReducer for a given ActionType. They are used to update the Redux state in response to a given IAction.

Like a reducer, they are given the Redux state object and the action that was triggered and should return a new copy of the immutable state. However, these are not individually added to Redux, but rather through the single reducer function returned for this IService.

Returns: IReducers<IDataServiceStateRecord<T>>


selectors

getselectors(): ISelectors

Inherited from BaseService.selectors

Defined in Services/BaseService.ts:224

Returns an object of selectors using Reselect. ISelectors are useful for efficiently filtering data from the Redux state.

ISelectors are composable: a selector may be built from other selectors

ISelectors are memoized: the output from each selector is cached, so future requests will not require a recompute unless its inputs change

Returns: ISelectors


serializer

getserializer(): ISerializer<any, R>

Defined in Services/DataService/DataService.ts:124

Returns: ISerializer<any, R>


types

gettypes(): IActionTypes

Inherited from BaseService.types

Defined in Services/BaseService.ts:191

Returns a map of IActionTypes, which are string "constants" that represent the type of an IAction. When an IAction is dispatched to Redux via an IActionCreator, one or many reducers or epics may act on that IAction

Returns: IActionTypes


Methods

createActions

createActions(): IActionCreators

Overrides BaseService.createActions

Defined in Services/DataService/DataService.ts:284

Returns: IActionCreators


createEpics

createEpics(): IActionEpic[]

Overrides BaseService.createEpics

Defined in Services/DataService/DataService.ts:380

Returns: IActionEpic[]


createNew

createNew(initialData?: Partial<T>): IModel<T>

Defined in Services/DataService/DataService.ts:150

Create a new instance of the Model which has not been committed to the API yet.

Parameters:

Name Type Default value
Default value initialData Partial<T> {}

Returns: IModel<T>


createReducers

createReducers(): object

Overrides BaseService.createReducers

Defined in Services/DataService/DataService.ts:359

Returns: object


createSelectors

createSelectors(): ISelectors

Overrides BaseService.createSelectors

Defined in Services/DataService/DataService.ts:311

Returns: ISelectors


createTypes

createTypes(): IActionTypes

Overrides BaseService.createTypes

Defined in Services/DataService/DataService.ts:258

Returns: IActionTypes


deleteRecordEpic

deleteRecordEpic(action$: IObservableAction<IModelId>): Observable<IAction<any, any>>

Defined in Services/DataService/DataService.ts:457

Parameters:

Name Type
action$ IObservableAction<IModelId>

Returns: Observable<IAction<any, any>>


fetchAllEpic

fetchAllEpic(action$: IObservableAction<IQueryBuilder, IPostActionHandlers & IForceReload>, store: Store<IDataServiceStateRecord<T>>): Observable<IAction<any, any>>

Defined in Services/DataService/DataService.ts:397

Parameters:

Name Type
action$ IObservableAction<IQueryBuilder, IPostActionHandlers & IForceReload>
store Store<IDataServiceStateRecord<T>>

Returns: Observable<IAction<any, any>>


getAll

getAll(): Observable<IModel<T>[]>

Defined in Services/DataService/DataService.ts:231

Returns: Observable<IModel<T>[]>


getById

getById(id: string): Observable<IModel<T>>

Defined in Services/DataService/DataService.ts:161

Parameters:

Name Type
id string

Returns: Observable<IModel<T>>


getByIds

getByIds(ids: string[]): Observable<IModel<T>[]>

Defined in Services/DataService/DataService.ts:182

Parameters:

Name Type
ids string[]

Returns: Observable<IModel<T>[]>


getByQuery

getByQuery(queryBuilder: IQueryBuilder): Observable<IQueryManager<T>>

Defined in Services/DataService/DataService.ts:198

Parameters:

Name Type
queryBuilder IQueryBuilder

Returns: Observable<IQueryManager<T>>


getDefaultQueryParams

getDefaultQueryParams(): Observable<any>

Defined in Services/DataService/DataService.ts:250

Get the default query params object to use when querying for the Model associated to this DataService.

Returns: Observable<any> any


getDefaultState

getDefaultState(): IDataServiceStateRecord<T>

Overrides BaseService.getDefaultState

Defined in Services/DataService/DataService.ts:133

Returns: IDataServiceStateRecord<T>


getShadowObject

getShadowObject(): IModel<T>

Defined in Services/DataService/DataService.ts:137

Returns: IModel<T>


makeActionCreator

makeActionCreator<T,M>(type: string, defaultMeta?: any): IActionCreator

Inherited from BaseService.makeActionCreator

Defined in Services/BaseService.ts:95

Creates an IActionCreator function for triggering an IAction with the given type.

Type parameters:

T : any

M

Parameters:

Name Type Description
type string -
Optional defaultMeta any -

Returns: IActionCreator


makeActionType

makeActionType(type: string): string

Inherited from BaseService.makeActionType

Defined in Services/BaseService.ts:64

Returns a namespaced IAction type in the form <name>/<type>. For example: student/FETCH_ALL

Parameters:

Name Type Description
type string -

Returns: string


patchRecordEpic

patchRecordEpic(action$: IObservableAction<IModelId>, store: Store<IDataServiceStateRecord<T>>): Observable<IAction<any, any>>

Defined in Services/DataService/DataService.ts:440

Parameters:

Name Type
action$ IObservableAction<IModelId>
store Store<IDataServiceStateRecord<T>>

Returns: Observable<IAction<any, any>>


updateRecordEpic

updateRecordEpic(action$: IObservableAction<IModelId>, store: Store<IDataServiceStateRecord<T>>): Observable<IAction<any, any>>

Defined in Services/DataService/DataService.ts:423

Parameters:

Name Type
action$ IObservableAction<IModelId>
store Store<IDataServiceStateRecord<T>>

Returns: Observable<IAction<any, any>>


<Static> getStateObservable

getStateObservable(): Observable<any>

Inherited from BaseService.getStateObservable

Defined in Services/BaseService.ts:82

Returns: Observable<any>


<Static> registerDispatch

registerDispatch(dispatch: any): void

Inherited from BaseService.registerDispatch

Defined in Services/BaseService.ts:74

Registers the dispatch function that is passed in from the middleware.

Parameters:

Name Type Description
dispatch any -

Returns: void void


<Static> setStateObservable

setStateObservable(state$: Observable<any>): void

Inherited from BaseService.setStateObservable

Defined in Services/BaseService.ts:78

Parameters:

Name Type
state$ Observable<any>

Returns: void