ns-ngrx-debugger
Version:
A minimal nativescript debugger for ngrx-store & ngrx-effects
70 lines (69 loc) • 2.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = require("@angular/core");
var store_1 = require("@ngrx/store");
var effects_1 = require("@ngrx/effects");
var Observable_1 = require("rxjs/Observable");
var BehaviorSubject_1 = require("rxjs/BehaviorSubject");
require("rxjs/add/observable/from");
require("rxjs/add/operator/map");
require("rxjs/add/operator/do");
require("rxjs/add/operator/distinctUntilChanged");
require("rxjs/add/operator/debounceTime");
require("rxjs/add/operator/scan");
// declare var module;
var Debugger = (function () {
function Debugger(store$, actions) {
this.store$ = store$;
this.states = {};
this.expanded = [];
this.pan$ = new BehaviorSubject_1.BehaviorSubject({ top: 0, left: 300 });
this.hidden = false;
this.actions$ = actions.do(function (_a) {
var type = _a.type;
return console.log('[ACTION] ' + type);
});
}
Debugger.prototype.ngOnInit = function () {
var _this = this;
this.position$ = Observable_1.Observable.from(this.pan$)
.debounceTime(50)
.scan(function (position, _a) {
var top = _a.top, left = _a.left;
return ({ top: position.top + top, left: position.left + left });
});
this.states$ = this.store$
.distinctUntilChanged()
.do(function (states) { return _this.states = states; })
.map(function (states) { return Object.keys(states); });
};
Debugger.prototype.onDump = function (state) {
var debug;
if (this.selected && this.states[this.selected][state])
debug = this.states[this.selected][state];
else
debug = this.states[state];
typeof debug == 'string' ? console.log(debug) : console.dir(debug);
};
Debugger.prototype.onExpand = function (state) {
this.selected = this.selected == state ? false : state;
this.expanded = this.selected && Object.keys(this.states[this.selected]);
};
Debugger.prototype.ngOnDestroy = function () {
};
return Debugger;
}());
__decorate([
core_1.Input(),
__metadata("design:type", Object)
], Debugger.prototype, "hidden", void 0);
Debugger = __decorate([
core_1.Component({
moduleId: module.id,
selector: "ns-ngrx-debugger",
styleUrls: ['./debugger.css'],
templateUrl: './debugger.html',
}),
__metadata("design:paramtypes", [store_1.Store, effects_1.Actions])
], Debugger);
exports.Debugger = Debugger;