aboutsummaryrefslogtreecommitdiff
path: root/src/graphql/anime
diff options
context:
space:
mode:
Diffstat (limited to 'src/graphql/anime')
-rw-r--r--src/graphql/anime/index.ts4
-rw-r--r--src/graphql/anime/resolvers.ts48
-rw-r--r--src/graphql/anime/schema.graphql30
3 files changed, 46 insertions, 36 deletions
diff --git a/src/graphql/anime/index.ts b/src/graphql/anime/index.ts
index 925a7ece..d5eef7f2 100644
--- a/src/graphql/anime/index.ts
+++ b/src/graphql/anime/index.ts
@@ -1,4 +1,4 @@
-import typeDefs from './schema.graphql?raw';
-import { resolvers } from './resolvers';
+import typeDefs from "./schema.graphql?raw";
+import { resolvers } from "./resolvers";
export default { typeDefs, resolvers };
diff --git a/src/graphql/anime/resolvers.ts b/src/graphql/anime/resolvers.ts
index 5f49b364..2b897eda 100644
--- a/src/graphql/anime/resolvers.ts
+++ b/src/graphql/anime/resolvers.ts
@@ -1,22 +1,32 @@
-import type { WithIndex } from '../$types';
-import type { Resolvers } from './$types';
+import type { WithIndex } from "../$types";
+import type { Resolvers as RootResolvers } from "../$types";
-export const resolvers: WithIndex<Resolvers> = {
- Query: {
- Anime: async (_, args) => {
- const timezone = args.timezone || 'Asia/Tokyo';
+type AnimeResolvers = Pick<
+ RootResolvers,
+ "Query" | "Anime" | "Subtitles" | "SubtitleSchedule" | "Subtitle"
+>;
- return {
- subtitles: {
- timezone,
- schedule: Object.fromEntries(
- Object.entries(
- (await (await fetch(`https://subsplease.org/api/?f=schedule&tz=${timezone}`)).json())
- .schedule
- ).map(([key, value]) => [key.toLowerCase(), value])
- )
- }
- };
- }
- }
+export const resolvers: WithIndex<AnimeResolvers> = {
+ Query: {
+ Anime: async (_, args) => {
+ const timezone = args.timezone || "Asia/Tokyo";
+
+ return {
+ subtitles: {
+ timezone,
+ schedule: Object.fromEntries(
+ Object.entries(
+ (
+ await (
+ await fetch(
+ `https://subsplease.org/api/?f=schedule&tz=${timezone}`,
+ )
+ ).json()
+ ).schedule,
+ ).map(([key, value]) => [key.toLowerCase(), value]),
+ ),
+ },
+ };
+ },
+ },
};
diff --git a/src/graphql/anime/schema.graphql b/src/graphql/anime/schema.graphql
index a0415944..d5774966 100644
--- a/src/graphql/anime/schema.graphql
+++ b/src/graphql/anime/schema.graphql
@@ -1,29 +1,29 @@
type Query {
- Anime(timezone: String): Anime!
+ Anime(timezone: String): Anime!
}
type Anime {
- subtitles: Subtitles
+ subtitles: Subtitles
}
type Subtitles {
- timezone: String
- schedule: SubtitleSchedule
+ timezone: String
+ schedule: SubtitleSchedule
}
type SubtitleSchedule {
- monday: [Subtitle]
- tuesday: [Subtitle]
- wednesday: [Subtitle]
- thursday: [Subtitle]
- friday: [Subtitle]
- saturday: [Subtitle]
- sunday: [Subtitle]
+ monday: [Subtitle]
+ tuesday: [Subtitle]
+ wednesday: [Subtitle]
+ thursday: [Subtitle]
+ friday: [Subtitle]
+ saturday: [Subtitle]
+ sunday: [Subtitle]
}
type Subtitle {
- title: String
- page: String
- image_url: String
- time: String
+ title: String
+ page: String
+ image_url: String
+ time: String
}