@ng-vcl/store
Advanced tools
Comparing version 0.3.8 to 0.3.9
@@ -6,10 +6,22 @@ import { OnDestroy, OpaqueToken, Injector } from '@angular/core'; | ||
export declare const STORE_EFFECTS: OpaqueToken; | ||
export declare const STORE_CHILD_EFFECTS: OpaqueToken; | ||
export declare function Effect(): PropertyDecorator; | ||
export declare function getEffectsMetadata(instance: any): string[]; | ||
export declare class Effects implements OnDestroy { | ||
private store; | ||
protected store: Store; | ||
protected effects: any[]; | ||
protected injector: Injector; | ||
private effectSubs; | ||
constructor(store: Store, effects: any[], injector: Injector); | ||
init(): void; | ||
addEffect(effect: any): void; | ||
ngOnDestroy(): void; | ||
} | ||
export declare class RootEffects extends Effects { | ||
protected store: Store; | ||
constructor(store: Store, effects: any[], injector: Injector); | ||
} | ||
export declare class ChildEffects extends Effects { | ||
protected store: Store; | ||
constructor(store: Store, effects: any[], injector: Injector); | ||
} |
@@ -0,1 +1,11 @@ | ||
var __extends = (this && this.__extends) || (function () { | ||
var extendStatics = Object.setPrototypeOf || | ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || | ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; | ||
return function (d, b) { | ||
extendStatics(d, b); | ||
function __() { this.constructor = d; } | ||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); | ||
}; | ||
})(); | ||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { | ||
@@ -20,2 +30,3 @@ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; | ||
export var STORE_EFFECTS = new OpaqueToken('store.effects'); | ||
export var STORE_CHILD_EFFECTS = new OpaqueToken('store.child.effects'); | ||
export function Effect() { | ||
@@ -39,9 +50,13 @@ return function (target, propertyName) { | ||
function Effects(store, effects, injector) { | ||
var _this = this; | ||
this.store = store; | ||
this.effects = effects; | ||
this.injector = injector; | ||
this.effectSubs = []; | ||
(effects || []).forEach(function (effectClasses) { | ||
} | ||
Effects.prototype.init = function () { | ||
var _this = this; | ||
(this.effects || []).forEach(function (effectClasses) { | ||
if (Array.isArray(effectClasses)) { | ||
effectClasses.forEach(function (effectClass) { | ||
var effect = injector.get(effectClass); | ||
var effect = _this.injector.get(effectClass); | ||
if (effect) { | ||
@@ -53,3 +68,3 @@ _this.addEffect(effect); | ||
}); | ||
} | ||
}; | ||
Effects.prototype.addEffect = function (effect) { | ||
@@ -69,3 +84,13 @@ if (effect) { | ||
}; | ||
Effects = __decorate([ | ||
return Effects; | ||
}()); | ||
export { Effects }; | ||
var RootEffects = (function (_super) { | ||
__extends(RootEffects, _super); | ||
function RootEffects(store, effects, injector) { | ||
var _this = _super.call(this, store, effects, injector) || this; | ||
_this.store = store; | ||
return _this; | ||
} | ||
RootEffects = __decorate([ | ||
Injectable(), | ||
@@ -75,5 +100,21 @@ __param(1, Optional()), | ||
__metadata("design:paramtypes", [Store, Array, Injector]) | ||
], Effects); | ||
return Effects; | ||
}()); | ||
export { Effects }; | ||
], RootEffects); | ||
return RootEffects; | ||
}(Effects)); | ||
export { RootEffects }; | ||
var ChildEffects = (function (_super) { | ||
__extends(ChildEffects, _super); | ||
function ChildEffects(store, effects, injector) { | ||
var _this = _super.call(this, store, effects, injector) || this; | ||
_this.store = store; | ||
return _this; | ||
} | ||
ChildEffects = __decorate([ | ||
Injectable(), | ||
__param(1, Optional()), | ||
__param(1, Inject(STORE_CHILD_EFFECTS)), | ||
__metadata("design:paramtypes", [Store, Array, Injector]) | ||
], ChildEffects); | ||
return ChildEffects; | ||
}(Effects)); | ||
export { ChildEffects }; |
@@ -1,1 +0,1 @@ | ||
[{"__symbolic":"module","version":3,"metadata":{"STORE_EFFECTS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"OpaqueToken"},"arguments":["store.effects"]},"Effect":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"error","message":"Function call not supported","line":13,"character":9}},"getEffectsMetadata":{"__symbolic":"function"},"Effects":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","name":"STORE_EFFECTS"}]}],null],"parameters":[{"__symbolic":"reference","module":"./store","name":"Store"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"Injector"}]}],"addEffect":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"STORE_EFFECTS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"OpaqueToken"},"arguments":["store.effects"]},"Effect":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"error","message":"Function call not supported","line":13,"character":9}},"getEffectsMetadata":{"__symbolic":"function"},"Effects":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","name":"STORE_EFFECTS"}]}],null],"parameters":[{"__symbolic":"reference","module":"./store","name":"Store"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"Injector"}]}],"addEffect":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}}}}] | ||
[{"__symbolic":"module","version":3,"metadata":{"STORE_EFFECTS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"OpaqueToken"},"arguments":["store.effects"]},"STORE_CHILD_EFFECTS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"OpaqueToken"},"arguments":["store.child.effects"]},"Effect":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"error","message":"Function call not supported","line":14,"character":9}},"getEffectsMetadata":{"__symbolic":"function"},"Effects":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./store","name":"Store"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"Injector"}]}],"init":[{"__symbolic":"method"}],"addEffect":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"RootEffects":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Effects"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","name":"STORE_EFFECTS"}]}],null],"parameters":[{"__symbolic":"reference","module":"./store","name":"Store"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"Injector"}]}]}},"ChildEffects":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Effects"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","name":"STORE_CHILD_EFFECTS"}]}],null],"parameters":[{"__symbolic":"reference","module":"./store","name":"Store"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"Injector"}]}]}}}},{"__symbolic":"module","version":1,"metadata":{"STORE_EFFECTS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"OpaqueToken"},"arguments":["store.effects"]},"STORE_CHILD_EFFECTS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"OpaqueToken"},"arguments":["store.child.effects"]},"Effect":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"error","message":"Function call not supported","line":14,"character":9}},"getEffectsMetadata":{"__symbolic":"function"},"Effects":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./store","name":"Store"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"Injector"}]}],"init":[{"__symbolic":"method"}],"addEffect":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"RootEffects":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Effects"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","name":"STORE_EFFECTS"}]}],null],"parameters":[{"__symbolic":"reference","module":"./store","name":"Store"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"Injector"}]}]}},"ChildEffects":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Effects"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","name":"STORE_CHILD_EFFECTS"}]}],null],"parameters":[{"__symbolic":"reference","module":"./store","name":"Store"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"Injector"}]}]}}}}] |
import { ModuleWithProviders, Type, OpaqueToken } from '@angular/core'; | ||
import { Store, Reducer, Reducers, StoreState } from './store'; | ||
import { Effects } from './effects'; | ||
import { Effects, ChildEffects } from './effects'; | ||
export * from './actions'; | ||
@@ -27,2 +27,5 @@ export * from './utils'; | ||
providers: (Type<any> | { | ||
provide: typeof Effects; | ||
useClass: typeof ChildEffects; | ||
} | { | ||
provide: OpaqueToken; | ||
@@ -33,4 +36,4 @@ multi: boolean; | ||
provide: OpaqueToken; | ||
multi: boolean; | ||
useValue: Type<any>[] | undefined; | ||
multi: boolean; | ||
})[]; | ||
@@ -37,0 +40,0 @@ }; |
33
index.js
@@ -17,3 +17,3 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { | ||
import { StoreActions } from './actions'; | ||
import { Effects, STORE_EFFECTS } from './effects'; | ||
import { Effects, RootEffects, ChildEffects, STORE_EFFECTS, STORE_CHILD_EFFECTS } from './effects'; | ||
import { routerReducer, StoreRouter, StoreRouterEffects } from './router'; | ||
@@ -35,2 +35,5 @@ export * from './actions'; | ||
function StoreModule(guard, store, initialReducers, effects) { | ||
if (effects) { | ||
effects.init(); | ||
} | ||
var reducers = initialReducers.map(function (reducer) { return createReducer(reducer); }); | ||
@@ -56,6 +59,9 @@ var reducer = reduceReducers.apply(void 0, reducers); | ||
StoreRouter, | ||
Effects, | ||
{ | ||
provide: Effects, | ||
useClass: RootEffects | ||
}, | ||
{ | ||
provide: STORE_INITIAL_STATE, | ||
useValue: config.state || {} | ||
useValue: config.state | ||
}, | ||
@@ -69,6 +75,7 @@ { | ||
StoreRouter, | ||
StoreRouterEffects, | ||
{ | ||
provide: STORE_EFFECTS, | ||
useClass: StoreRouterEffects, | ||
multi: true | ||
multi: true, | ||
useValue: [StoreRouterEffects] | ||
}, | ||
@@ -83,4 +90,4 @@ { | ||
provide: STORE_EFFECTS, | ||
useValue: config.effects, | ||
multi: true | ||
multi: true, | ||
useValue: config.effects | ||
} | ||
@@ -95,4 +102,7 @@ ]) | ||
providers: [ | ||
Effects, | ||
{ | ||
provide: Effects, | ||
useClass: ChildEffects | ||
}, | ||
{ | ||
provide: STORE_INITIAL_REDUCERS, | ||
@@ -104,5 +114,5 @@ multi: true, | ||
{ | ||
provide: STORE_EFFECTS, | ||
useValue: config.effects, | ||
multi: true | ||
provide: STORE_CHILD_EFFECTS, | ||
multi: true, | ||
useValue: config.effects | ||
} | ||
@@ -116,2 +126,3 @@ ]) | ||
__param(2, Inject(STORE_INITIAL_REDUCERS)), | ||
__param(3, Optional()), | ||
__metadata("design:paramtypes", [Object, Store, Array, Effects]) | ||
@@ -118,0 +129,0 @@ ], StoreModule); |
@@ -1,1 +0,1 @@ | ||
[{"__symbolic":"module","version":3,"metadata":{"STORE_FORROOT_GUARD":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"OpaqueToken"},"arguments":["STORE_FORROOT_GUARD"]},"provideForRootGuard":{"__symbolic":"function"},"StoreConfig":{"__symbolic":"interface"},"StoreChildConfig":{"__symbolic":"interface"},"StoreModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","name":"STORE_FORROOT_GUARD"}]}],null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","module":"./store","name":"STORE_INITIAL_REDUCERS"}]}],null],"parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","module":"./store","name":"Store"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","module":"./store","name":"Reducer","arguments":[{"__symbolic":"reference","module":"./store","name":"StoreState"}]}]},{"__symbolic":"reference","module":"./effects","name":"Effects"}]}]},"statics":{"forRoot":{"__symbolic":"function","parameters":["config"],"value":{"ngModule":{"__symbolic":"reference","name":"StoreModule"},"providers":[{"provide":{"__symbolic":"reference","name":"STORE_FORROOT_GUARD"},"useFactory":{"__symbolic":"reference","name":"provideForRootGuard"},"deps":[[{"__symbolic":"reference","module":"./store","name":"Store"},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf"}}]]},{"__symbolic":"reference","module":"./actions","name":"StoreActions"},{"__symbolic":"reference","module":"./store","name":"Store"},{"__symbolic":"reference","module":"./router","name":"StoreRouter"},{"__symbolic":"reference","module":"./effects","name":"Effects"},{"provide":{"__symbolic":"reference","module":"./store","name":"STORE_INITIAL_STATE"},"useValue":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"state"},"right":{}}},{"provide":{"__symbolic":"reference","module":"./store","name":"STORE_INITIAL_REDUCERS"},"multi":true,"useValue":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"reducers"}},{"__symbolic":"spread","expression":{"__symbolic":"if","condition":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"enableRouter"},"thenExpression":[{"__symbolic":"reference","module":"./router","name":"StoreRouter"},{"provide":{"__symbolic":"reference","module":"./effects","name":"STORE_EFFECTS"},"useClass":{"__symbolic":"reference","module":"./router","name":"StoreRouterEffects"},"multi":true},{"provide":{"__symbolic":"reference","module":"./store","name":"STORE_INITIAL_REDUCERS"},"multi":true,"useValue":{"__symbolic":"reference","module":"./router","name":"routerReducer"}}],"elseExpression":[]}},{"__symbolic":"spread","expression":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"effects"},"right":[]}},{"provide":{"__symbolic":"reference","module":"./effects","name":"STORE_EFFECTS"},"useValue":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"effects"},"multi":true}]},"defaults":[{}]},"forChild":{"__symbolic":"function","parameters":["config"],"value":{"ngModule":{"__symbolic":"reference","name":"StoreModule"},"providers":[{"__symbolic":"reference","module":"./effects","name":"Effects"},{"provide":{"__symbolic":"reference","module":"./store","name":"STORE_INITIAL_REDUCERS"},"multi":true,"useValue":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"reducers"}},{"__symbolic":"spread","expression":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"effects"},"right":[]}},{"provide":{"__symbolic":"reference","module":"./effects","name":"STORE_EFFECTS"},"useValue":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"effects"},"multi":true}]},"defaults":[{}]}}}},"exports":[{"from":"./actions"},{"from":"./utils"},{"from":"./effects"},{"from":"./observable"},{"from":"./store"},{"from":"./router"}]},{"__symbolic":"module","version":1,"metadata":{"STORE_FORROOT_GUARD":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"OpaqueToken"},"arguments":["STORE_FORROOT_GUARD"]},"provideForRootGuard":{"__symbolic":"function"},"StoreConfig":{"__symbolic":"interface"},"StoreChildConfig":{"__symbolic":"interface"},"StoreModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","name":"STORE_FORROOT_GUARD"}]}],null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","module":"./store","name":"STORE_INITIAL_REDUCERS"}]}],null],"parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","module":"./store","name":"Store"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","module":"./store","name":"Reducer","arguments":[{"__symbolic":"reference","module":"./store","name":"StoreState"}]}]},{"__symbolic":"reference","module":"./effects","name":"Effects"}]}]},"statics":{"forRoot":{"__symbolic":"function","parameters":["config"],"value":{"ngModule":{"__symbolic":"reference","name":"StoreModule"},"providers":[{"provide":{"__symbolic":"reference","name":"STORE_FORROOT_GUARD"},"useFactory":{"__symbolic":"reference","name":"provideForRootGuard"},"deps":[[{"__symbolic":"reference","module":"./store","name":"Store"},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf"}}]]},{"__symbolic":"reference","module":"./actions","name":"StoreActions"},{"__symbolic":"reference","module":"./store","name":"Store"},{"__symbolic":"reference","module":"./router","name":"StoreRouter"},{"__symbolic":"reference","module":"./effects","name":"Effects"},{"provide":{"__symbolic":"reference","module":"./store","name":"STORE_INITIAL_STATE"},"useValue":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"state"},"right":{}}},{"provide":{"__symbolic":"reference","module":"./store","name":"STORE_INITIAL_REDUCERS"},"multi":true,"useValue":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"reducers"}},{"__symbolic":"spread","expression":{"__symbolic":"if","condition":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"enableRouter"},"thenExpression":[{"__symbolic":"reference","module":"./router","name":"StoreRouter"},{"provide":{"__symbolic":"reference","module":"./effects","name":"STORE_EFFECTS"},"useClass":{"__symbolic":"reference","module":"./router","name":"StoreRouterEffects"},"multi":true},{"provide":{"__symbolic":"reference","module":"./store","name":"STORE_INITIAL_REDUCERS"},"multi":true,"useValue":{"__symbolic":"reference","module":"./router","name":"routerReducer"}}],"elseExpression":[]}},{"__symbolic":"spread","expression":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"effects"},"right":[]}},{"provide":{"__symbolic":"reference","module":"./effects","name":"STORE_EFFECTS"},"useValue":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"effects"},"multi":true}]},"defaults":[{}]},"forChild":{"__symbolic":"function","parameters":["config"],"value":{"ngModule":{"__symbolic":"reference","name":"StoreModule"},"providers":[{"__symbolic":"reference","module":"./effects","name":"Effects"},{"provide":{"__symbolic":"reference","module":"./store","name":"STORE_INITIAL_REDUCERS"},"multi":true,"useValue":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"reducers"}},{"__symbolic":"spread","expression":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"effects"},"right":[]}},{"provide":{"__symbolic":"reference","module":"./effects","name":"STORE_EFFECTS"},"useValue":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"effects"},"multi":true}]},"defaults":[{}]}}}},"exports":[{"from":"./actions"},{"from":"./utils"},{"from":"./effects"},{"from":"./observable"},{"from":"./store"},{"from":"./router"}]}] | ||
[{"__symbolic":"module","version":3,"metadata":{"STORE_FORROOT_GUARD":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"OpaqueToken"},"arguments":["STORE_FORROOT_GUARD"]},"provideForRootGuard":{"__symbolic":"function"},"StoreConfig":{"__symbolic":"interface"},"StoreChildConfig":{"__symbolic":"interface"},"StoreModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","name":"STORE_FORROOT_GUARD"}]}],null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","module":"./store","name":"STORE_INITIAL_REDUCERS"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}}]],"parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","module":"./store","name":"Store"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","module":"./store","name":"Reducer","arguments":[{"__symbolic":"reference","module":"./store","name":"StoreState"}]}]},{"__symbolic":"reference","module":"./effects","name":"Effects"}]}]},"statics":{"forRoot":{"__symbolic":"function","parameters":["config"],"value":{"ngModule":{"__symbolic":"reference","name":"StoreModule"},"providers":[{"provide":{"__symbolic":"reference","name":"STORE_FORROOT_GUARD"},"useFactory":{"__symbolic":"reference","name":"provideForRootGuard"},"deps":[[{"__symbolic":"reference","module":"./store","name":"Store"},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf"}}]]},{"__symbolic":"reference","module":"./actions","name":"StoreActions"},{"__symbolic":"reference","module":"./store","name":"Store"},{"__symbolic":"reference","module":"./router","name":"StoreRouter"},{"provide":{"__symbolic":"reference","module":"./effects","name":"Effects"},"useClass":{"__symbolic":"reference","module":"./effects","name":"RootEffects"}},{"provide":{"__symbolic":"reference","module":"./store","name":"STORE_INITIAL_STATE"},"useValue":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"state"}},{"provide":{"__symbolic":"reference","module":"./store","name":"STORE_INITIAL_REDUCERS"},"multi":true,"useValue":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"reducers"}},{"__symbolic":"spread","expression":{"__symbolic":"if","condition":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"enableRouter"},"thenExpression":[{"__symbolic":"reference","module":"./router","name":"StoreRouter"},{"__symbolic":"reference","module":"./router","name":"StoreRouterEffects"},{"provide":{"__symbolic":"reference","module":"./effects","name":"STORE_EFFECTS"},"multi":true,"useValue":[{"__symbolic":"reference","module":"./router","name":"StoreRouterEffects"}]},{"provide":{"__symbolic":"reference","module":"./store","name":"STORE_INITIAL_REDUCERS"},"multi":true,"useValue":{"__symbolic":"reference","module":"./router","name":"routerReducer"}}],"elseExpression":[]}},{"__symbolic":"spread","expression":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"effects"},"right":[]}},{"provide":{"__symbolic":"reference","module":"./effects","name":"STORE_EFFECTS"},"multi":true,"useValue":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"effects"}}]},"defaults":[{}]},"forChild":{"__symbolic":"function","parameters":["config"],"value":{"ngModule":{"__symbolic":"reference","name":"StoreModule"},"providers":[{"provide":{"__symbolic":"reference","module":"./effects","name":"Effects"},"useClass":{"__symbolic":"reference","module":"./effects","name":"ChildEffects"}},{"provide":{"__symbolic":"reference","module":"./store","name":"STORE_INITIAL_REDUCERS"},"multi":true,"useValue":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"reducers"}},{"__symbolic":"spread","expression":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"effects"},"right":[]}},{"provide":{"__symbolic":"reference","module":"./effects","name":"STORE_CHILD_EFFECTS"},"multi":true,"useValue":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"effects"}}]},"defaults":[{}]}}}},"exports":[{"from":"./actions"},{"from":"./utils"},{"from":"./effects"},{"from":"./observable"},{"from":"./store"},{"from":"./router"}]},{"__symbolic":"module","version":1,"metadata":{"STORE_FORROOT_GUARD":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"OpaqueToken"},"arguments":["STORE_FORROOT_GUARD"]},"provideForRootGuard":{"__symbolic":"function"},"StoreConfig":{"__symbolic":"interface"},"StoreChildConfig":{"__symbolic":"interface"},"StoreModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","name":"STORE_FORROOT_GUARD"}]}],null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","module":"./store","name":"STORE_INITIAL_REDUCERS"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}}]],"parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","module":"./store","name":"Store"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","module":"./store","name":"Reducer","arguments":[{"__symbolic":"reference","module":"./store","name":"StoreState"}]}]},{"__symbolic":"reference","module":"./effects","name":"Effects"}]}]},"statics":{"forRoot":{"__symbolic":"function","parameters":["config"],"value":{"ngModule":{"__symbolic":"reference","name":"StoreModule"},"providers":[{"provide":{"__symbolic":"reference","name":"STORE_FORROOT_GUARD"},"useFactory":{"__symbolic":"reference","name":"provideForRootGuard"},"deps":[[{"__symbolic":"reference","module":"./store","name":"Store"},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf"}}]]},{"__symbolic":"reference","module":"./actions","name":"StoreActions"},{"__symbolic":"reference","module":"./store","name":"Store"},{"__symbolic":"reference","module":"./router","name":"StoreRouter"},{"provide":{"__symbolic":"reference","module":"./effects","name":"Effects"},"useClass":{"__symbolic":"reference","module":"./effects","name":"RootEffects"}},{"provide":{"__symbolic":"reference","module":"./store","name":"STORE_INITIAL_STATE"},"useValue":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"state"}},{"provide":{"__symbolic":"reference","module":"./store","name":"STORE_INITIAL_REDUCERS"},"multi":true,"useValue":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"reducers"}},{"__symbolic":"spread","expression":{"__symbolic":"if","condition":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"enableRouter"},"thenExpression":[{"__symbolic":"reference","module":"./router","name":"StoreRouter"},{"__symbolic":"reference","module":"./router","name":"StoreRouterEffects"},{"provide":{"__symbolic":"reference","module":"./effects","name":"STORE_EFFECTS"},"multi":true,"useValue":[{"__symbolic":"reference","module":"./router","name":"StoreRouterEffects"}]},{"provide":{"__symbolic":"reference","module":"./store","name":"STORE_INITIAL_REDUCERS"},"multi":true,"useValue":{"__symbolic":"reference","module":"./router","name":"routerReducer"}}],"elseExpression":[]}},{"__symbolic":"spread","expression":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"effects"},"right":[]}},{"provide":{"__symbolic":"reference","module":"./effects","name":"STORE_EFFECTS"},"multi":true,"useValue":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"effects"}}]},"defaults":[{}]},"forChild":{"__symbolic":"function","parameters":["config"],"value":{"ngModule":{"__symbolic":"reference","name":"StoreModule"},"providers":[{"provide":{"__symbolic":"reference","module":"./effects","name":"Effects"},"useClass":{"__symbolic":"reference","module":"./effects","name":"ChildEffects"}},{"provide":{"__symbolic":"reference","module":"./store","name":"STORE_INITIAL_REDUCERS"},"multi":true,"useValue":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"reducers"}},{"__symbolic":"spread","expression":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"effects"},"right":[]}},{"provide":{"__symbolic":"reference","module":"./effects","name":"STORE_CHILD_EFFECTS"},"multi":true,"useValue":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"effects"}}]},"defaults":[{}]}}}},"exports":[{"from":"./actions"},{"from":"./utils"},{"from":"./effects"},{"from":"./observable"},{"from":"./store"},{"from":"./router"}]}] |
{ | ||
"name": "@ng-vcl/store", | ||
"version": "0.3.8", | ||
"version": "0.3.9", | ||
"description": "ng-vcl store", | ||
@@ -5,0 +5,0 @@ "repository": { |
@@ -0,4 +1,4 @@ | ||
import { Router, NavigationExtras, UrlTree } from '@angular/router'; | ||
import 'rxjs/add/operator/filter'; | ||
import 'rxjs/add/operator/map'; | ||
import { Router, NavigationExtras, UrlTree } from '@angular/router'; | ||
import { Store, Reducer } from './store'; | ||
@@ -28,4 +28,4 @@ import { StoreActions } from './actions'; | ||
private actions$; | ||
private routerSub; | ||
constructor(router: Router, store: Store, actions$: StoreActions); | ||
private routerSub; | ||
private navigateEffect; | ||
@@ -32,0 +32,0 @@ private navigateByUrlEffect; |
@@ -10,6 +10,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { | ||
}; | ||
import { Injectable } from '@angular/core'; | ||
import { Router, NavigationEnd } from '@angular/router'; | ||
import 'rxjs/add/operator/filter'; | ||
import 'rxjs/add/operator/map'; | ||
import { Injectable } from '@angular/core'; | ||
import { Router, NavigationEnd } from '@angular/router'; | ||
import { Store } from './store'; | ||
@@ -51,8 +51,2 @@ import { StoreActions } from './actions'; | ||
this.actions$ = actions$; | ||
this.routerSub = this.router | ||
.events | ||
.filter(function (event) { return event instanceof NavigationEnd; }) | ||
.subscribe(function (event) { | ||
_this.store.dispatch(new RouterUrlUpdateAction(event.url)); | ||
}); | ||
this.navigateEffect = this.actions$ | ||
@@ -68,6 +62,13 @@ .ofType(RouterNavigateAction) | ||
}); | ||
if (this.router) { | ||
this.routerSub = this.router | ||
.events | ||
.filter(function (event) { return event instanceof NavigationEnd; }) | ||
.subscribe(function (event) { | ||
_this.store.dispatch(new RouterUrlUpdateAction(event.url)); | ||
}); | ||
} | ||
} | ||
StoreRouterEffects.prototype.ngOnDestroy = function () { | ||
if (this.routerSub && !this.routerSub.closed) | ||
this.routerSub.unsubscribe(); | ||
this.routerSub && this.routerSub.unsubscribe(); | ||
}; | ||
@@ -74,0 +75,0 @@ __decorate([ |
@@ -1,1 +0,1 @@ | ||
[{"__symbolic":"module","version":3,"metadata":{"RouterState":{"__symbolic":"interface"},"initialRouterState":{"url":""},"RouterNavigateAction":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/router","name":"NavigationExtras"}]}]}},"RouterNavigateByUrlAction":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"@angular/router","name":"NavigationExtras"}]}]}},"RouterUrlUpdateAction":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]}},"StoreRouterEffects":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router"},{"__symbolic":"reference","module":"./store","name":"Store"},{"__symbolic":"reference","module":"./actions","name":"StoreActions"}]}],"navigateEffect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./effects","name":"Effect"}}]}],"navigateByUrlEffect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./effects","name":"Effect"}}]}],"ngOnDestroy":[{"__symbolic":"method"}]}},"StoreRouter":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./store","name":"Store"}]}],"navigate":[{"__symbolic":"method"}],"navigateByUrl":[{"__symbolic":"method"}]}},"routerReducer":{"__symbolic":"error","message":"Function call not supported","line":76,"character":10}}},{"__symbolic":"module","version":1,"metadata":{"RouterState":{"__symbolic":"interface"},"initialRouterState":{"url":""},"RouterNavigateAction":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/router","name":"NavigationExtras"}]}]}},"RouterNavigateByUrlAction":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"@angular/router","name":"NavigationExtras"}]}]}},"RouterUrlUpdateAction":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]}},"StoreRouterEffects":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router"},{"__symbolic":"reference","module":"./store","name":"Store"},{"__symbolic":"reference","module":"./actions","name":"StoreActions"}]}],"navigateEffect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./effects","name":"Effect"}}]}],"navigateByUrlEffect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./effects","name":"Effect"}}]}],"ngOnDestroy":[{"__symbolic":"method"}]}},"StoreRouter":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./store","name":"Store"}]}],"navigate":[{"__symbolic":"method"}],"navigateByUrl":[{"__symbolic":"method"}]}},"routerReducer":{"__symbolic":"error","message":"Function call not supported","line":76,"character":10}}}] | ||
[{"__symbolic":"module","version":3,"metadata":{"RouterState":{"__symbolic":"interface"},"initialRouterState":{"url":""},"RouterNavigateAction":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/router","name":"NavigationExtras"}]}]}},"RouterNavigateByUrlAction":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"@angular/router","name":"NavigationExtras"}]}]}},"RouterUrlUpdateAction":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]}},"StoreRouterEffects":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router"},{"__symbolic":"reference","module":"./store","name":"Store"},{"__symbolic":"reference","module":"./actions","name":"StoreActions"}]}],"navigateEffect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./effects","name":"Effect"}}]}],"navigateByUrlEffect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./effects","name":"Effect"}}]}],"ngOnDestroy":[{"__symbolic":"method"}]}},"StoreRouter":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./store","name":"Store"}]}],"navigate":[{"__symbolic":"method"}],"navigateByUrl":[{"__symbolic":"method"}]}},"routerReducer":{"__symbolic":"error","message":"Function call not supported","line":84,"character":10}}},{"__symbolic":"module","version":1,"metadata":{"RouterState":{"__symbolic":"interface"},"initialRouterState":{"url":""},"RouterNavigateAction":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/router","name":"NavigationExtras"}]}]}},"RouterNavigateByUrlAction":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"@angular/router","name":"NavigationExtras"}]}]}},"RouterUrlUpdateAction":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]}},"StoreRouterEffects":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router"},{"__symbolic":"reference","module":"./store","name":"Store"},{"__symbolic":"reference","module":"./actions","name":"StoreActions"}]}],"navigateEffect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./effects","name":"Effect"}}]}],"navigateByUrlEffect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./effects","name":"Effect"}}]}],"ngOnDestroy":[{"__symbolic":"method"}]}},"StoreRouter":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./store","name":"Store"}]}],"navigate":[{"__symbolic":"method"}],"navigateByUrl":[{"__symbolic":"method"}]}},"routerReducer":{"__symbolic":"error","message":"Function call not supported","line":84,"character":10}}}] |
105
store.js
@@ -300,2 +300,12 @@ import { Inject, Injectable, Injector, NgModule, OpaqueToken, Optional, SkipSelf } from '@angular/core'; | ||
var __extends$3 = (this && this.__extends) || (function () { | ||
var extendStatics = Object.setPrototypeOf || | ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || | ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; | ||
return function (d, b) { | ||
extendStatics(d, b); | ||
function __() { this.constructor = d; } | ||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); | ||
}; | ||
})(); | ||
var __decorate$3 = (this && this.__decorate) || function (decorators, target, key, desc) { | ||
@@ -315,2 +325,3 @@ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; | ||
var STORE_EFFECTS = new OpaqueToken('store.effects'); | ||
var STORE_CHILD_EFFECTS = new OpaqueToken('store.child.effects'); | ||
function Effect() { | ||
@@ -334,9 +345,13 @@ return function (target, propertyName) { | ||
function Effects(store, effects, injector) { | ||
var _this = this; | ||
this.store = store; | ||
this.effects = effects; | ||
this.injector = injector; | ||
this.effectSubs = []; | ||
(effects || []).forEach(function (effectClasses) { | ||
} | ||
Effects.prototype.init = function () { | ||
var _this = this; | ||
(this.effects || []).forEach(function (effectClasses) { | ||
if (Array.isArray(effectClasses)) { | ||
effectClasses.forEach(function (effectClass) { | ||
var effect = injector.get(effectClass); | ||
var effect = _this.injector.get(effectClass); | ||
if (effect) { | ||
@@ -348,3 +363,3 @@ _this.addEffect(effect); | ||
}); | ||
} | ||
}; | ||
Effects.prototype.addEffect = function (effect) { | ||
@@ -364,3 +379,12 @@ if (effect) { | ||
}; | ||
Effects = __decorate$3([ | ||
return Effects; | ||
}()); | ||
var RootEffects = (function (_super) { | ||
__extends$3(RootEffects, _super); | ||
function RootEffects(store, effects, injector) { | ||
var _this = _super.call(this, store, effects, injector) || this; | ||
_this.store = store; | ||
return _this; | ||
} | ||
RootEffects = __decorate$3([ | ||
Injectable(), | ||
@@ -370,5 +394,20 @@ __param$2(1, Optional()), | ||
__metadata$3("design:paramtypes", [Store, Array, Injector]) | ||
], Effects); | ||
return Effects; | ||
}()); | ||
], RootEffects); | ||
return RootEffects; | ||
}(Effects)); | ||
var ChildEffects = (function (_super) { | ||
__extends$3(ChildEffects, _super); | ||
function ChildEffects(store, effects, injector) { | ||
var _this = _super.call(this, store, effects, injector) || this; | ||
_this.store = store; | ||
return _this; | ||
} | ||
ChildEffects = __decorate$3([ | ||
Injectable(), | ||
__param$2(1, Optional()), | ||
__param$2(1, Inject(STORE_CHILD_EFFECTS)), | ||
__metadata$3("design:paramtypes", [Store, Array, Injector]) | ||
], ChildEffects); | ||
return ChildEffects; | ||
}(Effects)); | ||
@@ -413,8 +452,2 @@ var __decorate$4 = (this && this.__decorate) || function (decorators, target, key, desc) { | ||
this.actions$ = actions$; | ||
this.routerSub = this.router | ||
.events | ||
.filter(function (event) { return event instanceof NavigationEnd; }) | ||
.subscribe(function (event) { | ||
_this.store.dispatch(new RouterUrlUpdateAction(event.url)); | ||
}); | ||
this.navigateEffect = this.actions$ | ||
@@ -430,6 +463,13 @@ .ofType(RouterNavigateAction) | ||
}); | ||
if (this.router) { | ||
this.routerSub = this.router | ||
.events | ||
.filter(function (event) { return event instanceof NavigationEnd; }) | ||
.subscribe(function (event) { | ||
_this.store.dispatch(new RouterUrlUpdateAction(event.url)); | ||
}); | ||
} | ||
} | ||
StoreRouterEffects.prototype.ngOnDestroy = function () { | ||
if (this.routerSub && !this.routerSub.closed) | ||
this.routerSub.unsubscribe(); | ||
this.routerSub && this.routerSub.unsubscribe(); | ||
}; | ||
@@ -499,2 +539,5 @@ __decorate$4([ | ||
function StoreModule(guard, store, initialReducers, effects) { | ||
if (effects) { | ||
effects.init(); | ||
} | ||
var reducers = initialReducers.map(function (reducer) { return createReducer(reducer); }); | ||
@@ -520,6 +563,9 @@ var reducer = reduceReducers.apply(void 0, reducers); | ||
StoreRouter, | ||
Effects, | ||
{ | ||
provide: Effects, | ||
useClass: RootEffects | ||
}, | ||
{ | ||
provide: STORE_INITIAL_STATE, | ||
useValue: config.state || {} | ||
useValue: config.state | ||
}, | ||
@@ -533,6 +579,7 @@ { | ||
StoreRouter, | ||
StoreRouterEffects, | ||
{ | ||
provide: STORE_EFFECTS, | ||
useClass: StoreRouterEffects, | ||
multi: true | ||
multi: true, | ||
useValue: [StoreRouterEffects] | ||
}, | ||
@@ -547,4 +594,4 @@ { | ||
provide: STORE_EFFECTS, | ||
useValue: config.effects, | ||
multi: true | ||
multi: true, | ||
useValue: config.effects | ||
} | ||
@@ -559,4 +606,7 @@ ]) | ||
providers: [ | ||
Effects, | ||
{ | ||
provide: Effects, | ||
useClass: ChildEffects | ||
}, | ||
{ | ||
provide: STORE_INITIAL_REDUCERS, | ||
@@ -568,5 +618,5 @@ multi: true, | ||
{ | ||
provide: STORE_EFFECTS, | ||
useValue: config.effects, | ||
multi: true | ||
provide: STORE_CHILD_EFFECTS, | ||
multi: true, | ||
useValue: config.effects | ||
} | ||
@@ -580,2 +630,3 @@ ]) | ||
__param(2, Inject(STORE_INITIAL_REDUCERS)), | ||
__param(3, Optional()), | ||
__metadata("design:paramtypes", [Object, Store, Array, Effects]) | ||
@@ -587,2 +638,2 @@ ], StoreModule); | ||
export { STORE_FORROOT_GUARD, provideForRootGuard, StoreModule, StoreActions, compose, reduceReducers, createReducer, combineReducers, STORE_EFFECTS, Effect, getEffectsMetadata, Effects, select, StoreObservable, STORE_INITIAL_REDUCERS, STORE_INITIAL_STATE, StoreInitAction, StoreErrorAction, ReducerInitAction, Store, initialRouterState, RouterNavigateAction, RouterNavigateByUrlAction, RouterUrlUpdateAction, StoreRouterEffects, StoreRouter, routerReducer }; | ||
export { STORE_FORROOT_GUARD, provideForRootGuard, StoreModule, StoreActions, compose, reduceReducers, createReducer, combineReducers, STORE_EFFECTS, STORE_CHILD_EFFECTS, Effect, getEffectsMetadata, Effects, RootEffects, ChildEffects, select, StoreObservable, STORE_INITIAL_REDUCERS, STORE_INITIAL_STATE, StoreInitAction, StoreErrorAction, ReducerInitAction, Store, initialRouterState, RouterNavigateAction, RouterNavigateByUrlAction, RouterUrlUpdateAction, StoreRouterEffects, StoreRouter, routerReducer }; |
106
store.umd.js
@@ -292,2 +292,12 @@ (function (global, factory) { | ||
var __extends$3 = (this && this.__extends) || (function () { | ||
var extendStatics = Object.setPrototypeOf || | ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || | ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; | ||
return function (d, b) { | ||
extendStatics(d, b); | ||
function __() { this.constructor = d; } | ||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); | ||
}; | ||
})(); | ||
var __decorate$3 = (this && this.__decorate) || function (decorators, target, key, desc) { | ||
@@ -307,2 +317,3 @@ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; | ||
var STORE_EFFECTS = new _angular_core.OpaqueToken('store.effects'); | ||
var STORE_CHILD_EFFECTS = new _angular_core.OpaqueToken('store.child.effects'); | ||
function Effect() { | ||
@@ -326,9 +337,13 @@ return function (target, propertyName) { | ||
function Effects(store, effects, injector) { | ||
var _this = this; | ||
this.store = store; | ||
this.effects = effects; | ||
this.injector = injector; | ||
this.effectSubs = []; | ||
(effects || []).forEach(function (effectClasses) { | ||
} | ||
Effects.prototype.init = function () { | ||
var _this = this; | ||
(this.effects || []).forEach(function (effectClasses) { | ||
if (Array.isArray(effectClasses)) { | ||
effectClasses.forEach(function (effectClass) { | ||
var effect = injector.get(effectClass); | ||
var effect = _this.injector.get(effectClass); | ||
if (effect) { | ||
@@ -340,3 +355,3 @@ _this.addEffect(effect); | ||
}); | ||
} | ||
}; | ||
Effects.prototype.addEffect = function (effect) { | ||
@@ -356,3 +371,12 @@ if (effect) { | ||
}; | ||
Effects = __decorate$3([ | ||
return Effects; | ||
}()); | ||
var RootEffects = (function (_super) { | ||
__extends$3(RootEffects, _super); | ||
function RootEffects(store, effects, injector) { | ||
var _this = _super.call(this, store, effects, injector) || this; | ||
_this.store = store; | ||
return _this; | ||
} | ||
RootEffects = __decorate$3([ | ||
_angular_core.Injectable(), | ||
@@ -362,5 +386,20 @@ __param$2(1, _angular_core.Optional()), | ||
__metadata$3("design:paramtypes", [Store, Array, _angular_core.Injector]) | ||
], Effects); | ||
return Effects; | ||
}()); | ||
], RootEffects); | ||
return RootEffects; | ||
}(Effects)); | ||
var ChildEffects = (function (_super) { | ||
__extends$3(ChildEffects, _super); | ||
function ChildEffects(store, effects, injector) { | ||
var _this = _super.call(this, store, effects, injector) || this; | ||
_this.store = store; | ||
return _this; | ||
} | ||
ChildEffects = __decorate$3([ | ||
_angular_core.Injectable(), | ||
__param$2(1, _angular_core.Optional()), | ||
__param$2(1, _angular_core.Inject(STORE_CHILD_EFFECTS)), | ||
__metadata$3("design:paramtypes", [Store, Array, _angular_core.Injector]) | ||
], ChildEffects); | ||
return ChildEffects; | ||
}(Effects)); | ||
@@ -405,8 +444,2 @@ var __decorate$4 = (this && this.__decorate) || function (decorators, target, key, desc) { | ||
this.actions$ = actions$; | ||
this.routerSub = this.router | ||
.events | ||
.filter(function (event) { return event instanceof _angular_router.NavigationEnd; }) | ||
.subscribe(function (event) { | ||
_this.store.dispatch(new RouterUrlUpdateAction(event.url)); | ||
}); | ||
this.navigateEffect = this.actions$ | ||
@@ -422,6 +455,13 @@ .ofType(RouterNavigateAction) | ||
}); | ||
if (this.router) { | ||
this.routerSub = this.router | ||
.events | ||
.filter(function (event) { return event instanceof _angular_router.NavigationEnd; }) | ||
.subscribe(function (event) { | ||
_this.store.dispatch(new RouterUrlUpdateAction(event.url)); | ||
}); | ||
} | ||
} | ||
StoreRouterEffects.prototype.ngOnDestroy = function () { | ||
if (this.routerSub && !this.routerSub.closed) | ||
this.routerSub.unsubscribe(); | ||
this.routerSub && this.routerSub.unsubscribe(); | ||
}; | ||
@@ -491,2 +531,5 @@ __decorate$4([ | ||
function StoreModule(guard, store, initialReducers, effects) { | ||
if (effects) { | ||
effects.init(); | ||
} | ||
var reducers = initialReducers.map(function (reducer) { return createReducer(reducer); }); | ||
@@ -512,6 +555,9 @@ var reducer = reduceReducers.apply(void 0, reducers); | ||
StoreRouter, | ||
Effects, | ||
{ | ||
provide: Effects, | ||
useClass: RootEffects | ||
}, | ||
{ | ||
provide: STORE_INITIAL_STATE, | ||
useValue: config.state || {} | ||
useValue: config.state | ||
}, | ||
@@ -525,6 +571,7 @@ { | ||
StoreRouter, | ||
StoreRouterEffects, | ||
{ | ||
provide: STORE_EFFECTS, | ||
useClass: StoreRouterEffects, | ||
multi: true | ||
multi: true, | ||
useValue: [StoreRouterEffects] | ||
}, | ||
@@ -539,4 +586,4 @@ { | ||
provide: STORE_EFFECTS, | ||
useValue: config.effects, | ||
multi: true | ||
multi: true, | ||
useValue: config.effects | ||
} | ||
@@ -551,4 +598,7 @@ ]) | ||
providers: [ | ||
Effects, | ||
{ | ||
provide: Effects, | ||
useClass: ChildEffects | ||
}, | ||
{ | ||
provide: STORE_INITIAL_REDUCERS, | ||
@@ -560,5 +610,5 @@ multi: true, | ||
{ | ||
provide: STORE_EFFECTS, | ||
useValue: config.effects, | ||
multi: true | ||
provide: STORE_CHILD_EFFECTS, | ||
multi: true, | ||
useValue: config.effects | ||
} | ||
@@ -572,2 +622,3 @@ ]) | ||
__param(2, _angular_core.Inject(STORE_INITIAL_REDUCERS)), | ||
__param(3, _angular_core.Optional()), | ||
__metadata("design:paramtypes", [Object, Store, Array, Effects]) | ||
@@ -588,5 +639,8 @@ ], StoreModule); | ||
exports.STORE_EFFECTS = STORE_EFFECTS; | ||
exports.STORE_CHILD_EFFECTS = STORE_CHILD_EFFECTS; | ||
exports.Effect = Effect; | ||
exports.getEffectsMetadata = getEffectsMetadata; | ||
exports.Effects = Effects; | ||
exports.RootEffects = RootEffects; | ||
exports.ChildEffects = ChildEffects; | ||
exports.select = select; | ||
@@ -593,0 +647,0 @@ exports.StoreObservable = StoreObservable; |
111199
1991