From 1cc4972760475ac13a5b938ab3040328d5b09317 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Sun, 1 Jun 2025 16:25:09 +0800 Subject: [PATCH] refactor: replace `eventemitter3` w/ `mitt` --- package.json | 2 +- pnpm-lock.yaml | 11 ++++++++--- src/utils/queue.ts | 8 ++++++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 992d818..b42ef21 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,6 @@ "@headlessui/react": "^1.7.14", "@radix-ui/react-dialog": "^1.0.3", "@radix-ui/react-hover-card": "^1.0.5", - "eventemitter3": "^5.0.1", "hast-util-to-html": "^8.0.4", "html2canvas": "^1.4.1", "i18next": "^22.5.1", @@ -44,6 +43,7 @@ "mdast-util-to-hast": "^12.3.0", "mdast-util-to-markdown": "^1.5.0", "micromark-extension-gfm": "^2.0.3", + "mitt": "^3.0.1", "preact": "^10.17.1", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f3d1a76..2fa40d5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,9 +14,6 @@ dependencies: '@radix-ui/react-hover-card': specifier: ^1.0.5 version: 1.0.5(react-dom@18.3.1)(react@18.3.1) - eventemitter3: - specifier: ^5.0.1 - version: 5.0.1 hast-util-to-html: specifier: ^8.0.4 version: 8.0.4 @@ -50,6 +47,9 @@ dependencies: micromark-extension-gfm: specifier: ^2.0.3 version: 2.0.3 + mitt: + specifier: ^3.0.1 + version: 3.0.1 preact: specifier: ^10.17.1 version: 10.17.1 @@ -2874,6 +2874,7 @@ packages: /eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + dev: true /execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} @@ -4506,6 +4507,10 @@ packages: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: true + /mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + dev: false + /mlly@1.4.2: resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} dependencies: diff --git a/src/utils/queue.ts b/src/utils/queue.ts index 3b6421f..571420f 100644 --- a/src/utils/queue.ts +++ b/src/utils/queue.ts @@ -1,4 +1,4 @@ -import EventEmitter from 'eventemitter3' +import EventEmitter from 'mitt' import { sleep } from './utils' type RequestFn = () => Promise @@ -14,7 +14,11 @@ interface ProgressEvent { } export class RequestQueue { - private eventEmitter = new EventEmitter() + private eventEmitter = EventEmitter<{ + done: T[] + progress: ProgressEvent + } & Record>() + private queue: Array> = [] private results: T[] = []