diff options
| author | おさむのひと <46447427+samunohito@users.noreply.github.com> | 2023-12-02 21:00:05 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-02 21:00:05 +0900 |
| commit | 336416261a0a9f46467f90e93854d81ca01292d9 (patch) | |
| tree | 8ae444f178513fce8f29c2ad3366d5cac71fdb41 /packages/frontend/src/scripts/api.ts | |
| parent | fix: #12544 (#12545) (diff) | |
| download | misskey-336416261a0a9f46467f90e93854d81ca01292d9.tar.gz misskey-336416261a0a9f46467f90e93854d81ca01292d9.tar.bz2 misskey-336416261a0a9f46467f90e93854d81ca01292d9.zip | |
バックエンドが生成するapi.jsonからmisskey-jsの型を作成する (#12434)
* ひとまず生成できるところまで
* ファイル構成整理
* 生成コマンド整理
* misskey-jsへの組み込み
* fix generator.ts
* wip
* fix generator.ts
* fix package.json
* 生成ロジックの調整
* 型レベルでのswitch-case機構をmisskey-jsからfrontendに持ち込めるようにした
* 型チェック用のtsconfig.jsonを作成
* 他のエンドポイントを呼ぶ関数にも適用
* 未使用エンティティなどを削除
* misskey-js側で手動定義されていた型を自動生成された型に移行(ただしapi.jsonがvalidでなくなってしまったので後で修正する)
* messagingは廃止されている(テストのビルドエラー解消)
* validなapi.jsonを出力できるように修正
* 修正漏れ対応
* Ajvに怒られて起動できなかったところを修正
* fix ci(途中)
* パラメータenumをやめる
* add command
* add api.json
* 都度自動生成をやめる
* 一気通貫スクリプト修正
* fix ci
* 生成ロジック修正
* フロントの型チェックは結局やらなかったので戻しておく
* fix pnpm-lock.yaml
* add README.md
---------
Co-authored-by: osamu <46447427+sam-osamu@users.noreply.github.com>
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
Diffstat (limited to 'packages/frontend/src/scripts/api.ts')
| -rw-r--r-- | packages/frontend/src/scripts/api.ts | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/packages/frontend/src/scripts/api.ts b/packages/frontend/src/scripts/api.ts index 080977e5e4..0f54f779a6 100644 --- a/packages/frontend/src/scripts/api.ts +++ b/packages/frontend/src/scripts/api.ts @@ -10,7 +10,12 @@ import { $i } from '@/account.js'; export const pendingApiRequestsCount = ref(0); // Implements Misskey.api.ApiClient.request -export function api<E extends keyof Misskey.Endpoints, P extends Misskey.Endpoints[E]['req']>(endpoint: E, data: P = {} as any, token?: string | null | undefined, signal?: AbortSignal): Promise<Misskey.Endpoints[E]['res']> { +export function api<E extends keyof Misskey.Endpoints, P extends Misskey.Endpoints[E]['req']>( + endpoint: E, + data: P = {} as any, + token?: string | null | undefined, + signal?: AbortSignal, +): Promise<Misskey.api.SwitchCaseResponseType<E, P>> { if (endpoint.includes('://')) throw new Error('invalid endpoint'); pendingApiRequestsCount.value++; @@ -51,7 +56,12 @@ export function api<E extends keyof Misskey.Endpoints, P extends Misskey.Endpoin return promise; } -export function apiExternal<E extends keyof Misskey.Endpoints, P extends Misskey.Endpoints[E]['req']>(hostUrl: string, endpoint: E, data: P = {} as any, token?: string | null | undefined, signal?: AbortSignal): Promise<Misskey.Endpoints[E]['res']> { +export function apiExternal<E extends keyof Misskey.Endpoints, P extends Misskey.Endpoints[E]['req']>( + hostUrl: string, + endpoint: E, data: P = {} as any, + token?: string | null | undefined, + signal?: AbortSignal, +): Promise<Misskey.api.SwitchCaseResponseType<E, P>> { if (!/^https?:\/\//.test(hostUrl)) throw new Error('invalid host name'); if (endpoint.includes('://')) throw new Error('invalid endpoint'); pendingApiRequestsCount.value++; @@ -95,7 +105,10 @@ export function apiExternal<E extends keyof Misskey.Endpoints, P extends Misskey } // Implements Misskey.api.ApiClient.request -export function apiGet <E extends keyof Misskey.Endpoints, P extends Misskey.Endpoints[E]['req']>(endpoint: E, data: P = {} as any): Promise<Misskey.Endpoints[E]['res']> { +export function apiGet<E extends keyof Misskey.Endpoints, P extends Misskey.Endpoints[E]['req']>( + endpoint: E, + data: P = {} as any, +): Promise<Misskey.api.SwitchCaseResponseType<E, P>> { pendingApiRequestsCount.value++; const onFinally = () => { |