Improve type definition

This commit is contained in:
syuilo 2021-05-31 11:28:17 +09:00
parent d9fbddc26c
commit b1934d95f2
2 changed files with 31 additions and 2 deletions

View file

@ -257,7 +257,7 @@ export type Endpoints = {
'messaging/messages/read': { req: TODO; res: TODO; };
// meta
'meta': { req: { detail?: boolean; }; res: InstanceMetadata; };
'meta': { req: { detail?: boolean; }; res: InstanceMetadata; }; // TODO: 「detail が true なら DetailedInstanceMetadata を返す」のような型付けをしたい
// miauth
'miauth/gen-token': { req: TODO; res: TODO; };

View file

@ -154,7 +154,30 @@ export type MessagingMessage = {
groupId: string; // TODO
};
export type InstanceMetadata = {
export type LiteInstanceMetadata = {
maintainerName: string | null;
maintainerEmail: string | null;
version: string;
name: string | null;
uri: string;
description: string | null;
tosUrl: string | null;
disableRegistration: boolean;
disableLocalTimeline: boolean;
disableGlobalTimeline: boolean;
driveCapacityPerLocalUserMb: number;
driveCapacityPerRemoteUserMb: number;
enableHcaptcha: boolean;
hcaptchaSiteKey: string | null;
enableRecaptcha: boolean;
recaptchaSiteKey: string | null;
swPublickey: string | null;
maxNoteTextLength: number;
enableEmail: boolean;
enableTwitterIntegration: boolean;
enableGithubIntegration: boolean;
enableDiscordIntegration: boolean;
enableServiceWorker: boolean;
emojis: {
id: string;
name: string;
@ -171,6 +194,12 @@ export type InstanceMetadata = {
}[];
};
export type DetailedInstanceMetadata = LiteInstanceMetadata & {
features: Record<string, any>;
};
export type InstanceMetadata = LiteInstanceMetadata | DetailedInstanceMetadata;
export type ServerInfo = {
machine: string;
cpu: {