Skip to content

Commit 4dbb22c

Browse files
committed
Update timer module
1 parent 12ba6f3 commit 4dbb22c

8 files changed

Lines changed: 328 additions & 413 deletions

File tree

scripts/timers/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
*.js

scripts/timers/README.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Timers module
2+
3+
`setTimeout()`, `setImmediate()`, and `setInterval()` simple replica for Minecraft Bedrock Edition script APIs (experimental).
4+
5+
## Usage
6+
7+
```js
8+
import { setTimeout } from "./timers.js";
9+
10+
setTimeout(() => {
11+
console.log("Hello World");
12+
}, 1000);
13+
```
14+
15+
## Compile & Test
16+
17+
### Compile only
18+
19+
```
20+
tsc
21+
```
22+
23+
### Unit test (include tsc)
24+
25+
```
26+
npm run test
27+
```

scripts/timers/package.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"type": "module",
3+
"name": "timers",
4+
"version": "1.1.0",
5+
"main": "timers.js",
6+
"scripts": {
7+
"test": "tsc && node timers-test.js"
8+
},
9+
"keywords": [],
10+
"author": "",
11+
"license": "MIT",
12+
"description": ""
13+
}

scripts/timers/timers-test.ts

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import {
2+
setTimeout, setImmediate, setInterval,
3+
clearImmediate, clearInterval, clearTimeout
4+
} from "./timers.js";
5+
import { world } from "mojang-minecraft";
6+
7+
function stdout (...data: any[]): any {
8+
return world.getDimension("overworld").runCommand(`say §r` + data.join(" "));
9+
};
10+
function stderr (...data: any[]): any {
11+
return world.getDimension("overworld").runCommand(`say §c` + data.join(" "));
12+
};
13+
14+
// timeout test
15+
setTimeout(function (arg, arg1) {
16+
stdout("arg", arg, "arg1", arg1);
17+
}, 1000, "hello", "world", 1);
18+
19+
stdout("setTimeout passed");
20+
21+
// cleartimeout test
22+
let timeout2 = setTimeout(function () {
23+
stderr("clearTimeout failed");
24+
}, 1000);
25+
26+
clearTimeout(timeout2);
27+
28+
stdout("clearTimeout passed");
29+
30+
// setinterval test
31+
let interval = setInterval(function (arg, arg1) {
32+
stdout("arg", arg, "arg1", arg1);
33+
}, 1000, "set", "interval", 1);
34+
35+
stdout("setTimeout passed");
36+
37+
// clearinterval test
38+
interval._onTimeout = () => {
39+
stderr("clearInterval failed");
40+
};
41+
clearInterval(interval);
42+
43+
stdout("clearInterval passed");
44+
45+
// setimmediate test
46+
setImmediate(function () {
47+
stdout("setImmediate passed");
48+
});
49+
50+
// clearimmediate test
51+
let immediate = setImmediate(function () {
52+
stderr("setImmediate failed");
53+
});
54+
clearImmediate(immediate);
55+
56+
stdout("clearImmediate passed");

scripts/timers/timers.d.ts

Lines changed: 0 additions & 122 deletions
This file was deleted.

0 commit comments

Comments
 (0)