Skip to content

Commit 8d7e8ff

Browse files
authored
Merge pull request #78 from mauriciosoares/simplify
Simplify
2 parents 8177b76 + 0a515d1 commit 8d7e8ff

File tree

7 files changed

+43
-16
lines changed

7 files changed

+43
-16
lines changed

README.md

+4
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,10 @@ You need [NodeJS](https://nodejs.org/) installed on your machine
210210

211211
## Changelog
212212

213+
### 2.1.0
214+
215+
* eventPlayer, eventRecorder optionals are importable directly from the core
216+
213217
### 2.0.0
214218

215219
* core.start, core.stop return Promises

examples/replay/index.html

+2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
</li>
1919
</ul>
2020

21+
<button id="undo">Undo</button>
22+
2123
<script type="module" src="./main.js"></script>
2224
</body>
2325
</html>

examples/replay/main.js

+20-8
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
import { Core, ALL } from "../../src/core.js";
2-
import {
1+
import {
2+
Core,
3+
ALL,
34
startEventRecorder,
45
stopEventRecorder,
5-
} from "../../src/eventRecorder.js";
6-
import { replayEvents } from "../../src/eventPlayer.js";
6+
replayEvents,
7+
} from "../../src/core.js";
78
// import { } from "./eventNames.js";
89
// import { x, y } from "./dependencies.js";
910
// import { configuration } from "./configuration.js";
@@ -44,10 +45,21 @@ const restart = async () => {
4445
];
4546
};
4647

47-
restart();
48-
49-
setTimeout(async () => {
48+
const replay = async () => {
5049
const previousEvents = eventRecording.events;
5150
await restart();
5251
replayEvents(core, previousEvents, { sameSpeed: true });
53-
}, 10000);
52+
};
53+
const controlZ = async () => {
54+
const previousEvents = eventRecording.events;
55+
previousEvents.pop(); // forget last
56+
await restart();
57+
replayEvents(core, previousEvents, { sameSpeed: false });
58+
};
59+
60+
document.getElementById(`undo`).addEventListener(`click`, controlZ);
61+
62+
restart();
63+
64+
setTimeout(replay, 10000);
65+
setTimeout(controlZ, 20000);

package-lock.json

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@eroc/core",
3-
"version": "2.0.0",
3+
"version": "2.1.0",
44
"main": "dist/core.umd.js",
55
"module": "dist/core.es.js",
66
"description": "Lightweight framework for scalable applications",

src/core.js

+2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
export { Core, ALL, ERROR };
2+
export { startEventRecorder, stopEventRecorder } from "./eventRecorder.js";
3+
export { replayEvents } from "./eventPlayer.js";
24
import EventEmitter from "../node_modules/event-e3/event-e3.js";
35

46

src/eventPlayer.js

+13-6
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,21 @@ const replayEvents = (core, events, options = {}) => {
1111
core.paused = true;
1212
}
1313

14-
if (!sameSpeed) {
15-
events.forEach(event => {
16-
core.moduleEmitDirect(event.name, event.data);
17-
});
18-
core.paused = false;
19-
return;
14+
if (sameSpeed) {
15+
replayEventsSameSpeed(core, events);
16+
} else {
17+
replayEventsInstantly(core, events);
2018
}
19+
};
20+
21+
const replayEventsInstantly = (core, events) => {
22+
events.forEach(event => {
23+
core.moduleEmitDirect(event.name, event.data);
24+
});
25+
core.paused = false;
26+
};
2127

28+
const replayEventsSameSpeed = (core, events) => {
2229
const { length } = events;
2330
let i = 0;
2431
const playNext = () => {

0 commit comments

Comments
 (0)