UNPKG

@sigi/react

Version:

React bindings for sigi framework

67 lines 2.15 kB
import { __decorate, __metadata } from "tslib"; import { Effect, EffectModule, ImmerReducer, Module } from '@sigi/core'; import { Injectable } from '@sigi/di'; import { endWith, map, mergeMap, Observable, of, switchMap } from 'rxjs'; let Service = class Service { getName() { return of('client service'); } }; Service = __decorate([ Injectable() ], Service); export { Service }; let ServiceModule = class ServiceModule extends EffectModule { constructor(service) { super(); this.service = service; this.defaultState = { count: 0, name: '' }; } setName(state, name) { state.name = name; } setNameEffect(payload$) { return payload$.pipe(switchMap(() => this.service.getName().pipe(map((name) => this.getActions().setName(name)), endWith(this.terminate())))); } setNameWithFailure(payload$) { return payload$.pipe(mergeMap((p) => { if (p) { return of(this.retryOnClient().setNameWithFailure(), this.terminate()); } return of(this.getActions().setName('From retry')); })); } }; __decorate([ ImmerReducer(), __metadata("design:type", Function), __metadata("design:paramtypes", [Object, String]), __metadata("design:returntype", void 0) ], ServiceModule.prototype, "setName", null); __decorate([ Effect({ ssr: true, }), __metadata("design:type", Function), __metadata("design:paramtypes", [Observable]), __metadata("design:returntype", void 0) ], ServiceModule.prototype, "setNameEffect", null); __decorate([ Effect({ payloadGetter: (ctx, skip) => { if (!ctx.failure) { return skip; } return 1; }, }), __metadata("design:type", Function), __metadata("design:paramtypes", [Observable]), __metadata("design:returntype", void 0) ], ServiceModule.prototype, "setNameWithFailure", null); ServiceModule = __decorate([ Module('ServiceModule'), __metadata("design:paramtypes", [Service]) ], ServiceModule); export { ServiceModule }; //# sourceMappingURL=service.js.map