-
-
Notifications
You must be signed in to change notification settings - Fork 3
/
benchmark.js
103 lines (71 loc) · 2.09 KB
/
benchmark.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
var Benchmark = require('benchmark'),
Radixx = require('./src/radixx'),
suite = new Benchmark.Suite(),
__callback = function(actionType, actionKey){
console.log("actionFired: ", storeTitle);
},
actions,
store;
Radixx.onDispatch(function(appstate){
console.log("Entire Application State: ", appstate);
});
Radixx.attachMiddleware(function(next, action, prevState){
next(
action,
prevState
);
});
suite
.add('Radixx#configure', function(){
Radixx.configure({
runtime:{
spaMode:true
},
persistenceEnabled:true
});
})
.add('Radixx#makeActionCreators', function() {
actions = Radixx.makeActionCreators({
'changeTesting':{
type:'CHANGE_TESTING',
actionDefinition:Radixx.Payload.type.number
}
});
})
.add('Radixx#makeStore', function() {
store = Radixx.makeStore('test', function(action, state){
var appmodels = state;
switch(action.actionType){
case "CHANGE_TESTING":
appstate.testing += action.actionData;
break;
default:
return null;
break;
}
return appstate;
}, {testing:1});
})
.add('Radixx.store#listen', function() {
store.setChangeListener(__callback);
})
.add('Radixx.store#hydrate', function() {
store.hydrate({
testing:5.2
});
})
.add('Radixx.store#state', function() {
console.log(store.getState('testing'));
})
.add('Radixx.action#dispatch', function() {
action.changeTesting(2);
})
.add('Radixx.store#destroy', function() {
store.unsetChangeListener(__callback);
store.disconnect();
store.destroy();
})
.on('cycle', function(event) {
console.log(String(event.target));
})
.run({ 'async': true });