add more default fields

This commit is contained in:
DrakeTDL 2023-10-13 22:38:34 -07:00
parent eb98a83c38
commit 21326fc6bc
No known key found for this signature in database
22 changed files with 848 additions and 666 deletions

View File

@ -243,133 +243,132 @@ export const Client = function (auth?: { token: string }) {
fetch() {
return fetch({ query: this.raw.get()! })
},
Page(args: AtLeastOne<QueryPageArgs>, fn: Fn<typeof Page>) {
Page(op: { args?: AtLeastOne<QueryPageArgs>; fn: Fn<typeof Page> }) {
operation = operation.set({
subField: "Page",
variables: args,
variables: op.args,
hasSubField: true,
level: 1,
})
let tmpQuery
fn(Page({ query: tmpQuery = [operation], level: 2 }))
op.fn(Page({ query: tmpQuery = [operation], level: 2 }))
operation = tmpQuery[0]
return this
},
/** Media query */
Media(args: AtLeastOne<QueryMediaArgs>, fn?: Fn<typeof Media>) {
Media(op: { args: AtLeastOne<QueryMediaArgs>; fn?: Fn<typeof Media> }) {
operation = operation.set({
subField: "Media",
variables: args,
variables: op.args,
hasSubField: true,
level: 1,
})
if (!fn) operation = operation.set({ subField: "id", level: 2 })
else {
let tmpQuery
fn(Media({ query: tmpQuery = [operation], level: 2 }))
operation = tmpQuery[0]
}
let tmpQuery
if (op.fn) op.fn(Media({ query: tmpQuery = [operation], level: 2 }))
else Media({ query: tmpQuery = [operation], level: 2 }).withId()
operation = tmpQuery[0]
return this
},
/** Media Trend query */
MediaTrend(args: QueryMediaTrendArgs, fn?: Fn<typeof MediaTrend>) {
MediaTrend(
op: { args: AtLeastOne<QueryMediaTrendArgs>; fn?: Fn<typeof MediaTrend> },
) {
operation = operation.set({
subField: "MediaTrend",
variables: args,
variables: op.args,
hasSubField: true,
level: 1,
})
if (!fn) operation = operation.set({ subField: "id", level: 2 })
else {
let tmpQuery
fn(MediaTrend({ query: tmpQuery = [operation], level: 2 }))
operation = tmpQuery[0]
}
let tmpQuery
if (op.fn) op.fn(MediaTrend({ query: tmpQuery = [operation], level: 2 }))
else MediaTrend({ query: tmpQuery = [operation], level: 2 }).withMediaId()
operation = tmpQuery[0]
return this
},
/** Airing schedule query */
AiringSchedule(args: QueryAiringScheduleArgs, fn?: Fn<typeof AiringSchedule>) {
AiringSchedule(
op: {
args: AtLeastOne<QueryAiringScheduleArgs>
fn?: Fn<typeof AiringSchedule>
},
) {
operation = operation.set({
subField: "AiringSchedule",
variables: args,
variables: op.args,
hasSubField: true,
level: 1,
})
if (!fn) operation = operation.set({ subField: "id", level: 2 })
else {
let tmpQuery
fn(AiringSchedule({ query: tmpQuery = [operation], level: 2 }))
operation = tmpQuery[0]
}
let tmpQuery
if (op.fn) op.fn(AiringSchedule({ query: tmpQuery = [operation], level: 2 }))
else AiringSchedule({ query: tmpQuery = [operation], level: 2 }).withId()
operation = tmpQuery[0]
return this
},
/** Character query */
Character(args: QueryCharacterArgs, fn?: Fn<typeof Character>) {
Character(
op: { args: AtLeastOne<QueryCharacterArgs>; fn?: Fn<typeof Character> },
) {
operation = operation.set({
subField: "Character",
variables: args,
variables: op.args,
hasSubField: true,
level: 1,
})
if (!fn) operation = operation.set({ subField: "id", level: 2 })
else {
let tmpQuery
fn(Character({ query: tmpQuery = [operation], level: 2 }))
operation = tmpQuery[0]
}
let tmpQuery
if (op.fn) op.fn(Character({ query: tmpQuery = [operation], level: 2 }))
else Character({ query: tmpQuery = [operation], level: 2 }).withId()
operation = tmpQuery[0]
return this
},
/** Staff query */
Staff(args: QueryStaffArgs, fn?: Fn<typeof Staff>) {
Staff(op: { args: AtLeastOne<QueryStaffArgs>; fn?: Fn<typeof Staff> }) {
operation = operation.set({
subField: "Staff",
variables: args,
variables: op.args,
hasSubField: true,
level: 1,
})
if (!fn) operation = operation.set({ subField: "id", level: 2 })
else {
let tmpQuery
fn(Staff({ query: tmpQuery = [operation], level: 2 }))
operation = tmpQuery[0]
}
let tmpQuery
if (op.fn) op.fn(Staff({ query: tmpQuery = [operation], level: 2 }))
else Staff({ query: tmpQuery = [operation], level: 2 }).withId()
operation = tmpQuery[0]
return this
},
/** Media list query */
MediaList(args: QueryMediaListArgs, fn?: Fn<typeof MediaList>) {
MediaList(
op: { args: AtLeastOne<QueryMediaListArgs>; fn?: Fn<typeof MediaList> },
) {
operation = operation.set({
subField: "MediaList",
variables: args,
variables: op.args,
hasSubField: true,
level: 1,
})
if (!fn) operation = operation.set({ subField: "id", level: 2 })
else {
let tmpQuery
fn(MediaList({ query: tmpQuery = [operation], level: 2 }))
operation = tmpQuery[0]
}
let tmpQuery
if (op.fn) op.fn(MediaList({ query: tmpQuery = [operation], level: 2 }))
else MediaList({ query: tmpQuery = [operation], level: 2 }).withId()
operation = tmpQuery[0]
return this
},
/** Media list collection query, provides list pre-grouped by status & custom lists. User ID and Media Type arguments required. */
MediaListCollection(
args: QueryMediaListCollectionArgs,
fn?: Fn<typeof MediaListCollection>,
op: {
args: AtLeastOne<QueryMediaListCollectionArgs>
fn?: Fn<typeof MediaListCollection>
},
) {
operation = operation.set({
subField: "MediaListCollection",
variables: args,
variables: op.args,
hasSubField: true,
level: 1,
})
if (!fn) operation = operation.set({ subField: "id", level: 2 })
else {
let tmpQuery
fn(MediaListCollection({ query: tmpQuery = [operation], level: 2 }))
operation = tmpQuery[0]
}
let tmpQuery
if (op.fn) op.fn(MediaListCollection({ query: tmpQuery = [operation], level: 2 }))
else MediaListCollection({ query: tmpQuery = [operation], level: 2 }).withUser()
operation = tmpQuery[0]
return this
},
/** Collection of all the possible media genres */
@ -378,276 +377,268 @@ export const Client = function (auth?: { token: string }) {
return this
},
/** Collection of all the possible media tags */
MediaTagCollection(args: QueryMediaTagCollectionArgs, fn?: Fn<typeof MediaTag>) {
MediaTagCollection(
op?: { args?: QueryMediaTagCollectionArgs; fn?: Fn<typeof MediaTag> },
) {
operation = operation.set({
subField: "MediaTagCollection",
variables: args,
variables: op?.args,
hasSubField: true,
level: 1,
})
if (!fn) operation = operation.set({ subField: "id", level: 2 })
else {
let tmpQuery
fn(MediaTag({ query: tmpQuery = [operation], level: 2 }))
operation = tmpQuery[0]
}
let tmpQuery
if (op?.fn) op.fn(MediaTag({ query: tmpQuery = [operation], level: 2 }))
else MediaTag({ query: tmpQuery = [operation], level: 2 }).withId()
operation = tmpQuery[0]
return this
},
/** User query */
User(args: QueryUserArgs, fn?: Fn<typeof User>) {
User(op: { args: AtLeastOne<QueryUserArgs>; fn?: Fn<typeof User> }) {
operation = operation.set({
subField: "User",
variables: args,
variables: op.args,
hasSubField: true,
level: 1,
})
if (!fn) operation = operation.set({ subField: "id", level: 2 })
else {
let tmpQuery
fn(User({ query: tmpQuery = [operation], level: 2 }))
operation = tmpQuery[0]
}
let tmpQuery
if (op.fn) op.fn(User({ query: tmpQuery = [operation], level: 2 }))
else User({ query: tmpQuery = [operation], level: 2 }).withId()
operation = tmpQuery[0]
return this
},
/** Get the currently authenticated user */
Viewer(fn: Fn<typeof User>) {
Viewer(op: { fn?: Fn<typeof User> }) {
operation = operation.set({
subField: "Viewer",
hasSubField: true,
level: 1,
})
if (!fn) operation = operation.set({ subField: "id", level: 2 })
else {
let tmpQuery
fn(User({ query: tmpQuery = [operation], level: 2 }))
operation = tmpQuery[0]
}
let tmpQuery
if (op.fn) op.fn(User({ query: tmpQuery = [operation], level: 2 }))
else User({ query: tmpQuery = [operation], level: 2 }).withId()
operation = tmpQuery[0]
return this
},
/** Notification query */
Notification(args: QueryNotificationArgs, fn: Fn<typeof NotificationUnion>) {
Notification(
op: { args: AtLeastOne<QueryNotificationArgs>; fn: Fn<typeof NotificationUnion> },
) {
operation = operation.set({
subField: "Notification",
variables: args,
variables: op.args,
hasSubField: true,
level: 1,
})
let tmpQuery
fn(NotificationUnion({ query: tmpQuery = [operation], level: 2 }))
op.fn(NotificationUnion({ query: tmpQuery = [operation], level: 2 }))
operation = tmpQuery[0]
return this
},
/** Studio query */
Studio(args: QueryStudioArgs, fn?: Fn<typeof Studio>) {
Studio(op: { args: AtLeastOne<QueryStudioArgs>; fn?: Fn<typeof Studio> }) {
operation = operation.set({
subField: "Studio",
variables: args,
hasSubField: true,
level: 1,
})
if (!fn) operation = operation.set({ subField: "id", level: 2 })
else {
let tmpQuery
fn(Studio({ query: tmpQuery = [operation], level: 2 }))
operation = tmpQuery[0]
}
return this
},
/** Review query */
Review(args: QueryReviewArgs, fn?: Fn<typeof Review>) {
operation = operation.set({
subField: "Review",
variables: args,
hasSubField: true,
level: 1,
})
if (!fn) operation = operation.set({ subField: "id", level: 2 })
else {
let tmpQuery
fn(Review({ query: tmpQuery = [operation], level: 2 }))
operation = tmpQuery[0]
}
return this
},
/** Activity query */
Activity(args: QueryActivityArgs, fn: Fn<typeof ActivityUnion>) {
operation = operation.set({
subField: "Activity",
variables: args,
variables: op.args,
hasSubField: true,
level: 1,
})
let tmpQuery
fn(ActivityUnion({ query: tmpQuery = [operation], level: 2 }))
if (op.fn) op.fn(Studio({ query: tmpQuery = [operation], level: 2 }))
else {
Studio({ query: tmpQuery = [operation], level: 2 }).withId()
}
operation = tmpQuery[0]
return this
},
/** Review query */
Review(op: { args: AtLeastOne<QueryReviewArgs>; fn?: Fn<typeof Review> }) {
operation = operation.set({
subField: "Review",
variables: op.args,
hasSubField: true,
level: 1,
})
let tmpQuery
if (op.fn) op.fn(Review({ query: tmpQuery = [operation], level: 2 }))
else Review({ query: tmpQuery = [operation], level: 2 }).withId()
operation = tmpQuery[0]
return this
},
/** Activity query */
Activity(op: { args: AtLeastOne<QueryActivityArgs>; fn?: Fn<typeof ActivityUnion> }) {
operation = operation.set({
subField: "Activity",
variables: op.args,
hasSubField: true,
level: 1,
})
let tmpQuery
if (op.fn) op.fn(ActivityUnion({ query: tmpQuery = [operation], level: 2 }))
else {
ActivityUnion({ query: tmpQuery = [operation], level: 2 })
.withListActivity()
.withMessageActivity()
.withTextActivity()
}
operation = tmpQuery[0]
return this
},
/** Activity reply query */
ActivityReply(args: QueryActivityReplyArgs, fn?: Fn<typeof ActivityReply>) {
ActivityReply(
op: { args: AtLeastOne<QueryActivityReplyArgs>; fn?: Fn<typeof ActivityReply> },
) {
operation = operation.set({
subField: "ActivityReply",
variables: args,
variables: op.args,
hasSubField: true,
level: 1,
})
if (!fn) operation = operation.set({ subField: "id", level: 2 })
else {
let tmpQuery
fn(ActivityReply({ query: tmpQuery = [operation], level: 2 }))
operation = tmpQuery[0]
}
let tmpQuery
if (op.fn) op.fn(ActivityReply({ query: tmpQuery = [operation], level: 2 }))
else ActivityReply({ query: tmpQuery = [operation], level: 2 }).withId()
operation = tmpQuery[0]
return this
},
/** Follow query */
Following(args: QueryFollowingArgs, fn?: Fn<typeof User>) {
Following(op: { args: AtLeastOne<QueryFollowingArgs>; fn?: Fn<typeof User> }) {
operation = operation.set({
subField: "Following",
variables: args,
variables: op.args,
hasSubField: true,
level: 1,
})
if (!fn) operation = operation.set({ subField: "id", level: 2 })
else {
let tmpQuery
fn(User({ query: tmpQuery = [operation], level: 2 }))
operation = tmpQuery[0]
}
let tmpQuery
if (op.fn) op.fn(User({ query: tmpQuery = [operation], level: 2 }))
else User({ query: tmpQuery = [operation], level: 2 }).withId()
operation = tmpQuery[0]
return this
},
/** Follow query */
Follower(args: QueryFollowerArgs, fn?: Fn<typeof User>) {
Follower(op: { args: AtLeastOne<QueryFollowerArgs>; fn?: Fn<typeof User> }) {
operation = operation.set({
subField: "Follower",
variables: args,
variables: op.args,
hasSubField: true,
level: 1,
})
if (!fn) operation = operation.set({ subField: "id", level: 2 })
else {
let tmpQuery
fn(User({ query: tmpQuery = [operation], level: 2 }))
operation = tmpQuery[0]
}
let tmpQuery
if (op.fn) op.fn(User({ query: tmpQuery = [operation], level: 2 }))
else User({ query: tmpQuery = [operation], level: 2 }).withId()
operation = tmpQuery[0]
return this
},
/** Thread query */
Thread(args: QueryThreadArgs, fn?: Fn<typeof Thread>) {
Thread(op: { args: AtLeastOne<QueryThreadArgs>; fn?: Fn<typeof Thread> }) {
operation = operation.set({
subField: "Thread",
variables: args,
variables: op.args,
hasSubField: true,
level: 1,
})
if (!fn) operation = operation.set({ subField: "id", level: 2 })
else {
let tmpQuery
fn(Thread({ query: tmpQuery = [operation], level: 2 }))
operation = tmpQuery[0]
}
let tmpQuery
if (op.fn) op.fn(Thread({ query: tmpQuery = [operation], level: 2 }))
else Thread({ query: tmpQuery = [operation], level: 2 }).withId()
operation = tmpQuery[0]
return this
},
/** Comment query */
ThreadComment(args: QueryThreadCommentArgs, fn?: Fn<typeof ThreadComment>) {
ThreadComment(
op: { args: AtLeastOne<QueryThreadCommentArgs>; fn?: Fn<typeof ThreadComment> },
) {
operation = operation.set({
level: 1,
subField: "ThreadComment",
hasSubField: true,
variables: args,
variables: op.args,
})
if (!fn) operation = operation.set({ level: 2, subField: "id" })
else {
let tmpQuery
fn(ThreadComment({ query: tmpQuery = [operation], level: 2 }))
operation = tmpQuery[0]
}
let tmpQuery
if (op.fn) op.fn(ThreadComment({ query: tmpQuery = [operation], level: 2 }))
else ThreadComment({ query: tmpQuery = [operation], level: 2 }).withId()
operation = tmpQuery[0]
return this
},
/** Recommendation query */
Recommendation(args: QueryRecommendationArgs, fn?: Fn<typeof Recommendation>) {
Recommendation(
op: { args: AtLeastOne<QueryRecommendationArgs>; fn?: Fn<typeof Recommendation> },
) {
operation = operation.set({
subField: "Recommendation",
variables: args,
variables: op.args,
hasSubField: true,
level: 1,
})
if (!fn) operation = operation.set({ subField: "id", level: 2 })
else {
let tmpQuery
fn(Recommendation({ query: tmpQuery = [operation], level: 2 }))
operation = tmpQuery[0]
}
let tmpQuery
if (op.fn) op.fn(Recommendation({ query: tmpQuery = [operation], level: 2 }))
else Recommendation({ query: tmpQuery = [operation], level: 2 }).withId()
operation = tmpQuery[0]
return this
},
/** Like query */
Like(args: QueryLikeArgs, fn?: Fn<typeof User>) {
Like(op: { args: AtLeastOne<QueryLikeArgs>; fn?: Fn<typeof User> }) {
operation = operation.set({
subField: "Like",
variables: args,
variables: op.args,
hasSubField: true,
level: 1,
})
if (!fn) operation = operation.set({ subField: "id", level: 2 })
else {
let tmpQuery
fn(User({ query: tmpQuery = [operation], level: 2 }))
operation = tmpQuery[0]
}
let tmpQuery
if (op.fn) op.fn(User({ query: tmpQuery = [operation], level: 2 }))
else User({ query: tmpQuery = [operation], level: 2 }).withId()
operation = tmpQuery[0]
return this
},
/** Provide AniList markdown to be converted to html (Requires auth) */
Markdown(args: QueryMarkdownArgs, fn: Fn<typeof Markdown>) {
Markdown(op: { args: QueryMarkdownArgs; fn?: Fn<typeof Markdown> }) {
operation = operation.set({
subField: "Markdown",
hasSubField: true,
variables: args,
variables: op.args,
level: 1,
})
let tmpQuery
fn(Markdown({ query: tmpQuery = [operation], level: 2 }))
if (op.fn) op.fn(Markdown({ query: tmpQuery = [operation], level: 2 }))
else Markdown({ query: tmpQuery = [operation], level: 2 }).withHtml()
operation = tmpQuery[0]
return this
},
AniChartUser(fn: Fn<typeof AniChartUser>) {
AniChartUser(op?: { fn?: Fn<typeof AniChartUser> }) {
operation = operation.set({ subField: "AniChartUser", hasSubField: true, level: 1 })
let tmpQuery
fn(AniChartUser({ query: tmpQuery = [operation], level: 2 }))
if (op?.fn) op.fn(AniChartUser({ query: tmpQuery = [operation], level: 2 }))
else AniChartUser({ query: tmpQuery = [operation], level: 2 }).withUser()
operation = tmpQuery[0]
return this
},
/** Site statistics query */
SiteStatistics(fn?: Fn<typeof SiteStatistics>) {
SiteStatistics(op: { fn: Fn<typeof SiteStatistics> }) {
operation = operation.set({
subField: "SiteStatistics",
hasSubField: true,
level: 1,
})
if (!fn) operation = operation.set({ subField: "id", level: 2 })
else {
let tmpQuery
fn(SiteStatistics({ query: tmpQuery = [operation], level: 2 }))
operation = tmpQuery[0]
}
let tmpQuery
op.fn(SiteStatistics({ query: tmpQuery = [operation], level: 2 }))
operation = tmpQuery[0]
return this
},
/** ExternalLinkSource collection query */
ExternalLinkSourceCollection(
args: QueryExternalLinkSourceCollectionArgs,
fn?: Fn<typeof ExternalLinkSourceCollection>,
) {
ExternalLinkSourceCollection(op: {
args: AtLeastOne<QueryExternalLinkSourceCollectionArgs>
fn?: Fn<typeof ExternalLinkSourceCollection>
}) {
operation = operation.set({
subField: "ExternalLinkSourceCollection",
variables: args,
variables: op.args,
hasSubField: true,
level: 1,
})
if (!fn) operation = operation.set({ subField: "id", level: 2 })
else {
let tmpQuery
fn(ExternalLinkSourceCollection({ query: tmpQuery = [operation], level: 2 }))
operation = tmpQuery[0]
}
let tmpQuery
if (op.fn) {
op.fn(ExternalLinkSourceCollection({ query: tmpQuery = [operation], level: 2 }))
} else ExternalLinkSourceCollection({ query: tmpQuery = [operation], level: 2 }).withId()
operation = tmpQuery[0]
return this
},
}

View File

@ -41,15 +41,17 @@ export const ActivityReply = ({ query, level }: Fields<UpdateOperation>) => ({
withUser(fn: Fn<typeof User>) {
query[0] = query[0].set({ subField: "user", level, hasSubField: true })
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
/** The users who liked the reply */
withLikes(fn: Fn<typeof User>) {
withLikes(fn?: Fn<typeof User>) {
query[0] = query[0].set({ subField: "likes", level, hasSubField: true })
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},

View File

@ -25,7 +25,7 @@ export const TextActivity = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The status text (Markdown) */
withText(args: { asHtml: boolean }) {
withText(args?: { asHtml: boolean }) {
query[0] = query[0].set({ subField: "text", level, variables: args })
return this
},
@ -65,26 +65,29 @@ export const TextActivity = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The user who created the activity */
withUser(fn: Fn<typeof User>) {
withUser(fn?: Fn<typeof User>) {
query[0] = query[0].set({ subField: "user", level })
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
/** The written replies to the activity */
withReplies(fn: Fn<typeof ActivityReply>) {
withReplies(fn?: Fn<typeof ActivityReply>) {
query[0] = query[0].set({ subField: "replies", level })
let tmpQuery
fn(ActivityReply({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(ActivityReply({ query: tmpQuery = [query[0]], level: level + 1 }))
else ActivityReply({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
/** The users who liked the activity */
withLikes(fn: Fn<typeof User>) {
withLikes(fn?: Fn<typeof User>) {
query[0] = query[0].set({ subField: "likes", level })
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
@ -157,34 +160,38 @@ export const ListActivity = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The owner of the activity */
withUser(fn: Fn<typeof User>) {
withUser(fn?: Fn<typeof User>) {
query[0] = query[0].set({ subField: "user", level })
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
/** The associated media to the activity update */
withMedia(fn: Fn<typeof Media>) {
withMedia(fn?: Fn<typeof Media>) {
query[0] = query[0].set({ subField: "media", level })
let tmpQuery
fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
else Media({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
/** The written replies to the activity */
withReplies(fn: Fn<typeof ActivityReply>) {
withReplies(fn?: Fn<typeof ActivityReply>) {
query[0] = query[0].set({ subField: "replies", level })
let tmpQuery
fn(ActivityReply({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(ActivityReply({ query: tmpQuery = [query[0]], level: level + 1 }))
else ActivityReply({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
/** The users who liked the activity */
withLikes(fn: Fn<typeof User>) {
withLikes(fn?: Fn<typeof User>) {
query[0] = query[0].set({ subField: "likes", level })
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
@ -217,7 +224,7 @@ export const MessageActivity = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The message text (Markdown) */
withMessage(args: { asHtml: boolean }) {
withMessage(args?: { asHtml: boolean }) {
query[0] = query[0].set({ subField: "message", level, variables: args })
return this
},
@ -257,55 +264,61 @@ export const MessageActivity = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The user who the activity message was sent to */
withRecipient(fn: Fn<typeof User>) {
withRecipient(fn?: Fn<typeof User>) {
query[0] = query[0].set({ subField: "recipient", level })
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
/** The user who sent the activity message */
withMessenger(fn: Fn<typeof User>) {
withMessenger(fn?: Fn<typeof User>) {
query[0] = query[0].set({ subField: "messenger", level })
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
/** The written replies to the activity */
withReplies(fn: Fn<typeof ActivityReply>) {
withReplies(fn?: Fn<typeof ActivityReply>) {
query[0] = query[0].set({ subField: "replies", level })
let tmpQuery
fn(ActivityReply({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(ActivityReply({ query: tmpQuery = [query[0]], level: level + 1 }))
else ActivityReply({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
/** The users who liked the activity */
withLikes(fn: Fn<typeof User>) {
withLikes(fn?: Fn<typeof User>) {
query[0] = query[0].set({ subField: "likes", level })
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
})
export const ActivityUnion = ({ query, level }: Fields<UpdateOperation>) => ({
withTextActivity(fn: Fn<typeof TextActivity>) {
withTextActivity(fn?: Fn<typeof TextActivity>) {
query[0] = query[0].set({ subField: "TextActivity", level, hasSubField: true, isUnion: true })
let tmpQuery
fn(TextActivity({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(TextActivity({ query: tmpQuery = [query[0]], level: level + 1 }))
else TextActivity({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
withListActivity(fn: Fn<typeof ListActivity>) {
withListActivity(fn?: Fn<typeof ListActivity>) {
query[0] = query[0].set({ subField: "ListActivity", level, hasSubField: true, isUnion: true })
let tmpQuery
fn(ListActivity({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(ListActivity({ query: tmpQuery = [query[0]], level: level + 1 }))
else ListActivity({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
withMessageActivity(fn: Fn<typeof MessageActivity>) {
withMessageActivity(fn?: Fn<typeof MessageActivity>) {
query[0] = query[0].set({
subField: "MessageActivity",
level,
@ -313,7 +326,8 @@ export const ActivityUnion = ({ query, level }: Fields<UpdateOperation>) => ({
isUnion: true,
})
let tmpQuery
fn(MessageActivity({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(MessageActivity({ query: tmpQuery = [query[0]], level: level + 1 }))
else MessageActivity({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},

View File

@ -69,10 +69,11 @@ export const AiringSchedule = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The associate media of the airing episode */
withMedia(fn: Fn<typeof Media>) {
withMedia(fn?: Fn<typeof Media>) {
query[0] = query[0].set({ subField: "media", level, hasSubField: true })
let tmpQuery
fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
else Media({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},

View File

@ -2,10 +2,11 @@ import { Fields, Fn, UpdateOperation } from "../types/Anilist.ts"
import { User } from "./User.ts"
export const AniChartUser = ({ query, level }: Fields<UpdateOperation>) => ({
withUser(fn: Fn<typeof User>) {
withUser(fn?: Fn<typeof User>) {
query[0] = query[0].set({ subField: "user", level, hasSubField: true })
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},

View File

@ -8,6 +8,7 @@ import { PageInfo } from "./Page.ts"
import { FuzzyDate } from "../anilist.ts"
import { Media, MediaConnection } from "./Media.ts"
import { Staff, StaffRoleType } from "./Staff.ts"
import { AtLeastOne } from "../types/AtLeastOne.ts"
const CharacterName = ({ query, level }: Fields<UpdateOperation>) => ({
/** The person's given name */
@ -64,7 +65,8 @@ const CharacterEdge = ({ query, level }: Fields<UpdateOperation>) => ({
withNode(fn: Fn<typeof Character>) {
query[0] = query[0].set({ subField: "node", level, hasSubField: true })
let tmpQuery
fn(Character({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Character({ query: tmpQuery = [query[0]], level: level + 1 }))
else Character({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
@ -84,34 +86,40 @@ const CharacterEdge = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The voice actors of the character */
withVoiceActors(args: CharacterEdgeVoiceActorsArgs | undefined, fn: Fn<typeof Staff>) {
query[0] = query[0].set({ subField: "voiceActors", level, variables: args, hasSubField: true })
withVoiceActors(op?: { args?: AtLeastOne<CharacterEdgeVoiceActorsArgs>; fn?: Fn<typeof Staff> }) {
query[0] = query[0].set({
subField: "voiceActors",
level,
variables: op?.args,
hasSubField: true,
})
let tmpQuery
fn(Staff({ query: tmpQuery = [query[0]], level: level + 1 }))
if (op?.fn) op.fn(Staff({ query: tmpQuery = [query[0]], level: level + 1 }))
else Staff({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
/** The voice actors of the character with role date */
withVoiceActorRoles(
args: CharacterEdgeVoiceActorRolesArgs | undefined,
fn: Fn<typeof StaffRoleType>,
op: { args?: AtLeastOne<CharacterEdgeVoiceActorRolesArgs>; fn: Fn<typeof StaffRoleType> },
) {
query[0] = query[0].set({
subField: "voiceActorRoles",
level,
variables: args,
variables: op.args,
hasSubField: true,
})
let tmpQuery
fn(StaffRoleType({ query: tmpQuery = [query[0]], level: level + 1 }))
op.fn(StaffRoleType({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},
/** The media the character is in */
withMedia(fn: Fn<typeof Media>) {
withMedia(fn?: Fn<typeof Media>) {
query[0] = query[0].set({ subField: "media", level, hasSubField: true })
let tmpQuery
fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
else Media({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
@ -123,17 +131,19 @@ const CharacterEdge = ({ query, level }: Fields<UpdateOperation>) => ({
})
export const CharacterConnection = ({ query, level }: Fields<UpdateOperation>) => ({
withEdges(fn: Fn<typeof CharacterEdge>) {
withEdges(fn?: Fn<typeof CharacterEdge>) {
query[0] = query[0].set({ subField: "edges", level, hasSubField: true })
let tmpQuery
fn(CharacterEdge({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(CharacterEdge({ query: tmpQuery = [query[0]], level: level + 1 }))
else CharacterEdge({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
withNodes(fn: Fn<typeof Character>) {
withNodes(fn?: Fn<typeof Character>) {
query[0] = query[0].set({ subField: "nodes", level, hasSubField: true })
let tmpQuery
fn(Character({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Character({ query: tmpQuery = [query[0]], level: level + 1 }))
else Character({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
@ -154,18 +164,20 @@ export const Character = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The names of the character */
withName(fn: Fn<typeof CharacterName>) {
withName(fn?: Fn<typeof CharacterName>) {
query[0] = query[0].set({ subField: "name", level, hasSubField: true })
let tmpQuery
fn(CharacterName({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(CharacterName({ query: tmpQuery = [query[0]], level: level + 1 }))
else CharacterName({ query: tmpQuery = [query[0]], level: level + 1 }).withUserPreferred()
query[0] = tmpQuery[0]
return this
},
/** Character images */
withImage(fn: Fn<typeof CharacterImage>) {
withImage(fn?: Fn<typeof CharacterImage>) {
query[0] = query[0].set({ subField: "image", level, hasSubField: true })
let tmpQuery
fn(CharacterImage({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(CharacterImage({ query: tmpQuery = [query[0]], level: level + 1 }))
else CharacterImage({ query: tmpQuery = [query[0]], level: level + 1 }).withMedium()
query[0] = tmpQuery[0]
return this
},
@ -180,10 +192,16 @@ export const Character = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The character's birth date */
withDateOfBirth(fn: Fn<typeof FuzzyDate>) {
withDateOfBirth(fn?: Fn<typeof FuzzyDate>) {
query[0] = query[0].set({ subField: "dateOfBirth", level, hasSubField: true })
let tmpQuery
fn(FuzzyDate({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(FuzzyDate({ query: tmpQuery = [query[0]], level: level + 1 }))
else {
FuzzyDate({ query: tmpQuery = [query[0]], level: level + 1 })
.withYear()
.withMonth()
.withDay()
}
query[0] = tmpQuery[0]
return this
},
@ -213,10 +231,10 @@ export const Character = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** Media that includes the character */
withMedia(args: CharacterMediaArgs | undefined, fn: Fn<typeof MediaConnection>) {
query[0] = query[0].set({ subField: "media", level, variables: args, hasSubField: true })
withMedia(op: { args?: AtLeastOne<CharacterMediaArgs>; fn: Fn<typeof MediaConnection> }) {
query[0] = query[0].set({ subField: "media", level, variables: op.args, hasSubField: true })
let tmpQuery
fn(MediaConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
op.fn(MediaConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},

View File

@ -1,4 +1,5 @@
import { Fields, Fn, UpdateOperation } from "../types/Anilist.ts"
import { AtLeastOne } from "../types/AtLeastOne.ts"
import {
FavouritesAnimeArgs,
FavouritesCharactersArgs,
@ -13,42 +14,44 @@ import { StudioConnection } from "./Studio.ts"
export const Favourites = ({ query, level }: Fields<UpdateOperation>) => ({
/** Favourite anime */
withAnime(args: FavouritesAnimeArgs | undefined, fn: Fn<typeof MediaConnection>) {
query[0] = query[0].set({ subField: "anime", level, variables: args })
withAnime(op: { args?: AtLeastOne<FavouritesAnimeArgs>; fn: Fn<typeof MediaConnection> }) {
query[0] = query[0].set({ subField: "anime", level, variables: op?.args })
let tmpQuery
fn(MediaConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
op.fn(MediaConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},
/** Favourite manga */
withManga(args: FavouritesMangaArgs | undefined, fn: Fn<typeof MediaConnection>) {
query[0] = query[0].set({ subField: "manga", level, variables: args })
withManga(op: { args?: AtLeastOne<FavouritesMangaArgs>; fn: Fn<typeof MediaConnection> }) {
query[0] = query[0].set({ subField: "manga", level, variables: op?.args })
let tmpQuery
fn(MediaConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
op.fn(MediaConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},
/** Favourite characters */
withCharacters(args: FavouritesCharactersArgs | undefined, fn: Fn<typeof CharacterConnection>) {
query[0] = query[0].set({ subField: "characters", level, variables: args })
withCharacters(
op: { args?: AtLeastOne<FavouritesCharactersArgs>; fn: Fn<typeof CharacterConnection> },
) {
query[0] = query[0].set({ subField: "characters", level, variables: op?.args })
let tmpQuery
fn(CharacterConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
op.fn(CharacterConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},
/** Favourite staff */
withStaff(args: FavouritesStaffArgs | undefined, fn: Fn<typeof StaffConnection>) {
query[0] = query[0].set({ subField: "staff", level, variables: args })
withStaff(op: { args?: AtLeastOne<FavouritesStaffArgs>; fn: Fn<typeof StaffConnection> }) {
query[0] = query[0].set({ subField: "staff", level, variables: op?.args })
let tmpQuery
fn(StaffConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
op.fn(StaffConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},
/** Favourite studios */
withStudios(args: FavouritesStudiosArgs | undefined, fn: Fn<typeof StudioConnection>) {
query[0] = query[0].set({ subField: "studios", level, variables: args })
withStudios(op: { args?: AtLeastOne<FavouritesStudiosArgs>; fn: Fn<typeof StudioConnection> }) {
query[0] = query[0].set({ subField: "studios", level, variables: op?.args })
let tmpQuery
fn(StudioConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
op.fn(StudioConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},

View File

@ -5,21 +5,23 @@ import { Thread } from "./Thread.ts"
import { ThreadComment } from "./ThreadComment.ts"
export const LikeableUnion = ({ query, level }: Fields<UpdateOperation>) => ({
withListActivity(fn: Fn<typeof ListActivity>) {
withListActivity(fn?: Fn<typeof ListActivity>) {
query[0] = query[0].set({ subField: "ListActivity", level, hasSubField: true, isUnion: true })
let tmpQuery
fn(ListActivity({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(ListActivity({ query: tmpQuery = [query[0]], level: level + 1 }))
else ListActivity({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
withTextActivity(fn: Fn<typeof TextActivity>) {
withTextActivity(fn?: Fn<typeof TextActivity>) {
query[0] = query[0].set({ subField: "TextActivity", level, hasSubField: true, isUnion: true })
let tmpQuery
fn(TextActivity({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(TextActivity({ query: tmpQuery = [query[0]], level: level + 1 }))
else TextActivity({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
withMessageActivity(fn: Fn<typeof MessageActivity>) {
withMessageActivity(fn?: Fn<typeof MessageActivity>) {
query[0] = query[0].set({
subField: "MessageActivity",
level,
@ -27,28 +29,32 @@ export const LikeableUnion = ({ query, level }: Fields<UpdateOperation>) => ({
isUnion: true,
})
let tmpQuery
fn(MessageActivity({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(MessageActivity({ query: tmpQuery = [query[0]], level: level + 1 }))
else MessageActivity({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
withActivityReply(fn: Fn<typeof ActivityReply>) {
withActivityReply(fn?: Fn<typeof ActivityReply>) {
query[0] = query[0].set({ subField: "ActivityReply", level, hasSubField: true, isUnion: true })
let tmpQuery
fn(ActivityReply({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(ActivityReply({ query: tmpQuery = [query[0]], level: level + 1 }))
else ActivityReply({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
withThread(fn: Fn<typeof Thread>) {
withThread(fn?: Fn<typeof Thread>) {
query[0] = query[0].set({ subField: "Thread", level, hasSubField: true, isUnion: true })
let tmpQuery
fn(Thread({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Thread({ query: tmpQuery = [query[0]], level: level + 1 }))
else Thread({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
withThreadComment(fn: Fn<typeof ThreadComment>) {
withThreadComment(fn?: Fn<typeof ThreadComment>) {
query[0] = query[0].set({ subField: "ThreadComment", level, hasSubField: true, isUnion: true })
let tmpQuery
fn(ThreadComment({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(ThreadComment({ query: tmpQuery = [query[0]], level: level + 1 }))
else ThreadComment({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},

View File

@ -273,10 +273,11 @@ const ScoreDistribution = ({ query, level }: Fields<UpdateOperation>) => ({
})
const MediaEdge = ({ query, level }: Fields<UpdateOperation>) => ({
withNode(fn: Fn<typeof Media>) {
withNode(fn?: Fn<typeof Media>) {
query[0] = query[0].set({ subField: "node", level, hasSubField: true })
let tmpQuery
fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
else Media({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
@ -286,7 +287,7 @@ const MediaEdge = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The type of relation to the parent model */
withRelationType(args?: MediaEdgeRelationTypeArgs) {
withRelationType(args?: AtLeastOne<MediaEdgeRelationTypeArgs>) {
query[0] = query[0].set({ subField: "relationType", level, variables: args })
return this
},
@ -329,26 +330,32 @@ const MediaEdge = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The voice actors of the character */
withVoiceActors(args: MediaEdgeVoiceActorsArgs | undefined, fn: Fn<typeof Staff>) {
query[0] = query[0].set({ subField: "voiceActors", level, variables: args, hasSubField: true })
withVoiceActors(op?: { args?: AtLeastOne<MediaEdgeVoiceActorsArgs>; fn?: Fn<typeof Staff> }) {
query[0] = query[0].set({
subField: "voiceActors",
level,
variables: op?.args,
hasSubField: true,
})
let tmpQuery
fn(Staff({ query: tmpQuery = [query[0]], level: level + 1 }))
if (op?.fn) op.fn(Staff({ query: tmpQuery = [query[0]], level: level + 1 }))
else Staff({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
/** The voice actors of the character with role date */
withVoiceActorRoles(
args: MediaEdgeVoiceActorRolesArgs | undefined,
fn: Fn<typeof StaffRoleType>,
) {
withVoiceActorRoles(op: {
args?: AtLeastOne<MediaEdgeVoiceActorRolesArgs>
fn: Fn<typeof StaffRoleType>
}) {
query[0] = query[0].set({
subField: "voiceActorRoles",
level,
variables: args,
variables: op.args,
hasSubField: true,
})
let tmpQuery
fn(StaffRoleType({ query: tmpQuery = [query[0]], level: level + 1 }))
op.fn(StaffRoleType({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},
@ -360,17 +367,19 @@ const MediaEdge = ({ query, level }: Fields<UpdateOperation>) => ({
})
export const MediaConnection = ({ query, level }: Fields<UpdateOperation>) => ({
withEdges(fn: Fn<typeof MediaEdge>) {
withEdges(fn?: Fn<typeof MediaEdge>) {
query[0] = query[0].set({ subField: "edges", level, hasSubField: true })
let tmpQuery
fn(MediaEdge({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(MediaEdge({ query: tmpQuery = [query[0]], level: level + 1 }))
else MediaEdge({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
withNodes(fn: Fn<typeof Media>) {
withNodes(fn?: Fn<typeof Media>) {
query[0] = query[0].set({ subField: "nodes", level, hasSubField: true })
let tmpQuery
fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
else Media({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
@ -521,10 +530,11 @@ export const Media = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The media's next episode airing schedule */
withNextAiringEpisode(fn: Fn<typeof AiringSchedule>) {
withNextAiringEpisode(fn?: Fn<typeof AiringSchedule>) {
query[0] = query[0].set({ subField: "nextAiringEpisode", level, hasSubField: true })
let tmpQuery
fn(AiringSchedule({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(AiringSchedule({ query: tmpQuery = [query[0]], level: level + 1 }))
else AiringSchedule({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
@ -554,106 +564,99 @@ export const Media = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The current releasing status of the media */
withStatus(args?: MediaStatusArgs) {
withStatus(args?: AtLeastOne<MediaStatusArgs>) {
query[0] = query[0].set({ subField: "status", level, variables: args })
return this
},
/** Short description of the media's story and characters */
withDescription(args?: MediaDescriptionArgs) {
withDescription(args?: AtLeastOne<MediaDescriptionArgs>) {
query[0] = query[0].set({ subField: "description", level, variables: args })
return this
},
/** Source type the media was adapted from. */
withSource(args?: MediaSourceArgs) {
withSource(args?: AtLeastOne<MediaSourceArgs>) {
query[0] = query[0].set({ subField: "source", level, variables: args })
return this
},
/** The staff who produced the media */
withStaff(
args: MediaStaffArgs | undefined,
fn: Fn<typeof StaffConnection>,
) {
query[0] = query[0].set({ subField: "staff", level, variables: args, hasSubField: true })
withStaff(op: { args?: AtLeastOne<MediaStaffArgs>; fn: Fn<typeof StaffConnection> }) {
query[0] = query[0].set({ subField: "staff", level, variables: op?.args, hasSubField: true })
let tmpQuery
fn(StaffConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
op.fn(StaffConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},
/** User recommendations for similar media */
withRecommendations(
args: MediaRecommendationsArgs | undefined,
fn: Fn<typeof RecommendationConnection>,
op: { args?: AtLeastOne<MediaRecommendationsArgs>; fn: Fn<typeof RecommendationConnection> },
) {
query[0] = query[0].set({
subField: "recommendations",
level,
variables: args,
variables: op?.args,
hasSubField: true,
})
let tmpQuery
fn(RecommendationConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
op.fn(RecommendationConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},
/** The characters in the media */
withCharacters(
args: AtLeastOne<MediaCharactersArgs> | undefined,
fn: Fn<typeof CharacterConnection>,
) {
query[0] = query[0].set({ subField: "characters", level, variables: args, hasSubField: true })
withCharacters(op: {
args?: AtLeastOne<MediaCharactersArgs>
fn: Fn<typeof CharacterConnection>
}) {
query[0] = query[0].set({
subField: "characters",
level,
variables: op?.args,
hasSubField: true,
})
let tmpQuery
fn(
CharacterConnection({ query: tmpQuery = [query[0]], level: level + 1 }),
)
op.fn(CharacterConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},
/** The companies who produced the media */
withStudios(
args: MediaStudiosArgs | undefined,
fn: Fn<typeof StudioConnection>,
) {
query[0] = query[0].set({ subField: "studios", level, variables: args, hasSubField: true })
withStudios(op: {
args?: AtLeastOne<MediaStudiosArgs>
fn: Fn<typeof StudioConnection>
}) {
query[0] = query[0].set({ subField: "studios", level, variables: op?.args, hasSubField: true })
let tmpQuery
fn(StudioConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
op.fn(StudioConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},
/** The media's entire airing schedule */
withAiringSchedule(
args: MediaAiringScheduleArgs | undefined,
fn: Fn<typeof AiringScheduleConnection>,
) {
withAiringSchedule(op: {
args?: AtLeastOne<MediaAiringScheduleArgs>
fn: Fn<typeof AiringScheduleConnection>
}) {
query[0] = query[0].set({
subField: "airingSchedule",
level,
variables: args,
variables: op?.args,
hasSubField: true,
})
let tmpQuery
fn(AiringScheduleConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
op.fn(AiringScheduleConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},
/** The media's daily trend stats */
withTrends(
args: MediaTrendsArgs | undefined,
fn: Fn<typeof MediaTrendConnection>,
) {
query[0] = query[0].set({ subField: "trends", level, variables: args, hasSubField: true })
withTrends(op: { args?: AtLeastOne<MediaTrendsArgs>; fn: Fn<typeof MediaTrendConnection> }) {
query[0] = query[0].set({ subField: "trends", level, variables: op?.args, hasSubField: true })
let tmpQuery
fn(MediaTrendConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
op.fn(MediaTrendConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},
/** User reviews of the media */
withReviews(
args: MediaReviewsArgs | undefined,
fn: Fn<typeof ReviewConnection>,
) {
query[0] = query[0].set({ subField: "reviews", level, variables: args, hasSubField: true })
withReviews(op: { args?: AtLeastOne<MediaReviewsArgs>; fn: Fn<typeof ReviewConnection> }) {
query[0] = query[0].set({ subField: "reviews", level, variables: op?.args, hasSubField: true })
let tmpQuery
fn(ReviewConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
op.fn(ReviewConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},
@ -666,18 +669,30 @@ export const Media = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The first official release date of the media */
withStartDate(fn: Fn<typeof FuzzyDate>) {
withStartDate(fn?: Fn<typeof FuzzyDate>) {
query[0] = query[0].set({ subField: "startDate", level, hasSubField: true })
let tmpQuery
fn(FuzzyDate({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(FuzzyDate({ query: tmpQuery = [query[0]], level: level + 1 }))
else {
FuzzyDate({ query: tmpQuery = [query[0]], level: level + 1 })
.withYear()
.withMonth()
.withDay()
}
query[0] = tmpQuery[0]
return this
},
/** The last official release date of the media */
withEndDate(fn: Fn<typeof FuzzyDate>) {
withEndDate(fn?: Fn<typeof FuzzyDate>) {
query[0] = query[0].set({ subField: "endDate", level, hasSubField: true })
let tmpQuery
fn(FuzzyDate({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(FuzzyDate({ query: tmpQuery = [query[0]], level: level + 1 }))
else {
FuzzyDate({ query: tmpQuery = [query[0]], level: level + 1 })
.withYear()
.withMonth()
.withDay()
}
query[0] = tmpQuery[0]
return this
},
@ -690,10 +705,11 @@ export const Media = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The cover images of the media */
withCoverImage(fn: Fn<typeof MediaCoverImage>) {
withCoverImage(fn?: Fn<typeof MediaCoverImage>) {
query[0] = query[0].set({ subField: "coverImage", level, hasSubField: true })
let tmpQuery
fn(MediaCoverImage({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(MediaCoverImage({ query: tmpQuery = [query[0]], level: level + 1 }))
else MediaCoverImage({ query: tmpQuery = [query[0]], level: level + 1 }).withMedium()
query[0] = tmpQuery[0]
return this
},
@ -742,12 +758,11 @@ export const Media = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The authenticated user's media list entry for the media */
withMediaListEntry(
fn: Fn<typeof MediaList>,
) {
withMediaListEntry(fn?: Fn<typeof MediaList>) {
query[0] = query[0].set({ subField: "mediaListEntry", level, hasSubField: true })
let tmpQuery
fn(MediaList({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(MediaList({ query: tmpQuery = [query[0]], level: level + 1 }))
else MediaList({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},

View File

@ -82,17 +82,19 @@ export const MediaList = ({ query, level }: Fields<UpdateOperation>) => ({
query[0] = query[0].set({ subField: "createdAt", level })
return this
},
withMedia(fn: Fn<typeof Media>) {
withMedia(fn?: Fn<typeof Media>) {
query[0] = query[0].set({ subField: "media", level, hasSubField: true })
let tmpQuery
fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
else Media({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
withUser(fn: Fn<typeof User>) {
withUser(fn?: Fn<typeof User>) {
query[0] = query[0].set({ subField: "user", level, hasSubField: true })
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},

View File

@ -1,5 +1,6 @@
import { Fields, Fn, UpdateOperation } from "../types/Anilist.ts"
import { MediaListGroup } from "./Media.ts"
import { User } from "./User.ts"
export const MediaListCollection = ({ query, level }: Fields<UpdateOperation>) => ({
/** Grouped media list entries */
@ -11,8 +12,12 @@ export const MediaListCollection = ({ query, level }: Fields<UpdateOperation>) =
return this
},
/** The owner of the list */
withUser() {
query[0] = query[0].set({ subField: "user", level })
withUser(fn?: Fn<typeof User>) {
query[0] = query[0].set({ subField: "user", level, hasSubField: true })
let tmpQuery
if (fn) fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
/** If there is another chunk */

View File

@ -3,27 +3,30 @@ import { Media } from "./Media.ts"
import { PageInfo } from "./Page.ts"
const MediaTrendEdge = ({ query, level }: Fields<UpdateOperation>) => ({
withNode(fn: Fn<typeof MediaTrend>) {
withNode(fn?: Fn<typeof MediaTrend>) {
query[0] = query[0].set({ subField: "node", level, hasSubField: true })
let tmpQuery
fn(MediaTrend({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(MediaTrend({ query: tmpQuery = [query[0]], level: level + 1 }))
else MediaTrend({ query: tmpQuery = [query[0]], level: level + 1 }).withMediaId()
query[0] = tmpQuery[0]
return this
},
})
export const MediaTrendConnection = ({ query, level }: Fields<UpdateOperation>) => ({
withEdges(fn: Fn<typeof MediaTrendEdge>) {
withEdges(fn?: Fn<typeof MediaTrendEdge>) {
query[0] = query[0].set({ subField: "edges", level, hasSubField: true })
let tmpQuery
fn(MediaTrendEdge({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(MediaTrendEdge({ query: tmpQuery = [query[0]], level: level + 1 }))
else MediaTrendEdge({ query: tmpQuery = [query[0]], level: level + 1 }).withNode()
query[0] = tmpQuery[0]
return this
},
withNodes(fn: Fn<typeof MediaTrend>) {
withNodes(fn?: Fn<typeof MediaTrend>) {
query[0] = query[0].set({ subField: "nodes", level, hasSubField: true })
let tmpQuery
fn(MediaTrend({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(MediaTrend({ query: tmpQuery = [query[0]], level: level + 1 }))
else MediaTrend({ query: tmpQuery = [query[0]], level: level + 1 }).withMediaId()
query[0] = tmpQuery[0]
return this
},
@ -79,10 +82,11 @@ export const MediaTrend = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The related media */
withMedia(fn: Fn<typeof Media>) {
withMedia(fn?: Fn<typeof Media>) {
query[0] = query[0].set({ subField: "node", level, hasSubField: true })
let tmpQuery
fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
else Media({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},

View File

@ -73,10 +73,11 @@ const FollowingNotification = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The liked activity */
withUser(fn: Fn<typeof User>) {
withUser(fn?: Fn<typeof User>) {
query[0] = query[0].set({ subField: "user", level, hasSubField: true })
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
@ -114,18 +115,20 @@ const ActivityMessageNotification = ({ query, level }: Fields<UpdateOperation>)
return this
},
/** The message activity */
withMessage(fn: Fn<typeof MessageActivity>) {
withMessage(fn?: Fn<typeof MessageActivity>) {
query[0] = query[0].set({ subField: "message", level, hasSubField: true })
let tmpQuery
fn(MessageActivity({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(MessageActivity({ query: tmpQuery = [query[0]], level: level + 1 }))
else MessageActivity({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
/** The user who sent the message */
withUser(fn: Fn<typeof User>) {
withUser(fn?: Fn<typeof User>) {
query[0] = query[0].set({ subField: "user", level, hasSubField: true })
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
@ -163,18 +166,25 @@ const ActivityNotification = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The liked activity */
withActivity(fn: Fn<typeof ActivityUnion>) {
withActivity(fn?: Fn<typeof ActivityUnion>) {
query[0] = query[0].set({ subField: "activity", level, hasSubField: true })
let tmpQuery
fn(ActivityUnion({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(ActivityUnion({ query: tmpQuery = [query[0]], level: level + 1 }))
else {
ActivityUnion({ query: tmpQuery = [query[0]], level: level + 1 })
.withListActivity()
.withMessageActivity()
.withTextActivity()
}
query[0] = tmpQuery[0]
return this
},
/** The user who mentioned the authenticated user */
withUser(fn: Fn<typeof User>) {
withUser(fn?: Fn<typeof User>) {
query[0] = query[0].set({ subField: "user", level, hasSubField: true })
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
@ -212,26 +222,29 @@ const ThreadCommentNotification = ({ query, level }: Fields<UpdateOperation>) =>
return this
},
/** The thread that the relevant comment belongs to */
withThread(fn: Fn<typeof Thread>) {
withThread(fn?: Fn<typeof Thread>) {
query[0] = query[0].set({ subField: "thread", level, hasSubField: true })
let tmpQuery
fn(Thread({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Thread({ query: tmpQuery = [query[0]], level: level + 1 }))
else Thread({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
/** The thread comment that included the @ mention */
withComment(fn: Fn<typeof ThreadComment>) {
withComment(fn?: Fn<typeof ThreadComment>) {
query[0] = query[0].set({ subField: "comment", level, hasSubField: true })
let tmpQuery
fn(ThreadComment({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(ThreadComment({ query: tmpQuery = [query[0]], level: level + 1 }))
else ThreadComment({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
/** The user who mentioned the authenticated user */
withUser(fn: Fn<typeof User>) {
withUser(fn?: Fn<typeof User>) {
query[0] = query[0].set({ subField: "user", level, hasSubField: true })
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
@ -269,26 +282,29 @@ const ThreadLikeNotification = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The thread that the relevant comment belongs to */
withThread(fn: Fn<typeof Thread>) {
withThread(fn?: Fn<typeof Thread>) {
query[0] = query[0].set({ subField: "thread", level, hasSubField: true })
let tmpQuery
fn(Thread({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Thread({ query: tmpQuery = [query[0]], level: level + 1 }))
else Thread({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
/** The liked thread comment */
withComment(fn: Fn<typeof ThreadComment>) {
withComment(fn?: Fn<typeof ThreadComment>) {
query[0] = query[0].set({ subField: "comment", level, hasSubField: true })
let tmpQuery
fn(ThreadComment({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(ThreadComment({ query: tmpQuery = [query[0]], level: level + 1 }))
else ThreadComment({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
/** The user who liked the activity */
withUser(fn: Fn<typeof User>) {
withUser(fn?: Fn<typeof User>) {
query[0] = query[0].set({ subField: "user", level, hasSubField: true })
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
@ -321,10 +337,11 @@ const RelatedMediaAdditionNotification = ({ query, level }: Fields<UpdateOperati
return this
},
/** The associated media of the airing schedule */
withMedia(fn: Fn<typeof Media>) {
withMedia(fn?: Fn<typeof Media>) {
query[0] = query[0].set({ subField: "media", level, hasSubField: true })
let tmpQuery
fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
else Media({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
@ -362,10 +379,11 @@ const MediaDataChangeNotification = ({ query, level }: Fields<UpdateOperation>)
return this
},
/** The media that received data changes */
withMedia(fn: Fn<typeof Media>) {
withMedia(fn?: Fn<typeof Media>) {
query[0] = query[0].set({ subField: "media", level, hasSubField: true })
let tmpQuery
fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
else Media({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
@ -408,10 +426,11 @@ const MediaMergeNotification = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The media that was merged into */
withMedia(fn: Fn<typeof Media>) {
withMedia(fn?: Fn<typeof Media>) {
query[0] = query[0].set({ subField: "media", level, hasSubField: true })
let tmpQuery
fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
else Media({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
@ -451,7 +470,7 @@ const MediaDeletionNotification = ({ query, level }: Fields<UpdateOperation>) =>
})
export const NotificationUnion = ({ query, level }: Fields<UpdateOperation>) => ({
AiringNotification(fn: Fn<typeof AiringNotification>) {
AiringNotification(fn?: Fn<typeof AiringNotification>) {
query[0] = query[0].set({
subField: "AiringNotification",
level,
@ -459,12 +478,12 @@ export const NotificationUnion = ({ query, level }: Fields<UpdateOperation>) =>
isUnion: true,
})
let tmpQuery
fn(AiringNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(AiringNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
else AiringNotification({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
FollowingNotification(fn: Fn<typeof FollowingNotification>) {
FollowingNotification(fn?: Fn<typeof FollowingNotification>) {
query[0] = query[0].set({
subField: "FollowingNotification",
level,
@ -472,12 +491,12 @@ export const NotificationUnion = ({ query, level }: Fields<UpdateOperation>) =>
isUnion: true,
})
let tmpQuery
fn(FollowingNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(FollowingNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
else FollowingNotification({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
ActivityMessageNotification(fn: Fn<typeof ActivityMessageNotification>) {
ActivityMessageNotification(fn?: Fn<typeof ActivityMessageNotification>) {
query[0] = query[0].set({
subField: "ActivityMessageNotification",
level,
@ -485,12 +504,12 @@ export const NotificationUnion = ({ query, level }: Fields<UpdateOperation>) =>
isUnion: true,
})
let tmpQuery
fn(ActivityMessageNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(ActivityMessageNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
else ActivityMessageNotification({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
ActivityMentionNotification(fn: Fn<typeof ActivityNotification>) {
ActivityMentionNotification(fn?: Fn<typeof ActivityNotification>) {
query[0] = query[0].set({
subField: "ActivityMentionNotification",
level,
@ -498,12 +517,12 @@ export const NotificationUnion = ({ query, level }: Fields<UpdateOperation>) =>
isUnion: true,
})
let tmpQuery
fn(ActivityNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(ActivityNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
else ActivityNotification({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
ActivityReplyNotification(fn: Fn<typeof ActivityNotification>) {
ActivityReplyNotification(fn?: Fn<typeof ActivityNotification>) {
query[0] = query[0].set({
subField: "ActivityReplyNotification",
level,
@ -511,12 +530,12 @@ export const NotificationUnion = ({ query, level }: Fields<UpdateOperation>) =>
isUnion: true,
})
let tmpQuery
fn(ActivityNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(ActivityNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
else ActivityNotification({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
ActivityReplySubscribedNotification(fn: Fn<typeof ActivityNotification>) {
ActivityReplySubscribedNotification(fn?: Fn<typeof ActivityNotification>) {
query[0] = query[0].set({
subField: "ActivityReplySubscribedNotification",
level,
@ -524,12 +543,12 @@ export const NotificationUnion = ({ query, level }: Fields<UpdateOperation>) =>
isUnion: true,
})
let tmpQuery
fn(ActivityNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(ActivityNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
else ActivityNotification({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
ActivityLikeNotification(fn: Fn<typeof ActivityNotification>) {
ActivityLikeNotification(fn?: Fn<typeof ActivityNotification>) {
query[0] = query[0].set({
subField: "ActivityLikeNotification",
level,
@ -537,12 +556,12 @@ export const NotificationUnion = ({ query, level }: Fields<UpdateOperation>) =>
isUnion: true,
})
let tmpQuery
fn(ActivityNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(ActivityNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
else ActivityNotification({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
ActivityReplyLikeNotification(fn: Fn<typeof ActivityNotification>) {
ActivityReplyLikeNotification(fn?: Fn<typeof ActivityNotification>) {
query[0] = query[0].set({
subField: "ActivityReplyLikeNotification",
level,
@ -550,12 +569,12 @@ export const NotificationUnion = ({ query, level }: Fields<UpdateOperation>) =>
isUnion: true,
})
let tmpQuery
fn(ActivityNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(ActivityNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
else ActivityNotification({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
ThreadCommentMentionNotification(fn: Fn<typeof ThreadCommentNotification>) {
ThreadCommentMentionNotification(fn?: Fn<typeof ThreadCommentNotification>) {
query[0] = query[0].set({
subField: "ThreadCommentMentionNotification",
level,
@ -563,12 +582,12 @@ export const NotificationUnion = ({ query, level }: Fields<UpdateOperation>) =>
isUnion: true,
})
let tmpQuery
fn(ThreadCommentNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(ThreadCommentNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
else ThreadCommentNotification({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
ThreadCommentReplyNotification(fn: Fn<typeof ThreadCommentNotification>) {
ThreadCommentReplyNotification(fn?: Fn<typeof ThreadCommentNotification>) {
query[0] = query[0].set({
subField: "ThreadCommentReplyNotification",
level,
@ -576,12 +595,12 @@ export const NotificationUnion = ({ query, level }: Fields<UpdateOperation>) =>
isUnion: true,
})
let tmpQuery
fn(ThreadCommentNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(ThreadCommentNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
else ThreadCommentNotification({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
ThreadCommentSubscribedNotification(fn: Fn<typeof ThreadCommentNotification>) {
ThreadCommentSubscribedNotification(fn?: Fn<typeof ThreadCommentNotification>) {
query[0] = query[0].set({
subField: "ThreadCommentSubscribedNotification",
level,
@ -589,12 +608,12 @@ export const NotificationUnion = ({ query, level }: Fields<UpdateOperation>) =>
isUnion: true,
})
let tmpQuery
fn(ThreadCommentNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(ThreadCommentNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
else ThreadCommentNotification({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
ThreadCommentLikeNotification(fn: Fn<typeof ThreadCommentNotification>) {
ThreadCommentLikeNotification(fn?: Fn<typeof ThreadCommentNotification>) {
query[0] = query[0].set({
subField: "ThreadCommentLikeNotification",
level,
@ -602,12 +621,12 @@ export const NotificationUnion = ({ query, level }: Fields<UpdateOperation>) =>
isUnion: true,
})
let tmpQuery
fn(ThreadCommentNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(ThreadCommentNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
else ThreadCommentNotification({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
ThreadLikeNotification(fn: Fn<typeof ThreadLikeNotification>) {
ThreadLikeNotification(fn?: Fn<typeof ThreadLikeNotification>) {
query[0] = query[0].set({
subField: "ThreadLikeNotification",
level,
@ -615,12 +634,12 @@ export const NotificationUnion = ({ query, level }: Fields<UpdateOperation>) =>
isUnion: true,
})
let tmpQuery
fn(ThreadLikeNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(ThreadLikeNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
else ThreadLikeNotification({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
RelatedMediaAdditionNotification(fn: Fn<typeof RelatedMediaAdditionNotification>) {
RelatedMediaAdditionNotification(fn?: Fn<typeof RelatedMediaAdditionNotification>) {
query[0] = query[0].set({
subField: "RelatedMediaAdditionNotification",
level,
@ -628,12 +647,13 @@ export const NotificationUnion = ({ query, level }: Fields<UpdateOperation>) =>
isUnion: true,
})
let tmpQuery
fn(RelatedMediaAdditionNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(RelatedMediaAdditionNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
else {RelatedMediaAdditionNotification({ query: tmpQuery = [query[0]], level: level + 1 })
.withId()}
query[0] = tmpQuery[0]
return this
},
MediaDataChangeNotification(fn: Fn<typeof MediaDataChangeNotification>) {
MediaDataChangeNotification(fn?: Fn<typeof MediaDataChangeNotification>) {
query[0] = query[0].set({
subField: "MediaDataChangeNotification",
level,
@ -641,12 +661,12 @@ export const NotificationUnion = ({ query, level }: Fields<UpdateOperation>) =>
isUnion: true,
})
let tmpQuery
fn(MediaDataChangeNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(MediaDataChangeNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
else MediaDataChangeNotification({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
MediaMergeNotification(fn: Fn<typeof MediaMergeNotification>) {
MediaMergeNotification(fn?: Fn<typeof MediaMergeNotification>) {
query[0] = query[0].set({
subField: "MediaMergeNotification",
level,
@ -654,12 +674,12 @@ export const NotificationUnion = ({ query, level }: Fields<UpdateOperation>) =>
isUnion: true,
})
let tmpQuery
fn(MediaMergeNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(MediaMergeNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
else MediaMergeNotification({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
MediaDeletionNotification(fn: Fn<typeof MediaDeletionNotification>) {
MediaDeletionNotification(fn?: Fn<typeof MediaDeletionNotification>) {
query[0] = query[0].set({
subField: "MediaDeletionNotification",
level,
@ -667,9 +687,9 @@ export const NotificationUnion = ({ query, level }: Fields<UpdateOperation>) =>
isUnion: true,
})
let tmpQuery
fn(MediaDeletionNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(MediaDeletionNotification({ query: tmpQuery = [query[0]], level: level + 1 }))
else MediaDeletionNotification({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
})

View File

@ -1,4 +1,5 @@
import { Fields, Fn, UpdateOperation } from "../types/Anilist.ts"
import { AtLeastOne } from "../types/AtLeastOne.ts"
import {
PageActivitiesArgs,
PageActivityRepliesArgs,
@ -73,154 +74,216 @@ export const Page = ({ query, level }: Fields<UpdateOperation>) => ({
query[0] = tmpQuery[0]
return this
},
withUsers(args: PageUsersArgs, fn: Fn<typeof User>) {
query[0] = query[0].set({ subField: "users", level, hasSubField: true, variables: args })
withUsers(op?: { args?: AtLeastOne<PageUsersArgs>; fn?: Fn<typeof User> }) {
query[0] = query[0].set({ subField: "users", level, hasSubField: true, variables: op?.args })
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
if (op?.fn) op.fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
withMedia(args: PageMediaArgs, fn: Fn<typeof Media>) {
query[0] = query[0].set({ subField: "media", level, hasSubField: true, variables: args })
withMedia(op?: { args?: AtLeastOne<PageMediaArgs>; fn?: Fn<typeof Media> }) {
query[0] = query[0].set({ subField: "media", level, hasSubField: true, variables: op?.args })
let tmpQuery
fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
if (op?.fn) op.fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
else Media({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
withCharacters(args: PageCharactersArgs, fn: Fn<typeof Character>) {
query[0] = query[0].set({ subField: "characters", level, hasSubField: true, variables: args })
withCharacters(op?: { args?: AtLeastOne<PageCharactersArgs>; fn?: Fn<typeof Character> }) {
query[0] = query[0].set({
subField: "characters",
level,
hasSubField: true,
variables: op?.args,
})
let tmpQuery
fn(Character({ query: tmpQuery = [query[0]], level: level + 1 }))
if (op?.fn) op.fn(Character({ query: tmpQuery = [query[0]], level: level + 1 }))
else Character({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
withStaff(args: PageStaffArgs, fn: Fn<typeof Staff>) {
query[0] = query[0].set({ subField: "staff", level, hasSubField: true, variables: args })
withStaff(op?: { args?: AtLeastOne<PageStaffArgs>; fn?: Fn<typeof Staff> }) {
query[0] = query[0].set({ subField: "staff", level, hasSubField: true, variables: op?.args })
let tmpQuery
fn(Staff({ query: tmpQuery = [query[0]], level: level + 1 }))
if (op?.fn) op.fn(Staff({ query: tmpQuery = [query[0]], level: level + 1 }))
else Staff({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
withStudios(args: PageStudiosArgs, fn: Fn<typeof Studio>) {
query[0] = query[0].set({ subField: "studios", level, hasSubField: true, variables: args })
withStudios(op?: { args?: AtLeastOne<PageStudiosArgs>; fn?: Fn<typeof Studio> }) {
query[0] = query[0].set({ subField: "studios", level, hasSubField: true, variables: op?.args })
let tmpQuery
fn(Studio({ query: tmpQuery = [query[0]], level: level + 1 }))
if (op?.fn) op.fn(Studio({ query: tmpQuery = [query[0]], level: level + 1 }))
else Studio({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
withMediaList(args: PageMediaListArgs, fn: Fn<typeof MediaList>) {
query[0] = query[0].set({ subField: "mediaList", level, hasSubField: true, variables: args })
withMediaList(op?: { args?: AtLeastOne<PageMediaListArgs>; fn?: Fn<typeof MediaList> }) {
query[0] = query[0].set({
subField: "mediaList",
level,
hasSubField: true,
variables: op?.args,
})
let tmpQuery
fn(MediaList({ query: tmpQuery = [query[0]], level: level + 1 }))
if (op?.fn) op.fn(MediaList({ query: tmpQuery = [query[0]], level: level + 1 }))
else MediaList({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
withAiringSchedules(args: PageAiringSchedulesArgs, fn: Fn<typeof AiringSchedule>) {
withAiringSchedules(
op?: { args?: AtLeastOne<PageAiringSchedulesArgs>; fn?: Fn<typeof AiringSchedule> },
) {
query[0] = query[0].set({
subField: "airingSchedules",
level,
hasSubField: true,
variables: args,
variables: op?.args,
})
let tmpQuery
fn(AiringSchedule({ query: tmpQuery = [query[0]], level: level + 1 }))
if (op?.fn) op.fn(AiringSchedule({ query: tmpQuery = [query[0]], level: level + 1 }))
else AiringSchedule({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
withMediaTrends(args: PageMediaTrendsArgs, fn: Fn<typeof MediaTrend>) {
query[0] = query[0].set({ subField: "mediaTrends", level, hasSubField: true, variables: args })
withMediaTrends(op?: { args?: AtLeastOne<PageMediaTrendsArgs>; fn?: Fn<typeof MediaTrend> }) {
query[0] = query[0].set({
subField: "mediaTrends",
level,
hasSubField: true,
variables: op?.args,
})
let tmpQuery
fn(MediaTrend({ query: tmpQuery = [query[0]], level: level + 1 }))
if (op?.fn) op.fn(MediaTrend({ query: tmpQuery = [query[0]], level: level + 1 }))
else MediaTrend({ query: tmpQuery = [query[0]], level: level + 1 }).withMediaId()
query[0] = tmpQuery[0]
return this
},
withNotifications(args: PageNotificationsArgs, fn: Fn<typeof NotificationUnion>) {
withNotifications(
op: { args?: AtLeastOne<PageNotificationsArgs>; fn: Fn<typeof NotificationUnion> },
) {
query[0] = query[0].set({
subField: "notifications",
level,
hasSubField: true,
variables: args,
variables: op?.args,
})
let tmpQuery
fn(NotificationUnion({ query: tmpQuery = [query[0]], level: level + 1 }))
op.fn(NotificationUnion({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},
withFollowers(args: PageFollowersArgs, fn: Fn<typeof User>) {
query[0] = query[0].set({ subField: "followers", level, hasSubField: true, variables: args })
withFollowers(op?: { args?: AtLeastOne<PageFollowersArgs>; fn?: Fn<typeof User> }) {
query[0] = query[0].set({
subField: "followers",
level,
hasSubField: true,
variables: op?.args,
})
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
if (op?.fn) op.fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
withFollowing(args: PageFollowingArgs, fn: Fn<typeof User>) {
query[0] = query[0].set({ subField: "following", level, hasSubField: true, variables: args })
withFollowing(op?: { args?: AtLeastOne<PageFollowingArgs>; fn?: Fn<typeof User> }) {
query[0] = query[0].set({
subField: "following",
level,
hasSubField: true,
variables: op?.args,
})
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
if (op?.fn) op.fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
withActivities(args: PageActivitiesArgs, fn: Fn<typeof ActivityUnion>) {
query[0] = query[0].set({ subField: "activities", level, hasSubField: true, variables: args })
withActivities(op?: { args?: AtLeastOne<PageActivitiesArgs>; fn?: Fn<typeof ActivityUnion> }) {
query[0] = query[0].set({
subField: "activities",
level,
hasSubField: true,
variables: op?.args,
})
let tmpQuery
fn(ActivityUnion({ query: tmpQuery = [query[0]], level: level + 1 }))
if (op?.fn) op.fn(ActivityUnion({ query: tmpQuery = [query[0]], level: level + 1 }))
else {
ActivityUnion({ query: tmpQuery = [query[0]], level: level + 1 })
.withListActivity()
.withMessageActivity()
.withTextActivity()
}
query[0] = tmpQuery[0]
return this
},
withActivityReplies(args: PageActivityRepliesArgs, fn: Fn<typeof ActivityReply>) {
withActivityReplies(
op?: { args?: AtLeastOne<PageActivityRepliesArgs>; fn?: Fn<typeof ActivityReply> },
) {
query[0] = query[0].set({
subField: "activityReplies",
level,
hasSubField: true,
variables: args,
variables: op?.args,
})
let tmpQuery
fn(ActivityReply({ query: tmpQuery = [query[0]], level: level + 1 }))
if (op?.fn) op.fn(ActivityReply({ query: tmpQuery = [query[0]], level: level + 1 }))
else ActivityReply({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
withThreads(args: PageThreadsArgs, fn: Fn<typeof Thread>) {
query[0] = query[0].set({ subField: "threads", level, hasSubField: true, variables: args })
withThreads(op?: { args?: AtLeastOne<PageThreadsArgs>; fn?: Fn<typeof Thread> }) {
query[0] = query[0].set({ subField: "threads", level, hasSubField: true, variables: op?.args })
let tmpQuery
fn(Thread({ query: tmpQuery = [query[0]], level: level + 1 }))
if (op?.fn) op.fn(Thread({ query: tmpQuery = [query[0]], level: level + 1 }))
else Thread({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
withThreadComments(args: PageThreadCommentsArgs, fn: Fn<typeof ThreadComment>) {
withThreadComments(
op?: { args?: AtLeastOne<PageThreadCommentsArgs>; fn?: Fn<typeof ThreadComment> },
) {
query[0] = query[0].set({
subField: "threadComments",
level,
hasSubField: true,
variables: args,
variables: op?.args,
})
let tmpQuery
fn(ThreadComment({ query: tmpQuery = [query[0]], level: level + 1 }))
if (op?.fn) op.fn(ThreadComment({ query: tmpQuery = [query[0]], level: level + 1 }))
else ThreadComment({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
withReviews(args: PageReviewsArgs, fn: Fn<typeof Review>) {
query[0] = query[0].set({ subField: "reviews", level, hasSubField: true, variables: args })
withReviews(op?: { args?: AtLeastOne<PageReviewsArgs>; fn?: Fn<typeof Review> }) {
query[0] = query[0].set({ subField: "reviews", level, hasSubField: true, variables: op?.args })
let tmpQuery
fn(Review({ query: tmpQuery = [query[0]], level: level + 1 }))
if (op?.fn) op.fn(Review({ query: tmpQuery = [query[0]], level: level + 1 }))
else Review({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
withRecommendations(args: PageRecommendationsArgs, fn: Fn<typeof Recommendation>) {
withRecommendations(
op?: { args?: AtLeastOne<PageRecommendationsArgs>; fn?: Fn<typeof Recommendation> },
) {
query[0] = query[0].set({
subField: "recommendations",
level,
hasSubField: true,
variables: args,
variables: op?.args,
})
let tmpQuery
fn(Recommendation({ query: tmpQuery = [query[0]], level: level + 1 }))
if (op?.fn) op.fn(Recommendation({ query: tmpQuery = [query[0]], level: level + 1 }))
else Recommendation({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
withLikes(args: PageLikesArgs, fn: Fn<typeof User>) {
query[0] = query[0].set({ subField: "likes", level, hasSubField: true, variables: args })
withLikes(op?: { args?: AtLeastOne<PageLikesArgs>; fn?: Fn<typeof User> }) {
query[0] = query[0].set({ subField: "likes", level, hasSubField: true, variables: op?.args })
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
if (op?.fn) op.fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},

View File

@ -4,26 +4,29 @@ import { User } from "./User.ts"
import { PageInfo } from "./Page.ts"
const RecommendationEdge = ({ query, level }: Fields<UpdateOperation>) => ({
withNode(fn: Fn<typeof Recommendation>) {
withNode(fn?: Fn<typeof Recommendation>) {
query[0] = query[0].set({ subField: "node", level, hasSubField: true })
let tmpQuery
fn(Recommendation({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Recommendation({ query: tmpQuery = [query[0]], level: level + 1 }))
else Recommendation({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
})
export const RecommendationConnection = ({ query, level }: Fields<UpdateOperation>) => ({
withEdges(fn: Fn<typeof RecommendationEdge>) {
withEdges(fn?: Fn<typeof RecommendationEdge>) {
query[0] = query[0].set({ subField: "edges", level, hasSubField: true })
let tmpQuery
fn(RecommendationEdge({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(RecommendationEdge({ query: tmpQuery = [query[0]], level: level + 1 }))
else RecommendationEdge({ query: tmpQuery = [query[0]], level: level + 1 }).withNode()
query[0] = tmpQuery[0]
return this
},
withNodes(fn: Fn<typeof Recommendation>) {
withNodes(fn?: Fn<typeof Recommendation>) {
query[0] = query[0].set({ subField: "nodes", level, hasSubField: true })
let tmpQuery
fn(Recommendation({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Recommendation({ query: tmpQuery = [query[0]], level: level + 1 }))
else Recommendation({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
@ -54,26 +57,29 @@ export const Recommendation = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The media the recommendation is from */
withMedia(fn: Fn<typeof Media>) {
withMedia(fn?: Fn<typeof Media>) {
query[0] = query[0].set({ subField: "media", level, hasSubField: true })
let tmpQuery
fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
else Media({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
/** The recommended media */
withMediaRecommendation(fn: Fn<typeof Media>) {
withMediaRecommendation(fn?: Fn<typeof Media>) {
query[0] = query[0].set({ subField: "media", level, hasSubField: true })
let tmpQuery
fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
else Media({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
/** The user that first created the recommendation */
withUser(fn: Fn<typeof User>) {
withUser(fn?: Fn<typeof User>) {
query[0] = query[0].set({ subField: "user", level, hasSubField: true })
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},

View File

@ -4,27 +4,30 @@ import { Media } from "./Media.ts"
import { User } from "./User.ts"
const ReviewEdge = ({ query, level }: Fields<UpdateOperation>) => ({
withNode(fn: Fn<typeof Review>) {
withNode(fn?: Fn<typeof Review>) {
query[0] = query[0].set({ subField: "node", level, hasSubField: true })
let tmpQuery
fn(Review({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Review({ query: tmpQuery = [query[0]], level: level + 1 }))
else Review({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
})
export const ReviewConnection = ({ query, level }: Fields<UpdateOperation>) => ({
withEdges(fn: Fn<typeof ReviewEdge>) {
withEdges(fn?: Fn<typeof ReviewEdge>) {
query[0] = query[0].set({ subField: "edges", level, hasSubField: true })
let tmpQuery
fn(ReviewEdge({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(ReviewEdge({ query: tmpQuery = [query[0]], level: level + 1 }))
else ReviewEdge({ query: tmpQuery = [query[0]], level: level + 1 }).withNode()
query[0] = tmpQuery[0]
return this
},
withNodes(fn: Fn<typeof Review>) {
withNodes(fn?: Fn<typeof Review>) {
query[0] = query[0].set({ subField: "nodes", level, hasSubField: true })
let tmpQuery
fn(Review({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Review({ query: tmpQuery = [query[0]], level: level + 1 }))
else Review({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
@ -110,18 +113,20 @@ export const Review = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The creator of the review */
withUser(fn: Fn<typeof User>) {
withUser(fn?: Fn<typeof User>) {
query[0] = query[0].set({ subField: "user", level, hasSubField: true })
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
/** The media the review is of */
withMedia(fn: Fn<typeof Media>) {
withMedia(fn?: Fn<typeof Media>) {
query[0] = query[0].set({ subField: "media", level, hasSubField: true })
let tmpQuery
fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
else Media({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},

View File

@ -12,55 +12,71 @@ import type { AtLeastOne } from "../types/AtLeastOne.ts"
import { SiteTrendConnection } from "./SiteTrend.ts"
export const SiteStatistics = ({ query, level }: Fields<UpdateOperation>) => ({
withUsers(args: AtLeastOne<SiteStatisticsUsersArgs>, fn: Fn<typeof SiteTrendConnection>) {
query[0] = query[0].set({ subField: "users", level, hasSubField: true, variables: args })
withUsers(
op: { args?: AtLeastOne<SiteStatisticsUsersArgs>; fn: Fn<typeof SiteTrendConnection> },
) {
query[0] = query[0].set({ subField: "users", level, hasSubField: true, variables: op?.args })
let tmpQuery
fn(SiteTrendConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
op.fn(SiteTrendConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},
withAnime(args: AtLeastOne<SiteStatisticsAnimeArgs>, fn: Fn<typeof SiteTrendConnection>) {
query[0] = query[0].set({ subField: "anime", level, hasSubField: true, variables: args })
withAnime(
op: { args?: AtLeastOne<SiteStatisticsAnimeArgs>; fn: Fn<typeof SiteTrendConnection> },
) {
query[0] = query[0].set({ subField: "anime", level, hasSubField: true, variables: op?.args })
let tmpQuery
fn(SiteTrendConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
op.fn(SiteTrendConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},
withManga(args: AtLeastOne<SiteStatisticsMangaArgs>, fn: Fn<typeof SiteTrendConnection>) {
query[0] = query[0].set({ subField: "manga", level, hasSubField: true, variables: args })
withManga(
op: { args?: AtLeastOne<SiteStatisticsMangaArgs>; fn: Fn<typeof SiteTrendConnection> },
) {
query[0] = query[0].set({ subField: "manga", level, hasSubField: true, variables: op?.args })
let tmpQuery
fn(SiteTrendConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
op.fn(SiteTrendConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},
withCharacters(
args: AtLeastOne<SiteStatisticsCharactersArgs>,
fn: Fn<typeof SiteTrendConnection>,
op: { args?: AtLeastOne<SiteStatisticsCharactersArgs>; fn: Fn<typeof SiteTrendConnection> },
) {
query[0] = query[0].set({ subField: "characters", level, hasSubField: true, variables: args })
query[0] = query[0].set({
subField: "characters",
level,
hasSubField: true,
variables: op?.args,
})
let tmpQuery
fn(SiteTrendConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
op.fn(SiteTrendConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},
withStaff(args: AtLeastOne<SiteStatisticsStaffArgs>, fn: Fn<typeof SiteTrendConnection>) {
query[0] = query[0].set({ subField: "staff", level, hasSubField: true, variables: args })
withStaff(
op: { args?: AtLeastOne<SiteStatisticsStaffArgs>; fn: Fn<typeof SiteTrendConnection> },
) {
query[0] = query[0].set({ subField: "staff", level, hasSubField: true, variables: op?.args })
let tmpQuery
fn(SiteTrendConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
op.fn(SiteTrendConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},
withStudios(args: AtLeastOne<SiteStatisticsStudiosArgs>, fn: Fn<typeof SiteTrendConnection>) {
query[0] = query[0].set({ subField: "studios", level, hasSubField: true, variables: args })
withStudios(
op: { args?: AtLeastOne<SiteStatisticsStudiosArgs>; fn: Fn<typeof SiteTrendConnection> },
) {
query[0] = query[0].set({ subField: "studios", level, hasSubField: true, variables: op?.args })
let tmpQuery
fn(SiteTrendConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
op.fn(SiteTrendConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},
withReviews(args: AtLeastOne<SiteStatisticsReviewsArgs>, fn: Fn<typeof SiteTrendConnection>) {
query[0] = query[0].set({ subField: "reviews", level, hasSubField: true, variables: args })
withReviews(
op: { args?: AtLeastOne<SiteStatisticsReviewsArgs>; fn: Fn<typeof SiteTrendConnection> },
) {
query[0] = query[0].set({ subField: "reviews", level, hasSubField: true, variables: op?.args })
let tmpQuery
fn(SiteTrendConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
op.fn(SiteTrendConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},

View File

@ -9,6 +9,7 @@ import { PageInfo } from "./Page.ts"
import { User } from "./User.ts"
import { CharacterConnection } from "./Character.ts"
import { MediaConnection } from "./Media.ts"
import { AtLeastOne } from "../types/AtLeastOne.ts"
export const StaffRoleType = ({ query, level }: Fields<UpdateOperation>) => ({
/** The voice actors of the character */
@ -32,10 +33,11 @@ export const StaffRoleType = ({ query, level }: Fields<UpdateOperation>) => ({
})
const StaffEdge = ({ query, level }: Fields<UpdateOperation>) => ({
withNode(fn: Fn<typeof Staff>) {
withNode(fn?: Fn<typeof Staff>) {
query[0] = query[0].set({ subField: "node", level, hasSubField: true })
let tmpQuery
fn(Staff({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Staff({ query: tmpQuery = [query[0]], level: level + 1 }))
else Staff({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
@ -57,17 +59,19 @@ const StaffEdge = ({ query, level }: Fields<UpdateOperation>) => ({
})
export const StaffConnection = ({ query, level }: Fields<UpdateOperation>) => ({
withEdges(fn: Fn<typeof StaffEdge>) {
withEdges(fn?: Fn<typeof StaffEdge>) {
query[0] = query[0].set({ subField: "edges", level, hasSubField: true })
let tmpQuery
fn(StaffEdge({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(StaffEdge({ query: tmpQuery = [query[0]], level: level + 1 }))
else StaffEdge({ query: tmpQuery = [query[0]], level: level + 1 }).withNode()
query[0] = tmpQuery[0]
return this
},
withNodes(fn: Fn<typeof Staff>) {
withNodes(fn?: Fn<typeof Staff>) {
query[0] = query[0].set({ subField: "nodes", level, hasSubField: true })
let tmpQuery
fn(Staff({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Staff({ query: tmpQuery = [query[0]], level: level + 1 }))
else Staff({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
@ -139,10 +143,11 @@ export const Staff = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The names of the staff member */
withName(fn: Fn<typeof StaffName>) {
withName(fn?: Fn<typeof StaffName>) {
query[0] = query[0].set({ subField: "name", level, hasSubField: true })
let tmpQuery
fn(StaffName({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(StaffName({ query: tmpQuery = [query[0]], level: level + 1 }))
else StaffName({ query: tmpQuery = [query[0]], level: level + 1 }).withUserPreferred()
query[0] = tmpQuery[0]
return this
},
@ -152,10 +157,11 @@ export const Staff = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The staff images */
withImage(fn: Fn<typeof StaffImage>) {
withImage(fn?: Fn<typeof StaffImage>) {
query[0] = query[0].set({ subField: "image", level, hasSubField: true })
let tmpQuery
fn(StaffImage({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(StaffImage({ query: tmpQuery = [query[0]], level: level + 1 }))
else StaffImage({ query: tmpQuery = [query[0]], level: level + 1 }).withMedium()
query[0] = tmpQuery[0]
return this
},
@ -174,17 +180,29 @@ export const Staff = ({ query, level }: Fields<UpdateOperation>) => ({
query[0] = query[0].set({ subField: "gender", level })
return this
},
withDateOfBirth(fn: Fn<typeof FuzzyDate>) {
withDateOfBirth(fn?: Fn<typeof FuzzyDate>) {
query[0] = query[0].set({ subField: "dateOfBirth", level, hasSubField: true })
let tmpQuery
fn(FuzzyDate({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(FuzzyDate({ query: tmpQuery = [query[0]], level: level + 1 }))
else {
FuzzyDate({ query: tmpQuery = [query[0]], level: level + 1 })
.withYear()
.withMonth()
.withDay()
}
query[0] = tmpQuery[0]
return this
},
withDateOfDeath(fn: Fn<typeof FuzzyDate>) {
withDateOfDeath(fn?: Fn<typeof FuzzyDate>) {
query[0] = query[0].set({ subField: "dateOfDeath", level, hasSubField: true })
let tmpQuery
fn(FuzzyDate({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(FuzzyDate({ query: tmpQuery = [query[0]], level: level + 1 }))
else {
FuzzyDate({ query: tmpQuery = [query[0]], level: level + 1 })
.withYear()
.withMonth()
.withDay()
}
query[0] = tmpQuery[0]
return this
},
@ -224,47 +242,65 @@ export const Staff = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** Media where the staff member has a production role */
withStaffMedia(args: StaffStaffMediaArgs | undefined, fn: Fn<typeof MediaConnection>) {
query[0] = query[0].set({ subField: "staffMedia", level, variables: args, hasSubField: true })
withStaffMedia(
op: { args?: AtLeastOne<StaffStaffMediaArgs> | undefined; fn: Fn<typeof MediaConnection> },
) {
query[0] = query[0].set({
subField: "staffMedia",
level,
variables: op?.args,
hasSubField: true,
})
let tmpQuery
fn(MediaConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
op.fn(MediaConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},
/** Characters voiced by the actor */
withCharacters(args: StaffCharactersArgs | undefined, fn: Fn<typeof CharacterConnection>) {
query[0] = query[0].set({ subField: "characters", level, variables: args, hasSubField: true })
withCharacters(
op: { args?: AtLeastOne<StaffCharactersArgs> | undefined; fn: Fn<typeof CharacterConnection> },
) {
query[0] = query[0].set({
subField: "characters",
level,
variables: op?.args,
hasSubField: true,
})
let tmpQuery
fn(CharacterConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
op.fn(CharacterConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},
/** Media the actor voiced characters in. (Same data as characters with media as node instead of characters) */
withCharacterMedia(args: StaffCharacterMediaArgs | undefined, fn: Fn<typeof MediaConnection>) {
withCharacterMedia(
op: { args?: AtLeastOne<StaffCharacterMediaArgs>; fn: Fn<typeof MediaConnection> },
) {
query[0] = query[0].set({
subField: "characterMedia",
level,
variables: args,
variables: op?.args,
hasSubField: true,
})
let tmpQuery
fn(MediaConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
op.fn(MediaConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},
/** Staff member that the submission is referencing */
withStaff(fn: Fn<typeof Staff>) {
withStaff(fn?: Fn<typeof Staff>) {
query[0] = query[0].set({ subField: "staff", level, hasSubField: true })
let tmpQuery
fn(Staff({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Staff({ query: tmpQuery = [query[0]], level: level + 1 }))
else Staff({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
/** Submitter for the submission */
withSubmitter(fn: Fn<typeof User>) {
withSubmitter(fn?: Fn<typeof User>) {
query[0] = query[0].set({ subField: "submitter", level, hasSubField: true })
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},

View File

@ -2,12 +2,14 @@ import { StudioMediaArgs } from "../types/generated/graphql.ts"
import { Fields, Fn, UpdateOperation } from "../types/Anilist.ts"
import { PageInfo } from "./Page.ts"
import { MediaConnection } from "./Media.ts"
import { AtLeastOne } from "../types/AtLeastOne.ts"
const StudioEdge = ({ query, level }: Fields<UpdateOperation>) => ({
withNode(fn: Fn<typeof Studio>) {
withNode(fn?: Fn<typeof Studio>) {
query[0] = query[0].set({ subField: "node", level, hasSubField: true })
let tmpQuery
fn(Studio({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Studio({ query: tmpQuery = [query[0]], level: level + 1 }))
else Studio({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
@ -29,17 +31,19 @@ const StudioEdge = ({ query, level }: Fields<UpdateOperation>) => ({
})
export const StudioConnection = ({ query, level }: Fields<UpdateOperation>) => ({
withEdges(fn: Fn<typeof StudioEdge>) {
withEdges(fn?: Fn<typeof StudioEdge>) {
query[0] = query[0].set({ subField: "edges", level, hasSubField: true })
let tmpQuery
fn(StudioEdge({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(StudioEdge({ query: tmpQuery = [query[0]], level: level + 1 }))
else StudioEdge({ query: tmpQuery = [query[0]], level: level + 1 }).withNode()
query[0] = tmpQuery[0]
return this
},
withNodes(fn: Fn<typeof Studio>) {
withNodes(fn?: Fn<typeof Studio>) {
query[0] = query[0].set({ subField: "nodes", level, hasSubField: true })
let tmpQuery
fn(Studio({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Studio({ query: tmpQuery = [query[0]], level: level + 1 }))
else Studio({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
@ -70,10 +74,10 @@ export const Studio = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The media the studio has worked on */
withMedia(args: StudioMediaArgs | undefined, fn: Fn<typeof MediaConnection>) {
query[0] = query[0].set({ subField: "media", level, variables: args, hasSubField: true })
withMedia(op: { args?: AtLeastOne<StudioMediaArgs>; fn: Fn<typeof MediaConnection> }) {
query[0] = query[0].set({ subField: "media", level, variables: op?.args, hasSubField: true })
let tmpQuery
fn(MediaConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
op.fn(MediaConnection({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},

View File

@ -99,34 +99,28 @@ export const Thread = ({ query, level }: Fields<UpdateOperation>) => ({
/** The owner of the thread */
withUser(fn?: Fn<typeof User>) {
query[0] = query[0].set({ subField: "user", level, hasSubField: true })
if (!fn) query[0] = query[0].set({ subField: "id", level: level + 1 })
else {
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
}
let tmpQuery
if (fn) fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
/** The user to last reply to the thread */
withReplyUser(fn?: Fn<typeof User>) {
query[0] = query[0].set({ subField: "replayUser", level, hasSubField: true })
if (!fn) query[0] = query[0].set({ subField: "id", level: level + 1 })
else {
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
}
let tmpQuery
if (fn) fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
/** The users who liked the thread */
withLikes(fn?: Fn<typeof User>) {
query[0] = query[0].set({ subField: "likes", level, hasSubField: true })
if (!fn) query[0] = query[0].set({ subField: "id", level: level + 1 })
else {
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
}
let tmpQuery
if (fn) fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
/** The url for the thread page on the AniList website */
@ -135,9 +129,7 @@ export const Thread = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The categories of the thread */
withCategories(
fn: Fn<typeof ThreadCategory>,
) {
withCategories(fn: Fn<typeof ThreadCategory>) {
query[0] = query[0].set({ subField: "categories", level })
let tmpQuery
fn(ThreadCategory({ query: tmpQuery = [query[0]], level: level + 1 }))
@ -145,10 +137,11 @@ export const Thread = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/** The media categories of the thread */
withMediaCategories(fn: Fn<typeof Media>) {
withMediaCategories(fn?: Fn<typeof Media>) {
query[0] = query[0].set({ subField: "mediaCategories", level, hasSubField: true })
let tmpQuery
fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
if (fn) fn(Media({ query: tmpQuery = [query[0]], level: level + 1 }))
else Media({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},

View File

@ -51,35 +51,28 @@ export const ThreadComment = ({ query, level }: Fields<UpdateOperation>) => ({
/** The thread the comment belongs to */
withThread(fn?: Fn<typeof Thread>) {
query[0] = query[0].set({ subField: "thread", level, hasSubField: true })
if (!fn) query[0] = query[0].set({ subField: "id", level: level + 1 })
else {
let tmpQuery
fn(Thread({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
}
let tmpQuery
if (fn) fn(Thread({ query: tmpQuery = [query[0]], level: level + 1 }))
else Thread({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
/** The user who created the comment */
withUser(fn?: Fn<typeof User>) {
query[0] = query[0].set({ subField: "user", level, hasSubField: true })
if (!fn) query[0] = query[0].set({ subField: "id", level: level + 1 })
else {
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
}
let tmpQuery
if (fn) fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
/** The users who liked the comment */
withLikes(fn?: Fn<typeof User>) {
query[0] = query[0].set({ subField: "likes", level, hasSubField: true })
if (!fn) query[0] = query[0].set({ subField: "id", level: level + 1 })
else {
let tmpQuery
fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
}
let tmpQuery
if (fn) fn(User({ query: tmpQuery = [query[0]], level: level + 1 }))
else User({ query: tmpQuery = [query[0]], level: level + 1 }).withId()
query[0] = tmpQuery[0]
return this
},
/** The comment's child reply comments */

View File

@ -66,16 +66,11 @@ export const UserOptions = ({ query, level }: Fields<UpdateOperation>) => ({
},
/** Notification options */
withNotificationOptions(
fn?: Fn<typeof NotificationOption>,
) {
withNotificationOptions(fn: Fn<typeof NotificationOption>) {
query[0] = query[0].set({ subField: "notificationOptions", level })
if (!fn) query[0] = query[0].set({ subField: "type", level: level + 1 })
else {
let tmpQuery
fn(NotificationOption({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
}
let tmpQuery
fn(NotificationOption({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},
@ -104,20 +99,15 @@ export const UserOptions = ({ query, level }: Fields<UpdateOperation>) => ({
},
/** The list activity types the user has disabled from being created from list updates */
withDisabledListActivity(
fn?: Fn<typeof ListActivityOption>,
) {
withDisabledListActivity(fn: Fn<typeof ListActivityOption>) {
query[0] = query[0].set({
subField: "disabledListActivity",
level,
hasSubField: true,
})
if (!fn) query[0] = query[0].set({ subField: "type", level: level + 1 })
else {
let tmpQuery
fn(ListActivityOption({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
}
let tmpQuery
fn(ListActivityOption({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
return this
},
})
@ -154,12 +144,10 @@ export const User = ({ query, level }: Fields<UpdateOperation>) => ({
/** The user's avatar images */
withAvatar(fn?: Fn<typeof UserAvatar>) {
query[0] = query[0].set({ subField: "avatar", level, hasSubField: true })
if (!fn) query[0] = query[0].set({ subField: "medium", level: level + 1 })
else {
let tmpQuery
fn(UserAvatar({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
}
let tmpQuery
if (fn) fn(UserAvatar({ query: tmpQuery = [query[0]], level: level + 1 }))
else UserAvatar({ query: tmpQuery = [query[0]], level: level + 1 }).withMedium()
query[0] = tmpQuery[0]
return this
},
/** The user's banner images */
@ -195,17 +183,17 @@ export const User = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/* The user's media list options */
withMediaListOptions(_fn?: Fn<never>) {
withMediaListOptions(fn?: Fn<never>) {
query[0] = query[0].set({ subField: "mediaListOptions", level })
return this
},
/* The users favourites */
withFavourites(args?: { page: number }, _fn?: Fn<never>) {
withFavourites(args?: { page: number }, fn?: Fn<never>) {
query[0] = query[0].set({ subField: "favourites", level, variables: args })
return this
},
/* The users anime & manga list statistics */
withStatistics(_fn?: Fn<never>) {
withStatistics(fn?: Fn<never>) {
query[0] = query[0].set({ subField: "statistics", level })
return this
},
@ -245,20 +233,16 @@ export const User = ({ query, level }: Fields<UpdateOperation>) => ({
return this
},
/* The user's previously used names. */
withPreviousNames(
fn?: Fn<typeof UserPreviousName>,
) {
withPreviousNames(fn?: Fn<typeof UserPreviousName>) {
query[0] = query[0].set({
subField: "previousNames",
level,
hasSubField: true,
})
if (!fn) query[0] = query[0].set({ subField: "name", level: level + 1 })
else {
let tmpQuery
fn(UserPreviousName({ query: tmpQuery = [query[0]], level: level + 1 }))
query[0] = tmpQuery[0]
}
let tmpQuery
if (fn) fn(UserPreviousName({ query: tmpQuery = [query[0]], level: level + 1 }))
else UserPreviousName({ query: tmpQuery = [query[0]], level: level + 1 }).withName()
query[0] = tmpQuery[0]
return this
},
})