Skip to content

Commit 9c04f66

Browse files
committed
feat: Support declaration merging in v1 REST APIs
1 parent 71fa88b commit 9c04f66

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+2080
-1810
lines changed

src/mastodon/rest/client.ts

Lines changed: 40 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type * as v1 from "./v1/index.js";
22
import type * as v2 from "./v2/index.js";
33

4-
interface V2Resource {
4+
export interface V2Resource {
55
filters: v2.FiltersResource;
66
instance: v2.InstanceResource;
77
media: v2.MediaAttachmentsResource;
@@ -10,43 +10,45 @@ interface V2Resource {
1010
search: v2.SearchResource;
1111
}
1212

13+
export interface V1Resource {
14+
admin: v1.AdminResource;
15+
accounts: v1.AccountsResource;
16+
announcements: v1.AnnouncementsResource;
17+
apps: v1.AppsResource;
18+
blocks: v1.BlocksResource;
19+
bookmarks: v1.BookmarksResource;
20+
conversations: v1.ConversationsResource;
21+
customEmojis: v1.CustomEmojisResource;
22+
directory: v1.DirectoryResource;
23+
domainBlocks: v1.DomainBlocksResource;
24+
endorsements: v1.EndorsementsResource;
25+
favourites: v1.FavouritesResource;
26+
featuredTags: v1.FeaturedTagsResource;
27+
filters: v1.FiltersResource;
28+
followRequests: v1.FollowRequestsResource;
29+
instance: v1.InstanceResource;
30+
lists: v1.ListsResource;
31+
markers: v1.MarkersResource;
32+
media: v1.MediaAttachmentsResource;
33+
mutes: v1.MuteResource;
34+
notifications: v1.NotificationsResource;
35+
polls: v1.PollsResource;
36+
preferences: v1.PreferencesResource;
37+
reports: v1.ReportsResource;
38+
scheduledStatuses: v1.ScheduledStatusesResource;
39+
search: v1.SearchResource;
40+
statuses: v1.StatusesResource;
41+
suggestions: v1.SuggestionsResource;
42+
timelines: v1.TimelinesResource;
43+
trends: v1.TrendsResource;
44+
emails: v1.EmailsResource;
45+
tags: v1.TagsResource;
46+
followedTags: v1.FollowedTagsResource;
47+
push: v1.PushResource;
48+
profile: v1.ProfileResource;
49+
}
50+
1351
export interface Client {
14-
readonly v1: {
15-
readonly admin: v1.AdminRepository;
16-
readonly accounts: v1.AccountRepository;
17-
readonly announcements: v1.AnnouncementRepository;
18-
readonly apps: v1.AppRepository;
19-
readonly blocks: v1.BlockRepository;
20-
readonly bookmarks: v1.BookmarkRepository;
21-
readonly conversations: v1.ConversationRepository;
22-
readonly customEmojis: v1.CustomEmojiRepository;
23-
readonly directory: v1.DirectoryRepository;
24-
readonly domainBlocks: v1.DomainBlockRepository;
25-
readonly endorsements: v1.EndorsementRepository;
26-
readonly favourites: v1.FavouriteRepository;
27-
readonly featuredTags: v1.FeaturedTagRepository;
28-
readonly filters: v1.FilterRepository;
29-
readonly followRequests: v1.FollowRequestRepository;
30-
readonly instance: v1.InstanceRepository;
31-
readonly lists: v1.ListRepository;
32-
readonly markers: v1.MarkerRepository;
33-
readonly media: v1.MediaAttachmentRepository;
34-
readonly mutes: v1.MuteRepository;
35-
readonly notifications: v1.NotificationRepository;
36-
readonly polls: v1.PollRepository;
37-
readonly preferences: v1.PreferenceRepository;
38-
readonly reports: v1.ReportRepository;
39-
readonly scheduledStatuses: v1.ScheduledStatusRepository;
40-
readonly search: v1.SearchRepository;
41-
readonly statuses: v1.StatusRepository;
42-
readonly suggestions: v1.SuggestionRepository;
43-
readonly timelines: v1.TimelineRepository;
44-
readonly trends: v1.TrendRepository;
45-
readonly emails: v1.EmailRepository;
46-
readonly tags: v1.TagRepository;
47-
readonly followedTags: v1.FollowedTagRepository;
48-
readonly push: v1.PushRepository;
49-
readonly profile: v1.ProfileRepository;
50-
};
52+
v1: V1Resource;
5153
v2: V2Resource;
5254
}

0 commit comments

Comments
 (0)