Skip to content

Commit 8e48029

Browse files
authored
feat(api): improve EventName type definition (#2379)
1 parent b9a9de6 commit 8e48029

File tree

6 files changed

+19
-5
lines changed

6 files changed

+19
-5
lines changed

.changes/improve-api-types.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"api": patch
3+
---
4+
5+
Improve `EventName` type using `type-fest`'s `LiteralUnion`.

tooling/api/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
"rollup": "2.56.1",
6767
"rollup-plugin-terser": "7.0.2",
6868
"tslib": "2.3.0",
69+
"type-fest": "2.0.0",
6970
"typedoc": "0.21.5",
7071
"typedoc-plugin-markdown": "3.10.4",
7172
"typescript": "4.3.5"

tooling/api/src/event.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import { invokeTauriCommand } from './helpers/tauri'
1313
import { emit as emitEvent } from './helpers/event'
1414
import { transformCallback } from './tauri'
15+
import { LiteralUnion } from 'type-fest'
1516

1617
interface Event<T> {
1718
/** Event name */
@@ -22,7 +23,7 @@ interface Event<T> {
2223
payload: T
2324
}
2425

25-
type EventName =
26+
type EventName = LiteralUnion<
2627
| 'tauri://update'
2728
| 'tauri://update-available'
2829
| 'tauri://update-install'
@@ -37,8 +38,9 @@ type EventName =
3738
| 'tauri://menu'
3839
| 'tauri://file-drop'
3940
| 'tauri://file-drop-hover'
40-
| 'tauri://file-drop-cancelled'
41-
| string
41+
| 'tauri://file-drop-cancelled',
42+
string
43+
>
4244

4345
type EventCallback<T> = (event: Event<T>) => void
4446

tooling/api/src/window.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ class WebviewWindowHandle {
249249
): Promise<UnlistenFn> {
250250
if (this._handleTauriEvent(event, handler)) {
251251
return Promise.resolve(() => {
252-
// eslint-disable-next-line security/detect-object-injection
252+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, security/detect-object-injection
253253
const listeners = this.listeners[event]
254254
listeners.splice(listeners.indexOf(handler), 1)
255255
})

tooling/api/tsconfig.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010
},
1111
"declaration": true,
1212
"declarationDir": "dist",
13-
"rootDir": "src"
13+
"rootDir": "src",
14+
"moduleResolution": "node"
1415
},
1516
"include": ["./src"]
1617
}

tooling/api/yarn.lock

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3377,6 +3377,11 @@ type-check@^0.4.0, type-check@~0.4.0:
33773377
dependencies:
33783378
prelude-ls "^1.2.1"
33793379

3380+
type-fest@2.0.0:
3381+
version "2.0.0"
3382+
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.0.0.tgz#e9daf5615e89f6d430f34117f88f4ee2cd5a2725"
3383+
integrity sha512-BoEUnckjP9oiudy3KxlGdudtBAdJQ74Wp7dYwVPkUzBn+cVHOsBXh2zD2jLyqgbuJ1KMNriczZCI7lTBA94dFg==
3384+
33803385
type-fest@^0.20.2:
33813386
version "0.20.2"
33823387
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"

0 commit comments

Comments
 (0)