@oathompsonjones/mini-games 1.0.6 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/TODO.md +6 -0
- package/build/base/board.d.ts +53 -45
- package/build/base/board.js +84 -72
- package/build/base/controller.d.ts +48 -37
- package/build/base/controller.js +32 -26
- package/build/bitBoard/bitBoard.d.ts +37 -34
- package/build/bitBoard/bitBoard.js +15 -12
- package/build/bitBoard/intBitBoard.d.ts +22 -22
- package/build/bitBoard/intBitBoard.js +16 -16
- package/build/bitBoard/longInt.d.ts +47 -40
- package/build/bitBoard/longInt.js +40 -37
- package/build/bitBoard/longIntBitBoard.d.ts +26 -26
- package/build/bitBoard/longIntBitBoard.js +16 -16
- package/build/console.d.ts +2 -3
- package/build/console.js +3 -4
- package/build/games/connect4/board.d.ts +12 -5
- package/build/games/connect4/board.js +12 -6
- package/build/games/connect4/controller.d.ts +18 -11
- package/build/games/connect4/controller.js +20 -12
- package/build/games/tictactoe/board.d.ts +5 -2
- package/build/games/tictactoe/board.js +5 -2
- package/build/games/tictactoe/controller.d.ts +17 -12
- package/build/games/tictactoe/controller.js +19 -13
- package/eslint.config.js +1 -1
- package/package.json +6 -7
- package/patches/eventemitter3@5.0.1.patch +0 -68
|
@@ -9,7 +9,8 @@ import Board from "./board.js";
|
|
|
9
9
|
import Console from "../../console.js";
|
|
10
10
|
/**
|
|
11
11
|
* The default rendering function for TicTacToe.
|
|
12
|
-
* @
|
|
12
|
+
* @template T - The type of the game ID.
|
|
13
|
+
* @param controller - The controller to render.
|
|
13
14
|
*/
|
|
14
15
|
function defaultRender(controller) {
|
|
15
16
|
Console.clear();
|
|
@@ -18,21 +19,26 @@ function defaultRender(controller) {
|
|
|
18
19
|
if (winner !== false)
|
|
19
20
|
Console.writeLine(winner === null ? "It's a tie!" : `Player ${winner + 1} wins!`);
|
|
20
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* A game of TicTacToe.
|
|
24
|
+
* @template T - The type of the game ID.
|
|
25
|
+
*/
|
|
21
26
|
let TicTacToe = class TicTacToe extends Base {
|
|
22
27
|
/**
|
|
23
28
|
* Creates a new TicTacToe game.
|
|
24
|
-
* @param playerOneType The type of player one.
|
|
25
|
-
* @param playerTwoType The type of player two.
|
|
26
|
-
* @param options The options for the game.
|
|
29
|
+
* @param playerOneType - The type of player one (human or CPU).
|
|
30
|
+
* @param playerTwoType - The type of player two (human or CPU).
|
|
31
|
+
* @param options - The options for the game.
|
|
27
32
|
*/
|
|
28
33
|
constructor(playerOneType, playerTwoType, options) {
|
|
29
|
-
super([playerOneType, playerTwoType], new Board(), options
|
|
34
|
+
super([playerOneType, playerTwoType], new Board(), options.renderer ?? defaultRender, options.id, options.onEnd, options.onInvalidInput);
|
|
30
35
|
}
|
|
31
36
|
/**
|
|
32
37
|
* Calculates the CPU's move.
|
|
33
|
-
* @param difficulty The difficulty of the CPU.
|
|
34
|
-
* @param algorithm The algorithm to use.
|
|
38
|
+
* @param difficulty - The difficulty of the CPU.
|
|
39
|
+
* @param algorithm - The algorithm to use.
|
|
35
40
|
* @returns The CPU's move.
|
|
41
|
+
* @throws {Error} An error if the difficulty is invalid.
|
|
36
42
|
*/
|
|
37
43
|
determineCPUMove(difficulty, algorithm = "alphabeta") {
|
|
38
44
|
const { emptyCells } = this.board;
|
|
@@ -53,10 +59,11 @@ let TicTacToe = class TicTacToe extends Base {
|
|
|
53
59
|
}
|
|
54
60
|
/**
|
|
55
61
|
* Finds the optimal move for the current player.
|
|
56
|
-
* @param algorithm The algorithm to use.
|
|
57
|
-
* @param
|
|
58
|
-
* @param randomMove The move to return if the board is empty.
|
|
59
|
-
* @returns The optimal move.
|
|
62
|
+
* @param algorithm - The algorithm to use.
|
|
63
|
+
* @param algorithm.algorithm - The algorithm to use.
|
|
64
|
+
* @param algorithm.randomMove - The move to return if the board is empty.
|
|
65
|
+
* @returns The optimal move for the current player.
|
|
66
|
+
* @throws {Error} An error if the algorithm is invalid.
|
|
60
67
|
*/
|
|
61
68
|
findOptimalMove({ algorithm, randomMove } = { algorithm: "alphabeta", randomMove: { x: 2, y: 2 } }) {
|
|
62
69
|
if (this.board.isEmpty)
|
|
@@ -67,7 +74,6 @@ let TicTacToe = class TicTacToe extends Base {
|
|
|
67
74
|
};
|
|
68
75
|
TicTacToe = __decorate([
|
|
69
76
|
Game
|
|
70
|
-
/** A game of TicTacToe. */
|
|
71
77
|
], TicTacToe);
|
|
72
78
|
export default TicTacToe;
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nYW1lcy90aWN0YWN0b2UvY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxPQUFPLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQztBQUMvQixPQUFPLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUd2Qzs7OztHQUlHO0FBQ0gsU0FBUyxhQUFhLENBQUksVUFBd0I7SUFDOUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hCLE9BQU8sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNwRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztJQUVwQyxJQUFJLE1BQU0sS0FBSyxLQUFLO1FBQ2hCLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxVQUFVLE1BQU0sR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzFGLENBQUM7QUFFRDs7O0dBR0c7QUFFWSxJQUFNLFNBQVMsR0FBZixNQUFNLFNBQWEsU0FBUSxJQUFPO0lBQzdDOzs7OztPQUtHO0lBQ0gsWUFBbUIsYUFBeUIsRUFBRSxhQUF5QixFQUFFLE9BQWtDO1FBQ3ZHLEtBQUssQ0FDRCxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsRUFDOUIsSUFBSSxLQUFLLEVBQUUsRUFDWCxPQUFPLENBQUMsUUFBUSxJQUFJLGFBQWEsRUFDakMsT0FBTyxDQUFDLEVBQUUsRUFDVixPQUFPLENBQUMsS0FBSyxFQUNiLE9BQU8sQ0FBQyxjQUFjLENBQ3pCLENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksZ0JBQWdCLENBQUMsVUFBcUMsRUFBRSxZQUF1QixXQUFXO1FBQzdGLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ2xDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUUsQ0FBQztRQUM5RSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFFcEUsUUFBUSxVQUFVLEVBQUUsQ0FBQztZQUNqQixLQUFLLGVBQWU7Z0JBQ2hCLE9BQU8sV0FBVyxDQUFDO1lBQ3ZCLEtBQUssU0FBUztnQkFDVixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1lBQzFELEtBQUssV0FBVztnQkFDWixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1lBQzFELEtBQUssU0FBUztnQkFDVixPQUFPLFVBQVUsQ0FBQztZQUN0QjtnQkFDSSxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDL0MsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksZUFBZSxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsS0FHMUMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3RELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPO1lBQ2xCLE9BQU8sVUFBVSxDQUFDO1FBRXRCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBRWxDLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQztJQUN4QixDQUFDO0NBQ0osQ0FBQTtBQS9Eb0IsU0FBUztJQUQ3QixJQUFJO0dBQ2dCLFNBQVMsQ0ErRDdCO2VBL0RvQixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBbGdvcml0aG0sIEdhbWVDb25zdHJ1Y3Rvck9wdGlvbnMsIFBsYXllclR5cGUgfSBmcm9tIFwiLi4vLi4vYmFzZS9jb250cm9sbGVyLmpzXCI7XG5pbXBvcnQgQmFzZSwgeyBHYW1lIH0gZnJvbSBcIi4uLy4uL2Jhc2UvY29udHJvbGxlci5qc1wiO1xuaW1wb3J0IEJvYXJkIGZyb20gXCIuL2JvYXJkLmpzXCI7XG5pbXBvcnQgQ29uc29sZSBmcm9tIFwiLi4vLi4vY29uc29sZS5qc1wiO1xuaW1wb3J0IHR5cGUgeyBQb3NpdGlvbiB9IGZyb20gXCIuLi8uLi9iYXNlL2JvYXJkLmpzXCI7XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgcmVuZGVyaW5nIGZ1bmN0aW9uIGZvciBUaWNUYWNUb2UuXG4gKiBAdGVtcGxhdGUgVCAtIFRoZSB0eXBlIG9mIHRoZSBnYW1lIElELlxuICogQHBhcmFtIGNvbnRyb2xsZXIgLSBUaGUgY29udHJvbGxlciB0byByZW5kZXIuXG4gKi9cbmZ1bmN0aW9uIGRlZmF1bHRSZW5kZXI8VD4oY29udHJvbGxlcjogVGljVGFjVG9lPFQ+KTogdm9pZCB7XG4gICAgQ29uc29sZS5jbGVhcigpO1xuICAgIENvbnNvbGUud3JpdGVMaW5lKGNvbnRyb2xsZXIuYm9hcmQudG9TdHJpbmcoZmFsc2UpKTtcbiAgICBjb25zdCB7IHdpbm5lciB9ID0gY29udHJvbGxlci5ib2FyZDtcblxuICAgIGlmICh3aW5uZXIgIT09IGZhbHNlKVxuICAgICAgICBDb25zb2xlLndyaXRlTGluZSh3aW5uZXIgPT09IG51bGwgPyBcIkl0J3MgYSB0aWUhXCIgOiBgUGxheWVyICR7d2lubmVyICsgMX0gd2lucyFgKTtcbn1cblxuLyoqXG4gKiBBIGdhbWUgb2YgVGljVGFjVG9lLlxuICogQHRlbXBsYXRlIFQgLSBUaGUgdHlwZSBvZiB0aGUgZ2FtZSBJRC5cbiAqL1xuQEdhbWVcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRpY1RhY1RvZTxUPiBleHRlbmRzIEJhc2U8VD4ge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgVGljVGFjVG9lIGdhbWUuXG4gICAgICogQHBhcmFtIHBsYXllck9uZVR5cGUgLSBUaGUgdHlwZSBvZiBwbGF5ZXIgb25lIChodW1hbiBvciBDUFUpLlxuICAgICAqIEBwYXJhbSBwbGF5ZXJUd29UeXBlIC0gVGhlIHR5cGUgb2YgcGxheWVyIHR3byAoaHVtYW4gb3IgQ1BVKS5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgZ2FtZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocGxheWVyT25lVHlwZTogUGxheWVyVHlwZSwgcGxheWVyVHdvVHlwZTogUGxheWVyVHlwZSwgb3B0aW9uczogR2FtZUNvbnN0cnVjdG9yT3B0aW9uczxUPikge1xuICAgICAgICBzdXBlcihcbiAgICAgICAgICAgIFtwbGF5ZXJPbmVUeXBlLCBwbGF5ZXJUd29UeXBlXSxcbiAgICAgICAgICAgIG5ldyBCb2FyZCgpLFxuICAgICAgICAgICAgb3B0aW9ucy5yZW5kZXJlciA/PyBkZWZhdWx0UmVuZGVyLFxuICAgICAgICAgICAgb3B0aW9ucy5pZCxcbiAgICAgICAgICAgIG9wdGlvbnMub25FbmQsXG4gICAgICAgICAgICBvcHRpb25zLm9uSW52YWxpZElucHV0LFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdGhlIENQVSdzIG1vdmUuXG4gICAgICogQHBhcmFtIGRpZmZpY3VsdHkgLSBUaGUgZGlmZmljdWx0eSBvZiB0aGUgQ1BVLlxuICAgICAqIEBwYXJhbSBhbGdvcml0aG0gLSBUaGUgYWxnb3JpdGhtIHRvIHVzZS5cbiAgICAgKiBAcmV0dXJucyBUaGUgQ1BVJ3MgbW92ZS5cbiAgICAgKiBAdGhyb3dzIHtFcnJvcn0gQW4gZXJyb3IgaWYgdGhlIGRpZmZpY3VsdHkgaXMgaW52YWxpZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGV0ZXJtaW5lQ1BVTW92ZShkaWZmaWN1bHR5OiBPbWl0PFBsYXllclR5cGUsIFwiaHVtYW5cIj4sIGFsZ29yaXRobTogQWxnb3JpdGhtID0gXCJhbHBoYWJldGFcIik6IFBvc2l0aW9uIHtcbiAgICAgICAgY29uc3QgeyBlbXB0eUNlbGxzIH0gPSB0aGlzLmJvYXJkO1xuICAgICAgICBjb25zdCByYW5kb21Nb3ZlID0gZW1wdHlDZWxsc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBlbXB0eUNlbGxzLmxlbmd0aCldITtcbiAgICAgICAgY29uc3Qgb3B0aW1hbE1vdmUgPSB0aGlzLmZpbmRPcHRpbWFsTW92ZSh7IGFsZ29yaXRobSwgcmFuZG9tTW92ZSB9KTtcblxuICAgICAgICBzd2l0Y2ggKGRpZmZpY3VsdHkpIHtcbiAgICAgICAgICAgIGNhc2UgXCJpbXBvc3NpYmxlQ1BVXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGltYWxNb3ZlO1xuICAgICAgICAgICAgY2FzZSBcImhhcmRDUFVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5yYW5kb20oKSA8IDAuOCA/IG9wdGltYWxNb3ZlIDogcmFuZG9tTW92ZTtcbiAgICAgICAgICAgIGNhc2UgXCJtZWRpdW1DUFVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5yYW5kb20oKSA8IDAuNSA/IG9wdGltYWxNb3ZlIDogcmFuZG9tTW92ZTtcbiAgICAgICAgICAgIGNhc2UgXCJlYXN5Q1BVXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJhbmRvbU1vdmU7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgZGlmZmljdWx0eS5cIik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGaW5kcyB0aGUgb3B0aW1hbCBtb3ZlIGZvciB0aGUgY3VycmVudCBwbGF5ZXIuXG4gICAgICogQHBhcmFtIGFsZ29yaXRobSAtIFRoZSBhbGdvcml0aG0gdG8gdXNlLlxuICAgICAqIEBwYXJhbSBhbGdvcml0aG0uYWxnb3JpdGhtIC0gVGhlIGFsZ29yaXRobSB0byB1c2UuXG4gICAgICogQHBhcmFtIGFsZ29yaXRobS5yYW5kb21Nb3ZlIC0gVGhlIG1vdmUgdG8gcmV0dXJuIGlmIHRoZSBib2FyZCBpcyBlbXB0eS5cbiAgICAgKiBAcmV0dXJucyBUaGUgb3B0aW1hbCBtb3ZlIGZvciB0aGUgY3VycmVudCBwbGF5ZXIuXG4gICAgICogQHRocm93cyB7RXJyb3J9IEFuIGVycm9yIGlmIHRoZSBhbGdvcml0aG0gaXMgaW52YWxpZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZmluZE9wdGltYWxNb3ZlKHsgYWxnb3JpdGhtLCByYW5kb21Nb3ZlIH06IHtcbiAgICAgICAgYWxnb3JpdGhtOiBBbGdvcml0aG07XG4gICAgICAgIHJhbmRvbU1vdmU6IFBvc2l0aW9uO1xuICAgIH0gPSB7IGFsZ29yaXRobTogXCJhbHBoYWJldGFcIiwgcmFuZG9tTW92ZTogeyB4OiAyLCB5OiAyIH0gfSk6IFBvc2l0aW9uIHtcbiAgICAgICAgaWYgKHRoaXMuYm9hcmQuaXNFbXB0eSlcbiAgICAgICAgICAgIHJldHVybiByYW5kb21Nb3ZlO1xuXG4gICAgICAgIGNvbnN0IG1pbmltYXggPSB0aGlzW2FsZ29yaXRobV0oKTtcblxuICAgICAgICByZXR1cm4gbWluaW1heC5tb3ZlO1xuICAgIH1cbn1cbiJdfQ==
|
package/eslint.config.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oathompsonjones/mini-games",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.9",
|
|
4
4
|
"description": "A selection of MiniGames. You will soon be able to play these games on [my website](https://oathompsonjones.co.uk/arcade).",
|
|
5
5
|
"repository": {
|
|
6
6
|
"url": "https://github.com/oathompsonjones/MiniGames.git"
|
|
@@ -12,14 +12,13 @@
|
|
|
12
12
|
"author": "oathompsonjones",
|
|
13
13
|
"license": "MIT",
|
|
14
14
|
"devDependencies": {
|
|
15
|
-
"@oathompsonjones/eslint-config": "^1.
|
|
16
|
-
"@oathompsonjones/ts-config": "^0.0.
|
|
17
|
-
"@types/node": "^
|
|
18
|
-
"typescript": "^5.
|
|
19
|
-
"vitest": "^1.2.2"
|
|
15
|
+
"@oathompsonjones/eslint-config": "^1.5.5",
|
|
16
|
+
"@oathompsonjones/ts-config": "^0.0.35",
|
|
17
|
+
"@types/node": "^25.3.3",
|
|
18
|
+
"typescript": "^5.9.3"
|
|
20
19
|
},
|
|
21
20
|
"dependencies": {
|
|
22
|
-
"eventemitter3": "^5.0.
|
|
21
|
+
"eventemitter3": "^5.0.4"
|
|
23
22
|
},
|
|
24
23
|
"scripts": {
|
|
25
24
|
"lint": "eslint .",
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
diff --git a/index.d.ts b/index.d.ts
|
|
2
|
-
index fab37fd606a62cd2dc81ff0b8007a26447916438..f020700e65e7de0ba58c51a08eea54da505b07a9 100644
|
|
3
|
-
--- a/index.d.ts
|
|
4
|
-
+++ b/index.d.ts
|
|
5
|
-
@@ -81,7 +81,7 @@ declare class EventEmitter<
|
|
6
|
-
|
|
7
|
-
declare namespace EventEmitter {
|
|
8
|
-
export interface ListenerFn<Args extends any[] = any[]> {
|
|
9
|
-
- (...args: Args): void;
|
|
10
|
-
+ (...args: Args): any;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export interface EventEmitterStatic {
|
|
14
|
-
@@ -96,7 +96,7 @@ declare namespace EventEmitter {
|
|
15
|
-
* ```
|
|
16
|
-
* interface EventTypes {
|
|
17
|
-
* 'event-with-parameters': any[]
|
|
18
|
-
- * 'event-with-example-handler': (...args: any[]) => void
|
|
19
|
-
+ * 'event-with-example-handler': (...args: any[]) => any
|
|
20
|
-
* }
|
|
21
|
-
* ```
|
|
22
|
-
*/
|
|
23
|
-
@@ -107,7 +107,7 @@ declare namespace EventEmitter {
|
|
24
|
-
: keyof T;
|
|
25
|
-
|
|
26
|
-
export type ArgumentMap<T extends object> = {
|
|
27
|
-
- [K in keyof T]: T[K] extends (...args: any[]) => void
|
|
28
|
-
+ [K in keyof T]: T[K] extends (...args: any[]) => any
|
|
29
|
-
? Parameters<T[K]>
|
|
30
|
-
: T[K] extends any[]
|
|
31
|
-
? T[K]
|
|
32
|
-
@@ -118,10 +118,10 @@ declare namespace EventEmitter {
|
|
33
|
-
T extends ValidEventTypes,
|
|
34
|
-
K extends EventNames<T>
|
|
35
|
-
> = T extends string | symbol
|
|
36
|
-
- ? (...args: any[]) => void
|
|
37
|
-
+ ? (...args: any[]) => any
|
|
38
|
-
: (
|
|
39
|
-
...args: ArgumentMap<Exclude<T, string | symbol>>[Extract<K, keyof T>]
|
|
40
|
-
- ) => void;
|
|
41
|
-
+ ) => any;
|
|
42
|
-
|
|
43
|
-
export type EventArgs<
|
|
44
|
-
T extends ValidEventTypes,
|
|
45
|
-
diff --git a/node_modules/.vitest/deps/_metadata.json b/node_modules/.vitest/deps/_metadata.json
|
|
46
|
-
new file mode 100644
|
|
47
|
-
index 0000000000000000000000000000000000000000..2fd1ba52f100dc9c1f021bd113efc6619f56ce18
|
|
48
|
-
--- /dev/null
|
|
49
|
-
+++ b/node_modules/.vitest/deps/_metadata.json
|
|
50
|
-
@@ -0,0 +1,8 @@
|
|
51
|
-
+{
|
|
52
|
-
+ "hash": "23f13a44",
|
|
53
|
-
+ "configHash": "8c6e2c97",
|
|
54
|
-
+ "lockfileHash": "e3b0c442",
|
|
55
|
-
+ "browserHash": "6a74185e",
|
|
56
|
-
+ "optimized": {},
|
|
57
|
-
+ "chunks": {}
|
|
58
|
-
+}
|
|
59
|
-
|
|
60
|
-
diff --git a/node_modules/.vitest/deps/package.json b/node_modules/.vitest/deps/package.json
|
|
61
|
-
new file mode 100644
|
|
62
|
-
index 0000000000000000000000000000000000000000..3dbc1ca591c0557e35b6004aeba250e6a70b56e3
|
|
63
|
-
--- /dev/null
|
|
64
|
-
+++ b/node_modules/.vitest/deps/package.json
|
|
65
|
-
@@ -0,0 +1,3 @@
|
|
66
|
-
+{
|
|
67
|
-
+ "type": "module"
|
|
68
|
-
+}
|