Add more type info.

This commit is contained in:
Dessalines 2022-06-14 00:42:10 -04:00
parent f2b52372ab
commit 3f0e4ef05d
4 changed files with 18 additions and 5 deletions

View file

@ -1,5 +1,5 @@
import { Option, Some } from "@sniptt/monads"; import { Option, Some } from "@sniptt/monads";
import { Expose, Transform } from "class-transformer"; import { Expose, Transform, Type } from "class-transformer";
import { toUndefined } from "../../utils"; import { toUndefined } from "../../utils";
import { ListingType, SortType } from "../others"; import { ListingType, SortType } from "../others";
import { Site } from "../source"; import { Site } from "../source";
@ -38,6 +38,7 @@ export class GetCommunityResponse {
@Transform(({ value }) => Some(value), { toClassOnly: true }) @Transform(({ value }) => Some(value), { toClassOnly: true })
@Transform(({ value }) => toUndefined(value), { toPlainOnly: true }) @Transform(({ value }) => toUndefined(value), { toPlainOnly: true })
@Expose() @Expose()
@Type(() => Site)
site: Option<Site>; site: Option<Site>;
moderators: CommunityModeratorView[]; moderators: CommunityModeratorView[];
online: number; online: number;

View file

@ -1,5 +1,5 @@
import { Option, Some } from "@sniptt/monads"; import { Option, Some } from "@sniptt/monads";
import { Expose, Transform } from "class-transformer"; import { Expose, Transform, Type } from "class-transformer";
import { toUndefined } from "../../utils"; import { toUndefined } from "../../utils";
import { SortType } from "../others"; import { SortType } from "../others";
import { import {
@ -71,6 +71,7 @@ export class GetCaptchaResponse {
/** /**
* Will be undefined if captchas are disabled. * Will be undefined if captchas are disabled.
*/ */
@Type(() => CaptchaResponse)
@Transform(({ value }) => Some(value), { toClassOnly: true }) @Transform(({ value }) => Some(value), { toClassOnly: true })
@Transform(({ value }) => toUndefined(value), { toPlainOnly: true }) @Transform(({ value }) => toUndefined(value), { toPlainOnly: true })
@Expose() @Expose()

View file

@ -1,5 +1,5 @@
import { Option, Some } from "@sniptt/monads"; import { Option, Some } from "@sniptt/monads";
import { Expose, Transform } from "class-transformer"; import { Expose, Transform, Type } from "class-transformer";
import { toUndefined } from "../../utils"; import { toUndefined } from "../../utils";
import { ListingType, SearchType, SortType } from "../others"; import { ListingType, SearchType, SortType } from "../others";
import { import {
@ -286,6 +286,7 @@ export class GetSiteResponse {
@Transform(({ value }) => Some(value), { toClassOnly: true }) @Transform(({ value }) => Some(value), { toClassOnly: true })
@Transform(({ value }) => toUndefined(value), { toPlainOnly: true }) @Transform(({ value }) => toUndefined(value), { toPlainOnly: true })
@Expose() @Expose()
@Type(() => SiteView)
site_view: Option<SiteView>; site_view: Option<SiteView>;
admins: PersonViewSafe[]; admins: PersonViewSafe[];
online: number; online: number;
@ -296,17 +297,19 @@ export class GetSiteResponse {
@Transform(({ value }) => Some(value), { toClassOnly: true }) @Transform(({ value }) => Some(value), { toClassOnly: true })
@Transform(({ value }) => toUndefined(value), { toPlainOnly: true }) @Transform(({ value }) => toUndefined(value), { toPlainOnly: true })
@Expose() @Expose()
@Type(() => MyUserInfo)
my_user: Option<MyUserInfo>; my_user: Option<MyUserInfo>;
@Transform(({ value }) => Some(value), { toClassOnly: true }) @Transform(({ value }) => Some(value), { toClassOnly: true })
@Transform(({ value }) => toUndefined(value), { toPlainOnly: true }) @Transform(({ value }) => toUndefined(value), { toPlainOnly: true })
@Expose() @Expose()
@Type(() => FederatedInstances)
federated_instances: Option<FederatedInstances>; federated_instances: Option<FederatedInstances>;
} }
/** /**
* Your user info, such as blocks, follows, etc. * Your user info, such as blocks, follows, etc.
*/ */
export interface MyUserInfo { export class MyUserInfo {
local_user_view: LocalUserSettingsView; local_user_view: LocalUserSettingsView;
follows: CommunityFollowerView[]; follows: CommunityFollowerView[];
moderates: CommunityModeratorView[]; moderates: CommunityModeratorView[];
@ -375,18 +378,22 @@ export class ResolveObjectResponse {
@Transform(({ value }) => Some(value), { toClassOnly: true }) @Transform(({ value }) => Some(value), { toClassOnly: true })
@Transform(({ value }) => toUndefined(value), { toPlainOnly: true }) @Transform(({ value }) => toUndefined(value), { toPlainOnly: true })
@Expose() @Expose()
@Type(() => CommentView)
comment: Option<CommentView>; comment: Option<CommentView>;
@Transform(({ value }) => Some(value), { toClassOnly: true }) @Transform(({ value }) => Some(value), { toClassOnly: true })
@Transform(({ value }) => toUndefined(value), { toPlainOnly: true }) @Transform(({ value }) => toUndefined(value), { toPlainOnly: true })
@Expose() @Expose()
@Type(() => PostView)
post: Option<PostView>; post: Option<PostView>;
@Transform(({ value }) => Some(value), { toClassOnly: true }) @Transform(({ value }) => Some(value), { toClassOnly: true })
@Transform(({ value }) => toUndefined(value), { toPlainOnly: true }) @Transform(({ value }) => toUndefined(value), { toPlainOnly: true })
@Expose() @Expose()
@Type(() => CommunityView)
community: Option<CommunityView>; community: Option<CommunityView>;
@Transform(({ value }) => Some(value), { toClassOnly: true }) @Transform(({ value }) => Some(value), { toClassOnly: true })
@Transform(({ value }) => toUndefined(value), { toPlainOnly: true }) @Transform(({ value }) => toUndefined(value), { toPlainOnly: true })
@Expose() @Expose()
@Type(() => PersonViewSafe)
person: Option<PersonViewSafe>; person: Option<PersonViewSafe>;
} }

View file

@ -1,5 +1,5 @@
import { Option, Some } from "@sniptt/monads"; import { Option, Some } from "@sniptt/monads";
import { Expose, Transform } from "class-transformer"; import { Expose, Transform, Type } from "class-transformer";
import { toUndefined } from "../utils"; import { toUndefined } from "../utils";
import { import {
CommentAggregates, CommentAggregates,
@ -103,6 +103,7 @@ export class PostReportView {
@Transform(({ value }) => Some(value), { toClassOnly: true }) @Transform(({ value }) => Some(value), { toClassOnly: true })
@Transform(({ value }) => toUndefined(value), { toPlainOnly: true }) @Transform(({ value }) => toUndefined(value), { toPlainOnly: true })
@Expose() @Expose()
@Type(() => PersonSafe)
resolver: Option<PersonSafe>; resolver: Option<PersonSafe>;
} }
@ -112,6 +113,7 @@ export class CommentView {
@Transform(({ value }) => Some(value), { toClassOnly: true }) @Transform(({ value }) => Some(value), { toClassOnly: true })
@Transform(({ value }) => toUndefined(value), { toPlainOnly: true }) @Transform(({ value }) => toUndefined(value), { toPlainOnly: true })
@Expose() @Expose()
@Type(() => PersonSafe)
recipient: Option<PersonSafe>; recipient: Option<PersonSafe>;
post: Post; post: Post;
community: CommunitySafe; community: CommunitySafe;
@ -142,6 +144,7 @@ export class CommentReportView {
@Transform(({ value }) => Some(value), { toClassOnly: true }) @Transform(({ value }) => Some(value), { toClassOnly: true })
@Transform(({ value }) => toUndefined(value), { toPlainOnly: true }) @Transform(({ value }) => toUndefined(value), { toPlainOnly: true })
@Expose() @Expose()
@Type(() => PersonSafe)
resolver: Option<PersonSafe>; resolver: Option<PersonSafe>;
} }
@ -253,5 +256,6 @@ export class RegistrationApplicationView {
@Transform(({ value }) => Some(value), { toClassOnly: true }) @Transform(({ value }) => Some(value), { toClassOnly: true })
@Transform(({ value }) => toUndefined(value), { toPlainOnly: true }) @Transform(({ value }) => toUndefined(value), { toPlainOnly: true })
@Expose() @Expose()
@Type(() => PersonSafe)
admin: Option<PersonSafe>; admin: Option<PersonSafe>;
} }