Skip to content

Commit

Permalink
Merge pull request #78 from mauriciosoares/simplify
Browse files Browse the repository at this point in the history
Simplify
  • Loading branch information
GrosSacASac authored Jan 23, 2020
2 parents 8177b76 + 0a515d1 commit 8d7e8ff
Show file tree
Hide file tree
Showing 7 changed files with 43 additions and 16 deletions.
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,10 @@ You need [NodeJS](https://nodejs.org/) installed on your machine

## Changelog

### 2.1.0

* eventPlayer, eventRecorder optionals are importable directly from the core

### 2.0.0

* core.start, core.stop return Promises
Expand Down
2 changes: 2 additions & 0 deletions examples/replay/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
</li>
</ul>

<button id="undo">Undo</button>

<script type="module" src="./main.js"></script>
</body>
</html>
28 changes: 20 additions & 8 deletions examples/replay/main.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { Core, ALL } from "../../src/core.js";
import {
import {
Core,
ALL,
startEventRecorder,
stopEventRecorder,
} from "../../src/eventRecorder.js";
import { replayEvents } from "../../src/eventPlayer.js";
replayEvents,
} from "../../src/core.js";
// import { } from "./eventNames.js";
// import { x, y } from "./dependencies.js";
// import { configuration } from "./configuration.js";
Expand Down Expand Up @@ -44,10 +45,21 @@ const restart = async () => {
];
};

restart();

setTimeout(async () => {
const replay = async () => {
const previousEvents = eventRecording.events;
await restart();
replayEvents(core, previousEvents, { sameSpeed: true });
}, 10000);
};
const controlZ = async () => {
const previousEvents = eventRecording.events;
previousEvents.pop(); // forget last
await restart();
replayEvents(core, previousEvents, { sameSpeed: false });
};

document.getElementById(`undo`).addEventListener(`click`, controlZ);

restart();

setTimeout(replay, 10000);
setTimeout(controlZ, 20000);
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@eroc/core",
"version": "2.0.0",
"version": "2.1.0",
"main": "dist/core.umd.js",
"module": "dist/core.es.js",
"description": "Lightweight framework for scalable applications",
Expand Down
2 changes: 2 additions & 0 deletions src/core.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
export { Core, ALL, ERROR };
export { startEventRecorder, stopEventRecorder } from "./eventRecorder.js";
export { replayEvents } from "./eventPlayer.js";
import EventEmitter from "../node_modules/event-e3/event-e3.js";


Expand Down
19 changes: 13 additions & 6 deletions src/eventPlayer.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,21 @@ const replayEvents = (core, events, options = {}) => {
core.paused = true;
}

if (!sameSpeed) {
events.forEach(event => {
core.moduleEmitDirect(event.name, event.data);
});
core.paused = false;
return;
if (sameSpeed) {
replayEventsSameSpeed(core, events);
} else {
replayEventsInstantly(core, events);
}
};

const replayEventsInstantly = (core, events) => {
events.forEach(event => {
core.moduleEmitDirect(event.name, event.data);
});
core.paused = false;
};

const replayEventsSameSpeed = (core, events) => {
const { length } = events;
let i = 0;
const playNext = () => {
Expand Down

0 comments on commit 8d7e8ff

Please sign in to comment.