-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathdelete-unstated-debug-deploy-hack.js
116 lines (90 loc) · 2.39 KB
/
delete-unstated-debug-deploy-hack.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
'use strict';
var _require = require('deep-object-diff'),
detailedDiff = _require.detailedDiff;
var _require2 = require('unstated'),
__SUPER_SECRET_CONTAINER_DEBUG_HOOK__ =
_require2.__SUPER_SECRET_CONTAINER_DEBUG_HOOK__;
var UNSTATED = {
isEnabled: true,
logStateChanges: true,
containers: {},
get states() {
var ret = {};
for (
var _iterator = Object.entries(this.containers),
_isArray = Array.isArray(_iterator),
_i = 0,
_iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();
;
) {
var _ref;
if (_isArray) {
if (_i >= _iterator.length) break;
_ref = _iterator[_i++];
} else {
_i = _iterator.next();
if (_i.done) break;
_ref = _i.value;
}
var _ref2 = _ref,
key = _ref2[0],
value = _ref2[1];
ret[key] = value.state;
}
return ret;
},
logState: function logState() {
for (
var _iterator2 = Object.entries(this.containers),
_isArray2 = Array.isArray(_iterator2),
_i2 = 0,
_iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();
;
) {
var _ref3;
if (_isArray2) {
if (_i2 >= _iterator2.length) break;
_ref3 = _iterator2[_i2++];
} else {
_i2 = _iterator2.next();
if (_i2.done) break;
_ref3 = _i2.value;
}
var _ref4 = _ref3,
key = _ref4[0],
value = _ref4[1];
console.log('%c' + key + '\n', 'font-weight:bold', value.state);
}
},
};
__SUPER_SECRET_CONTAINER_DEBUG_HOOK__(function(container) {
if (!UNSTATED.isEnabled) {
return;
}
var name = container.constructor.name;
UNSTATED.containers[name] = container;
var prevState = container.state;
container.subscribe(function() {
if (!(UNSTATED.isEnabled && UNSTATED.logStateChanges)) {
return;
}
var state = container.state;
var diff = detailedDiff(prevState, state);
console.group(name);
if (diff.added) {
console.log('Added\n', diff.added);
}
if (diff.updated) {
console.log('Updated\n', diff.updated);
}
if (diff.deleted) {
console.log('Deleted\n', diff.deleted);
}
console.log('New state\n', state);
console.log('Old state\n', prevState);
console.groupEnd(name);
prevState = state;
});
});
window.UNSTATED = UNSTATED;
module.exports = UNSTATED;