summaryrefslogtreecommitdiff
path: root/packages/frontend/src/scripts/misskey-api.ts
diff options
context:
space:
mode:
authorTake-John <takejohn@takejohn.jp>2025-01-07 21:28:48 +0900
committerGitHub <noreply@github.com>2025-01-07 12:28:48 +0000
commitbbe80af1dde195ff0ac6713db967b556acebb30c (patch)
tree075a07368d678125cc0fd0327271823102e3e332 /packages/frontend/src/scripts/misskey-api.ts
parentfix(frontend): frontend / frontend-embedにあるtsconfig.jsonのmoduleをES2... (diff)
downloadmisskey-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.ts18
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,