diff options
| author | Take-John <takejohn@takejohn.jp> | 2025-01-07 21:28:48 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-07 12:28:48 +0000 |
| commit | bbe80af1dde195ff0ac6713db967b556acebb30c (patch) | |
| tree | 075a07368d678125cc0fd0327271823102e3e332 /packages/frontend/src/scripts/misskey-api.ts | |
| parent | fix(frontend): frontend / frontend-embedにあるtsconfig.jsonのmoduleをES2... (diff) | |
| download | misskey-bbe80af1dde195ff0ac6713db967b556acebb30c.tar.gz misskey-bbe80af1dde195ff0ac6713db967b556acebb30c.tar.bz2 misskey-bbe80af1dde195ff0ac6713db967b556acebb30c.zip | |
Fix: aiscriptディレクトリ内の型エラー解消と単体テスト (#15191)
* AiScript APIの型エラーに対処
* AiScript UI APIのテスト作成
* onInputなどがPromiseを返すように
* AiScript共通APIのテスト作成
* CHANGELOG記載
* 定数のテストをconcurrentに
* vi.mockを使用
* misskeyApiをmisskeyApiUntypedのエイリアスとする
* 期待されるエラーメッセージを修正
* Mk:removeのテスト
* misskeyApiの型を変更
Diffstat (limited to 'packages/frontend/src/scripts/misskey-api.ts')
| -rw-r--r-- | packages/frontend/src/scripts/misskey-api.ts | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/packages/frontend/src/scripts/misskey-api.ts b/packages/frontend/src/scripts/misskey-api.ts index e7a92e2d5c..dc07ad477b 100644 --- a/packages/frontend/src/scripts/misskey-api.ts +++ b/packages/frontend/src/scripts/misskey-api.ts @@ -9,12 +9,24 @@ import { apiUrl } from '@@/js/config.js'; import { $i } from '@/account.js'; export const pendingApiRequestsCount = ref(0); +export type Endpoint = keyof Misskey.Endpoints; + +export type Request<E extends Endpoint> = Misskey.Endpoints[E]['req']; + +export type AnyRequest<E extends Endpoint | (string & unknown)> = + (E extends Endpoint ? Request<E> : never) | object; + +export type Response<E extends Endpoint | (string & unknown), P extends AnyRequest<E>> = + E extends Endpoint + ? P extends Request<E> ? Misskey.api.SwitchCaseResponseType<E, P> : never + : object; + // Implements Misskey.api.ApiClient.request export function misskeyApi< ResT = void, - E extends keyof Misskey.Endpoints = keyof Misskey.Endpoints, - P extends Misskey.Endpoints[E]['req'] = Misskey.Endpoints[E]['req'], - _ResT = ResT extends void ? Misskey.api.SwitchCaseResponseType<E, P> : ResT, + E extends Endpoint | NonNullable<string> = Endpoint, + P extends AnyRequest<E> = E extends Endpoint ? Request<E> : never, + _ResT = ResT extends void ? Response<E, P> : ResT, >( endpoint: E, data: P & { i?: string | null; } = {} as any, |