anilink-api-wrapper 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/AniLink.js +10 -1
  2. package/dist/apis/anilist/interfaces/Tag.js +2 -0
  3. package/dist/apis/anilist/interfaces/responses/MediaTag.js +2 -0
  4. package/dist/apis/anilist/interfaces/responses/MediaTagCollection.js +2 -0
  5. package/dist/apis/anilist/interfaces/responses/User.js +3 -3
  6. package/dist/apis/anilist/query/GenreCollection.js +32 -0
  7. package/dist/apis/anilist/query/MediaTagCollection.js +35 -0
  8. package/dist/apis/anilist/query/User.js +2 -15
  9. package/dist/apis/anilist/query/Viewer.js +35 -0
  10. package/package.json +3 -2
  11. package/.eslintignore +0 -1
  12. package/.github/workflows/code_quality.yml +0 -32
  13. package/.github/workflows/codeql.yml +0 -33
  14. package/.github/workflows/test.yml +0 -30
  15. package/__tests__/anilist.test.ts +0 -268
  16. package/babel.config.js +0 -6
  17. package/jest.config.js +0 -11
  18. package/src/AniLink.ts +0 -80
  19. package/src/apis/anilist/interfaces/ActivityHistory.ts +0 -5
  20. package/src/apis/anilist/interfaces/CoverImage.ts +0 -15
  21. package/src/apis/anilist/interfaces/Distribution.ts +0 -4
  22. package/src/apis/anilist/interfaces/ExternalLink.ts +0 -13
  23. package/src/apis/anilist/interfaces/Favoured.ts +0 -15
  24. package/src/apis/anilist/interfaces/FuzzyDate.ts +0 -11
  25. package/src/apis/anilist/interfaces/Image.ts +0 -11
  26. package/src/apis/anilist/interfaces/ListScores.ts +0 -4
  27. package/src/apis/anilist/interfaces/Media.ts +0 -59
  28. package/src/apis/anilist/interfaces/MediaListEntry.ts +0 -11
  29. package/src/apis/anilist/interfaces/MediaStatistics.ts +0 -23
  30. package/src/apis/anilist/interfaces/MediaStats.ts +0 -7
  31. package/src/apis/anilist/interfaces/Name.ts +0 -17
  32. package/src/apis/anilist/interfaces/NextAiringEpisode.ts +0 -13
  33. package/src/apis/anilist/interfaces/Ranking.ts +0 -23
  34. package/src/apis/anilist/interfaces/ScoreDistribution.ts +0 -11
  35. package/src/apis/anilist/interfaces/Staff.ts +0 -6
  36. package/src/apis/anilist/interfaces/Stat.ts +0 -24
  37. package/src/apis/anilist/interfaces/Statistics.ts +0 -6
  38. package/src/apis/anilist/interfaces/StatusDistribution.ts +0 -11
  39. package/src/apis/anilist/interfaces/StreamingEpisode.ts +0 -15
  40. package/src/apis/anilist/interfaces/Studio.ts +0 -4
  41. package/src/apis/anilist/interfaces/Tag.ts +0 -20
  42. package/src/apis/anilist/interfaces/Title.ts +0 -15
  43. package/src/apis/anilist/interfaces/Trailer.ts +0 -13
  44. package/src/apis/anilist/interfaces/UserStats.ts +0 -39
  45. package/src/apis/anilist/interfaces/responses/AiringSchedule.ts +0 -22
  46. package/src/apis/anilist/interfaces/responses/Character.ts +0 -50
  47. package/src/apis/anilist/interfaces/responses/Media.ts +0 -322
  48. package/src/apis/anilist/interfaces/responses/MediaList.ts +0 -54
  49. package/src/apis/anilist/interfaces/responses/MediaListCollectionResponse.ts +0 -75
  50. package/src/apis/anilist/interfaces/responses/MediaTrend.ts +0 -28
  51. package/src/apis/anilist/interfaces/responses/Staff.ts +0 -102
  52. package/src/apis/anilist/interfaces/responses/User.ts +0 -432
  53. package/src/apis/anilist/mutation/UpdateUser.ts +0 -162
  54. package/src/apis/anilist/query/AiringSchedule.ts +0 -48
  55. package/src/apis/anilist/query/Character.ts +0 -40
  56. package/src/apis/anilist/query/Media.ts +0 -98
  57. package/src/apis/anilist/query/MediaList.ts +0 -56
  58. package/src/apis/anilist/query/MediaListCollection.ts +0 -47
  59. package/src/apis/anilist/query/MediaTrend.ts +0 -54
  60. package/src/apis/anilist/query/Staff.ts +0 -48
  61. package/src/apis/anilist/query/User.ts +0 -41
  62. package/src/base/APIWrapper.ts +0 -7
  63. package/src/base/RequestHandler.ts +0 -21
  64. package/tsconfig.json +0 -15
