misskey-dev / misskey

🌎 An interplanetary microblogging platform 🚀
https://misskey-hub.net/
GNU Affero General Public License v3.0
9.83k stars 1.33k forks source link

docs: エラー形式についてCONTRIBUTING.mdに書く #14493

Open KisaragiEffective opened 1 week ago

KisaragiEffective commented 1 week ago
  1. エンドポイントから直接throwされるエラーはApiErrorのみに限定
  2. Endpointmetaerrorsプロパティが存在する場合、そのプロパティのvaluesのidはUUIDv4でなければならない
    • node -e 'console.log(crypto.randomUUID())' することで生成可能
  3. 異なるエラーについては異なるUUIDを割り当てる
    • 現状の「規約」では違うUUID⇔違うエラーであることを示唆しているように思えるため、それを明確化

上記はIdentifiableErrorにも適用される

KisaragiEffective commented 1 week ago

参考 (https://github.com/KisaragiEffective/misskey-api-portiere):

/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/reset-db.ts:41 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/reset-password.ts:52 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/admin/reset-password.ts:58 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/admin/reset-password.ts:62 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/admin/show-user.ts:210 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/admin/show-user.ts:218 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/admin/suspend-user.ts:42 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/admin/suspend-user.ts:46 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/admin/unset-user-avatar.ts:41 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/admin/unset-user-banner.ts:41 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/admin/unsuspend-user.ts:40 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/admin/update-user-note.ts:44 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/antennas/create.ts:90 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/hashtags/users.ts:51 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/i/change-password.ts:43 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/i/change-password.ts:49 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/i/change-password.ts:56 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/i/delete-account.ts:47 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/i/delete-account.ts:53 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/i/delete-account.ts:64 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/i/regenerate-token.ts:49 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/i/update-email.ts:88 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/i/update-email.ts:94 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/notes/search-by-tag.ts:89 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/notes/search-by-tag.ts:96 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/admin/accounts/create.ts:55 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/admin/accounts/delete.ts:42 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/admin/accounts/delete.ts:46 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/admin/emoji/copy.ts:81 : invalid constructor argument: arguments are not supplied from call site
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/admin/emoji/update.ts:91 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts:42 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/admin/federation/update-instance.ts:46 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/admin/relays/add.ts:70 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/drive/files/create.ts:118 : invalid constructor argument: arguments are not supplied from call site
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/gallery/posts/create.ts:75 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/gallery/posts/update.ts:76 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/i/2fa/done.ts:56 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/i/2fa/done.ts:67 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/i/2fa/key-done.ts:79 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/i/2fa/key-done.ts:85 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/i/2fa/register-key.ts:210 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/i/2fa/register-key.ts:216 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/i/2fa/register.ts:70 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/i/2fa/register.ts:76 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/i/2fa/remove-key.ts:59 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/i/2fa/remove-key.ts:65 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/i/2fa/unregister.ts:55 : instance of Error is thrown instead of APIError
/home/kisaragi/WebstormProjects/misskey/packages/backend/src/server/api/endpoints/i/2fa/unregister.ts:61 : instance of Error is thrown instead of APIError