@@ -1,432 +0,0 @@
1
- import { Image, ImageSchema } from '../Image'
2
- import { Statistics } from '../Statistics'
3
- import { UserStats, UserAnimeStatsSchema, UserMangaStatsSchema } from '../UserStats'
4
- import { TitleSchema } from '../Title'
5
- import { NameSchema } from '../Name'
6
-
7
- import { CoverImageSchema } from '../CoverImage'
8
-
9
- import { TagSchema } from '../Tag'
10
-
11
- export interface UserResponse {
12
- id: number
13
- name: string
14
- about: string
15
- avatar: Image
16
- bannerImage: string
17
- isFollowing: boolean
18
- isFollower: boolean
19
- isBlocked: boolean
20
- bans: any[]
21
- options: {
22
- titleLanguage: string
23
- displayAdultContent: boolean
24
- airingNotifications: boolean
25
- profileColor: string
26
- notificationOptions: Array<{
27
- type: string
28
- enabled: boolean
29
- }>
30
- timezone: string
31
- activityMergeTime: number
32
- staffNameLanguage: string
33
- restrictMessagesToFollowing: boolean
34
- disabledListActivity: Array<{
35
- disabled: boolean
36
- type: string
37
- }>
38
- }
39
- mediaListOptions: {
40
- scoreFormat: string
41
- rowOrder: string
42
- animeList: {
43
- sectionOrder: string[]
44
- splitCompletedSectionByFormat: boolean
45
- customLists: string[]
46
- advancedScoring: string[]
47
- advancedScoringEnabled: boolean
48
- }
49
- mangaList: {
50
- sectionOrder: string[]
51
- splitCompletedSectionByFormat: boolean
52
- customLists: string[]
53
- advancedScoring: string[]
54
- advancedScoringEnabled: boolean
55
- }
56
- }
57
- favourites: {
58
- anime: any[]
59
- manga: any[]
60
- characters: any[]
61
- staff: any[]
62
- studios: any[]
63
- }
64
- statistics: Statistics
65
- stats: UserStats
66
- unreadNotificationCount: number
67
- siteUrl: string
68
- donatorTier: number
69
- donatorBadge: string
70
- moderatorRoles: string[]
71
- createdAt: number
72
- updatedAt: number
73
- previousNames: Array<{
74
- name: string
75
- createdAt: number
76
- updatedAt: number
77
- }>
78
- }
79
-
80
- export const UserSchema = `
81
- id
82
- name
83
- about(asHtml: $isHTML)
84
- avatar {
85
- large
86
- medium
87
- }
88
- bannerImage
89
- isFollowing
90
- isFollower
91
- isBlocked
92
- bans
93
- options {
94
- titleLanguage
95
- displayAdultContent
96
- airingNotifications
97
- profileColor
98
- notificationOptions {
99
- type
100
- enabled
101
- }
102
- timezone
103
- activityMergeTime
104
- staffNameLanguage
105
- restrictMessagesToFollowing
106
- disabledListActivity {
107
- disabled
108
- type
109
- }
110
- }
111
- mediaListOptions {
112
- scoreFormat
113
- rowOrder
114
- animeList {
115
- sectionOrder
116
- splitCompletedSectionByFormat
117
- customLists
118
- advancedScoring
119
- advancedScoringEnabled
120
- }
121
- mangaList {
122
- sectionOrder
123
- splitCompletedSectionByFormat
124
- customLists
125
- advancedScoring
126
- advancedScoringEnabled
127
- }
128
- }
129
- favourites {
130
- anime (perPage: 50) {
131
- edges {
132
- node {
133
- id
134
- ${TitleSchema}
135
- }
136
- }
137
- nodes {
138
- id
139
- ${TitleSchema}
140
- }
141
- }
142
- manga (perPage: 50) {
143
- edges {
144
- node {
145
- id
146
- ${TitleSchema}
147
- }
148
- }
149
- nodes {
150
- id
151
- ${TitleSchema}
152
- }
153
- }
154
- characters (perPage: 50) {
155
- edges {
156
- id
157
- role
158
- name
159
- voiceActors {
160
- id
161
- ${NameSchema}
162
- ${ImageSchema}
163
- }
164
- media {
165
- id
166
- ${TitleSchema}
167
- ${CoverImageSchema}
168
- }
169
- favouriteOrder
170
- node {
171
- id
172
- ${NameSchema}
173
- ${ImageSchema}
174
- }
175
- }
176
- }
177
- staff (perPage: 50) {
178
- edges {
179
- id
180
- role
181
- favouriteOrder
182
- node {
183
- id
184
- ${NameSchema}
185
- ${ImageSchema}
186
- }
187
- }
188
- }
189
- studios (perPage: 50) {
190
- edges {
191
- id
192
- isMain
193
- favouriteOrder
194
- node {
195
- id
196
- name
197
- isAnimationStudio
198
- siteUrl
199
- }
200
- }
201
- }
202
- }
203
- statistics {
204
- anime {
205
- count
206
- meanScore
207
- standardDeviation
208
- minutesWatched
209
- episodesWatched
210
- formats (limit: $animeStatLimit, sort: $animeStatSort) {
211
- ${UserAnimeStatsSchema}
212
- format
213
- }
214
- statuses (limit: $animeStatLimit, sort: $animeStatSort) {
215
- ${UserAnimeStatsSchema}
216
- status
217
- }
218
- scores (limit: $animeStatLimit, sort: $animeStatSort) {
219
- ${UserAnimeStatsSchema}
220
- score
221
- }
222
- lengths (limit: $animeStatLimit, sort: $animeStatSort) {
223
- ${UserAnimeStatsSchema}
224
- length
225
- }
226
- releaseYears (limit: $animeStatLimit, sort: $animeStatSort) {
227
- ${UserAnimeStatsSchema}
228
- releaseYear
229
- }
230
- startYears (limit: $animeStatLimit, sort: $animeStatSort) {
231
- ${UserAnimeStatsSchema}
232
- startYear
233
- }
234
- genres (limit: $animeStatLimit, sort: $animeStatSort) {
235
- ${UserAnimeStatsSchema}
236
- genre
237
- }
238
- tags (limit: $animeStatLimit, sort: $animeStatSort) {
239
- ${UserAnimeStatsSchema}
240
- tag {
241
- ${TagSchema}
242
- }
243
- }
244
- countries (limit: $animeStatLimit, sort: $animeStatSort) {
245
- ${UserAnimeStatsSchema}
246
- country
247
- }
248
- voiceActors (limit: $animeStatLimit, sort: $animeStatSort) {
249
- ${UserAnimeStatsSchema}
250
- voiceActor {
251
- id
252
- ${NameSchema}
253
- }
254
- characterIds
255
- }
256
- staff (limit: $animeStatLimit, sort: $animeStatSort) {
257
- ${UserAnimeStatsSchema}
258
- staff {
259
- id
260
- ${NameSchema}
261
- }
262
- }
263
- studios (limit: $animeStatLimit, sort: $animeStatSort) {
264
- ${UserAnimeStatsSchema}
265
- studio {
266
- id
267
- name
268
- }
269
- }
270
- }
271
- manga {
272
- count
273
- meanScore
274
- standardDeviation
275
- chaptersRead
276
- volumesRead
277
- formats (limit: $mangaStatLimit, sort: $mangaStatSort) {
278
- ${UserMangaStatsSchema}
279
- format
280
- }
281
- statuses (limit: $mangaStatLimit, sort: $mangaStatSort) {
282
- ${UserMangaStatsSchema}
283
- status
284
- }
285
- scores (limit: $mangaStatLimit, sort: $mangaStatSort) {
286
- ${UserMangaStatsSchema}
287
- score
288
- }
289
- lengths (limit: $mangaStatLimit, sort: $mangaStatSort) {
290
- ${UserMangaStatsSchema}
291
- length
292
- }
293
- releaseYears (limit: $mangaStatLimit, sort: $mangaStatSort) {
294
- ${UserMangaStatsSchema}
295
- releaseYear
296
- }
297
- startYears (limit: $mangaStatLimit, sort: $mangaStatSort) {
298
- ${UserMangaStatsSchema}
299
- startYear
300
- }
301
- genres (limit: $mangaStatLimit, sort: $mangaStatSort) {
302
- ${UserMangaStatsSchema}
303
- genre
304
- }
305
- tags (limit: $mangaStatLimit, sort: $mangaStatSort) {
306
- ${UserMangaStatsSchema}
307
- tag {
308
- ${TagSchema}
309
- }
310
- }
311
- countries (limit: $mangaStatLimit, sort: $mangaStatSort) {
312
- ${UserMangaStatsSchema}
313
- country
314
- }
315
- staff (limit: $mangaStatLimit, sort: $mangaStatSort) {
316
- ${UserMangaStatsSchema}
317
- staff {
318
- id
319
- ${NameSchema}
320
- }
321
- }
322
- studios (limit: $mangaStatLimit, sort: $mangaStatSort) {
323
- ${UserMangaStatsSchema}
324
- studio {
325
- id
326
- name
327
- }
328
- }
329
- }
330
- }
331
- stats {
332
- watchedTime
333
- chaptersRead
334
- activityHistory {
335
- date
336
- amount
337
- level
338
- }
339
- animeStatusDistribution {
340
- status
341
- amount
342
- }
343
- mangaStatusDistribution {
344
- status
345
- amount
346
- }
347
- animeScoreDistribution {
348
- score
349
- amount
350
- }
351
- mangaScoreDistribution {
352
- score
353
- amount
354
- }
355
- animeListScores {
356
- meanScore
357
- standardDeviation
358
- }
359
- mangaListScores {
360
- meanScore
361
- standardDeviation
362
- }
363
- favouredGenresOverview {
364
- genre
365
- amount
366
- meanScore
367
- timeWatched
368
- }
369
- favouredGenres {
370
- genre
371
- amount
372
- meanScore
373
- timeWatched
374
- }
375
- favouredTags {
376
- tag {
377
- ${TagSchema}
378
- }
379
- amount
380
- meanScore
381
- timeWatched
382
- }
383
- favouredActors {
384
- staff {
385
- id
386
- ${NameSchema}
387
- }
388
- amount
389
- meanScore
390
- timeWatched
391
- }
392
- favouredStaff {
393
- staff {
394
- id
395
- ${NameSchema}
396
- }
397
- amount
398
- meanScore
399
- timeWatched
400
- }
401
- favouredStudios {
402
- studio {
403
- id
404
- name
405
- }
406
- amount
407
- meanScore
408
- timeWatched
409
- }
410
- favouredYears {
411
- year
412
- amount
413
- meanScore
414
- }
415
- favouredFormats {
416
- format
417
- amount
418
- }
419
- }
420
- unreadNotificationCount
421
- siteUrl
422
- donatorTier
423
- donatorBadge
424
- moderatorRoles
425
- createdAt
426
- updatedAt
427
- previousNames {
428
- name
429
- createdAt
430
- updatedAt
431
- }
432
- `
@@ -1,162 +0,0 @@
1
- import { APIWrapper } from '../../../base/APIWrapper'
2
- import { sendRequest } from '../../../base/RequestHandler'
3
-
4
- export type UserTitleLanguage =
5
- 'ROMAJI'
6
- | 'ENGLISH'
7
- | 'NATIVE'
8
- | 'ROMAJI_STYLISED'
9
- | 'ENGLISH_STYLISED'
10
- | 'NATIVE_STYLISED'
11
- export type ScoreFormat = 'POINT_100' | 'POINT_10_DECIMAL' | 'POINT_10' | 'POINT_5' | 'POINT_3'
12
- export type UserStaffNameLanguage =
13
- 'ROMAJI'
14
- | 'ENGLISH'
15
- | 'NATIVE'
16
- | 'ROMAJI_STYLISED'
17
- | 'ENGLISH_STYLISED'
18
- | 'NATIVE_STYLISED'
19
- export interface NotificationOptionInput { type: string, enabled: boolean }
20
- export interface MediaListOptionsInput { scoreFormat: ScoreFormat, rowOrder: string, animeList: any, mangaList: any }
21
- export type ListActivityOptionInput = 'ANIME_LIST' | 'MANGA_LIST'
22
-
23
- interface UpdateUserVariables {
24
- about?: string
25
- titleLanguage?: UserTitleLanguage
26
- displayAdultContent?: boolean
27
- airingNotifications?: boolean
28
- scoreFormat?: ScoreFormat
29
- rowOrder?: string
30
- profileColor?: string
31
- donatorBadge?: string
32
- notificationOptions?: NotificationOptionInput[]
33
- timezone?: string
34
- activityMergeTime?: number
35
- animeListOptions?: MediaListOptionsInput
36
- mangaListOptions?: MediaListOptionsInput
37
- staffNameLanguage?: UserStaffNameLanguage
38
- restrictMessagesToFollowing?: boolean
39
- disabledListActivity?: ListActivityOptionInput[]
40
- }
41
-
42
- interface UpdateUserResponse {
43
- id: number
44
- name: string
45
- about: string
46
- avatar: {
47
- large: string
48
- medium: string
49
- }
50
- bannerImage: string
51
- isFollowing: boolean
52
- isFollower: boolean
53
- isBlocked: boolean
54
- bans: any[]
55
- options: {
56
- titleLanguage: string
57
- displayAdultContent: boolean
58
- airingNotifications: boolean
59
- profileColor: string
60
- notificationOptions: Array<{
61
- type: string
62
- enabled: boolean
63
- }>
64
- timezone: string
65
- activityMergeTime: number
66
- staffNameLanguage: string
67
- restrictMessagesToFollowing: boolean
68
- }
69
- mediaListOptions: {
70
- scoreFormat: string
71
- rowOrder: string
72
- animeList: {
73
- sectionOrder: string[]
74
- customLists: string[]
75
- advancedScoring: string[]
76
- advancedScoringEnabled: boolean
77
- }
78
- mangaList: {
79
- sectionOrder: string[]
80
- customLists: string[]
81
- advancedScoring: string[]
82
- advancedScoringEnabled: boolean
83
- }
84
- }
85
- unreadNotificationCount: number
86
- siteUrl: string
87
- donatorTier: number
88
- donatorBadge: string
89
- moderatorRoles: string[]
90
- createdAt: number
91
- updatedAt: number
92
- }
93
-
94
- export class UpdateUserMutation extends APIWrapper {
95
- private readonly authToken: string
96
-
97
- constructor (authToken: string) {
98
- super('https://graphql.anilist.co')
99
- this.authToken = authToken
100
- }
101
-
102
- async updateUser (variables: UpdateUserVariables): Promise<UpdateUserResponse> {
103
- const mutation = `
104
- mutation ($about: String, $titleLanguage: UserTitleLanguage, $displayAdultContent: Boolean, $airingNotifications: Boolean, $scoreFormat: ScoreFormat, $rowOrder: String, $profileColor: String, $donatorBadge: String, $notificationOptions: [NotificationOptionInput], $timezone: String, $activityMergeTime: Int, $animeListOptions: MediaListOptionsInput, $mangaListOptions: MediaListOptionsInput, $staffNameLanguage: UserStaffNameLanguage, $restrictMessagesToFollowing: Boolean, $disabledListActivity: [ListActivityOptionInput]) {
105
- UpdateUser(about: $about, titleLanguage: $titleLanguage, displayAdultContent: $displayAdultContent, airingNotifications: $airingNotifications, scoreFormat: $scoreFormat, rowOrder: $rowOrder, profileColor: $profileColor, donatorBadge: $donatorBadge, notificationOptions: $notificationOptions, timezone: $timezone, activityMergeTime: $activityMergeTime, animeListOptions: $animeListOptions, mangaListOptions: $mangaListOptions, staffNameLanguage: $staffNameLanguage, restrictMessagesToFollowing: $restrictMessagesToFollowing, disabledListActivity: $disabledListActivity) {
106
- id
107
- name
108
- about
109
- avatar {
110
- large
111
- medium
112
- }
113
- bannerImage
114
- isFollowing
115
- isFollower
116
- isBlocked
117
- bans
118
- options {
119
- titleLanguage
120
- displayAdultContent
121
- airingNotifications
122
- profileColor
123
- notificationOptions {
124
- type
125
- enabled
126
- }
127
- timezone
128
- activityMergeTime
129
- staffNameLanguage
130
- restrictMessagesToFollowing
131
- }
132
- mediaListOptions {
133
- scoreFormat
134
- rowOrder
135
- animeList {
136
- sectionOrder
137
- customLists
138
- advancedScoring
139
- advancedScoringEnabled
140
- }
141
- mangaList {
142
- sectionOrder
143
- customLists
144
- advancedScoring
145
- advancedScoringEnabled
146
- }
147
- }
148
- unreadNotificationCount
149
- siteUrl
150
- donatorTier
151
- donatorBadge
152
- moderatorRoles
153
- createdAt
154
- updatedAt
155
- }
156
- }
157
- `
158
-
159
- const data = { query: mutation, variables }
160
- return await sendRequest(this.baseURL, 'POST', data, this.authToken)
161
- }
162
- }
@@ -1,48 +0,0 @@
1
- import { APIWrapper } from '../../../base/APIWrapper'
2
- import { sendRequest } from '../../../base/RequestHandler'
3
- import { AiringScheduleResponse, AiringScheduleSchema } from '../interfaces/responses/AiringSchedule'
4
-
5
- interface AiringScheduleVariables {
6
- id?: number
7
- mediaId?: number
8
- episode?: number
9
- airingAt?: number
10
- notYetAired?: boolean
11
- id_not?: number
12
- id_in?: number[]
13
- id_not_in?: number[]
14
- mediaId_not?: number
15
- mediaId_in?: number[]
16
- mediaId_not_in?: number[]
17
- episode_not?: number
18
- episode_in?: number[]
19
- episode_not_in?: number[]
20
- episode_greater?: number
21
- episode_lesser?: number
22
- airingAt_greater?: number
23
- airingAt_lesser?: number
24
- sort?: string[]
25
- asHtml?: boolean
26
- }
27
-
28
- export class AiringScheduleQuery extends APIWrapper {
29
- private readonly authToken: string
30
-
31
- constructor (authToken: string) {
32
- super('https://graphql.anilist.co')
33
- this.authToken = authToken
34
- }
35
-
36
- async airingSchedule (variables?: AiringScheduleVariables): Promise<AiringScheduleResponse> {
37
- const query = `
38
- query ($id: Int, $mediaId: Int, $episode: Int, $airingAt: Int, $notYetAired: Boolean, $id_not: Int, $id_in: [Int], $id_not_in: [Int], $mediaId_not: Int, $mediaId_in: [Int], $mediaId_not_in: [Int], $episode_not: Int, $episode_in: [Int], $episode_not_in: [Int], $episode_greater: Int, $episode_lesser: Int, $airingAt_greater: Int, $airingAt_lesser: Int, $sort: [AiringSort], $asHtml: Boolean) {
39
- AiringSchedule (id: $id, mediaId: $mediaId, episode: $episode, airingAt: $airingAt, notYetAired: $notYetAired, id_not: $id_not, id_in: $id_in, id_not_in: $id_not_in, mediaId_not: $mediaId_not, mediaId_in: $mediaId_in, mediaId_not_in: $mediaId_not_in, episode_not: $episode_not, episode_in: $episode_in, episode_not_in: $episode_not_in, episode_greater: $episode_greater, episode_lesser: $episode_lesser, airingAt_greater: $airingAt_greater, airingAt_lesser: $airingAt_lesser, sort: $sort) {
40
- ${AiringScheduleSchema}
41
- }
42
- }
43
- `
44
-
45
- const data = { query, variables }
46
- return await sendRequest(this.baseURL, 'POST', data, this.authToken)
47
- }
48
- }
@@ -1,40 +0,0 @@
1
- import { APIWrapper } from '../../../base/APIWrapper'
2
- import { sendRequest } from '../../../base/RequestHandler'
3
- import { CharacterResponse, CharacterSchema } from '../interfaces/responses/Character'
4
-
5
- interface CharacterVariables {
6
- id?: number
7
- isBirthday?: boolean
8
- search?: string
9
- id_not?: number
10
- id_in?: number[]
11
- id_not_in?: number[]
12
- sort?: string[]
13
- asHtml?: boolean
14
- mediaSort?: string[]
15
- mediaOnList?: boolean
16
- mediaPage?: number
17
- mediaPerPage?: number
18
- }
19
-
20
- export class CharacterQuery extends APIWrapper {
21
- private readonly authToken: string
22
-
23
- constructor (authToken: string) {
24
- super('https://graphql.anilist.co')
25
- this.authToken = authToken
26
- }
27
-
28
- async character (variables?: CharacterVariables): Promise<CharacterResponse> {
29
- const query = `
30
- query ($id: Int, $isBirthday: Boolean, $search: String, $id_not: Int, $id_in: [Int], $id_not_in: [Int], $sort: [CharacterSort], $asHtml: Boolean, $mediaSort: [MediaSort], $mediaOnList: Boolean, $mediaPage: Int, $mediaPerPage: Int) {
31
- Character (id: $id, isBirthday: $isBirthday, search: $search, id_not: $id_not, id_in: $id_in, id_not_in: $id_not_in, sort: $sort) {
32
- ${CharacterSchema}
33
- }
34
- }
35
- `
36
-
37
- const data = { query, variables }
38
- return await sendRequest(this.baseURL, 'POST', data, this.authToken)
39
- }
40
- }