aboutsummaryrefslogtreecommitdiffstats
path: root/src/types/graphql/queries.ts
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2023-11-24 20:00:08 +0100
committerArmand Philippot <git@armandphilippot.com>2023-11-27 14:47:51 +0100
commitf111685c5886f3e77edfd3621c98d8ac1b9bcce4 (patch)
tree62a541fe3afeb64bf745443706fbfb02e96c5230 /src/types/graphql/queries.ts
parentbee515641cb144be9a855ff2cac258d2fedab21d (diff)
refactor(services, types): reorganize GraphQL fetchers and data types
The Typescript mapped types was useful for autocompletion in fetchers but their are harder to maintain. I think it's better to keep each query close to its fetcher to have a better understanding of the fetched data. So I: * colocate queries with their own fetcher * colocate mutations with their own mutator * remove Typescript mapped types for queries and mutations * move data convertors inside graphql services * rename most of data types and fetchers
Diffstat (limited to 'src/types/graphql/queries.ts')
-rw-r--r--src/types/graphql/queries.ts143
1 files changed, 0 insertions, 143 deletions
diff --git a/src/types/graphql/queries.ts b/src/types/graphql/queries.ts
deleted file mode 100644
index 83e9c67..0000000
--- a/src/types/graphql/queries.ts
+++ /dev/null
@@ -1,143 +0,0 @@
-import {
- articleBySlugQuery,
- articlesCardQuery,
- articlesEndCursorQuery,
- articlesQuery,
- articlesSlugQuery,
- commentsQuery,
- thematicBySlugQuery,
- thematicsListQuery,
- thematicsSlugQuery,
- topicBySlugQuery,
- topicsListQuery,
- topicsSlugQuery,
- totalArticlesQuery,
- totalThematicsQuery,
- totalTopicsQuery,
-} from '../../services/graphql';
-import { Slug } from '../app';
-import { RawComment } from '../raw-data';
-import {
- GraphQLEdges,
- GraphQLEdgesInput,
- GraphQLNodes,
- GraphQLPageInfo,
-} from './generics';
-
-//===========================================================================
-// Existing queries list
-//===========================================================================
-
-export type Queries =
- | typeof articlesQuery
- | typeof articleBySlugQuery
- | typeof articlesCardQuery
- | typeof articlesEndCursorQuery
- | typeof articlesSlugQuery
- | typeof commentsQuery
- | typeof thematicBySlugQuery
- | typeof thematicsListQuery
- | typeof thematicsSlugQuery
- | typeof topicBySlugQuery
- | typeof topicsListQuery
- | typeof topicsSlugQuery
- | typeof totalArticlesQuery
- | typeof totalThematicsQuery
- | typeof totalTopicsQuery;
-
-//===========================================================================
-// Queries response types
-//===========================================================================
-
-export type ArticleResponse<T> = {
- post: T;
-};
-
-export type ArticlesResponse<T> = {
- posts: T;
-};
-
-export type CommentsResponse<T> = {
- comments: T;
-};
-
-export type ThematicResponse<T> = {
- thematic: T;
-};
-
-export type ThematicsResponse<T> = {
- thematics: T;
-};
-
-export type TopicResponse<T> = {
- topic: T;
-};
-
-export type TopicsResponse<T> = {
- topics: T;
-};
-
-export type EdgesResponse<T> = {
- edges: GraphQLEdges<T>[];
- pageInfo: GraphQLPageInfo;
-};
-
-export type EndCursorResponse = {
- pageInfo: Pick<GraphQLPageInfo, 'endCursor'>;
-};
-
-export type QueriesResponseMap<T> = {
- [articleBySlugQuery]: ArticleResponse<T>;
- [articlesCardQuery]: ArticlesResponse<GraphQLNodes<T>>;
- [articlesEndCursorQuery]: ArticlesResponse<EndCursorResponse>;
- [articlesQuery]: ArticlesResponse<EdgesResponse<T>>;
- [articlesSlugQuery]: ArticlesResponse<EdgesResponse<T>>;
- [commentsQuery]: CommentsResponse<EdgesResponse<T>>;
- [thematicBySlugQuery]: ThematicResponse<T>;
- [thematicsListQuery]: ThematicsResponse<EdgesResponse<T>>;
- [thematicsSlugQuery]: ThematicsResponse<EdgesResponse<T>>;
- [topicBySlugQuery]: TopicResponse<T>;
- [topicsListQuery]: TopicsResponse<EdgesResponse<T>>;
- [topicsSlugQuery]: TopicsResponse<EdgesResponse<T>>;
- [totalArticlesQuery]: ArticlesResponse<T>;
- [totalThematicsQuery]: ThematicsResponse<T>;
- [totalTopicsQuery]: TopicsResponse<T>;
-};
-
-//===========================================================================
-// Queries input types
-//===========================================================================
-
-export type QueryEdges = Pick<GraphQLEdgesInput, 'after' | 'first'>;
-
-export type ContentId = {
- contentId: number;
-};
-
-export type Search = {
- search?: string;
-};
-
-export type QueriesInputMap = {
- [articleBySlugQuery]: Slug;
- [articlesCardQuery]: QueryEdges & Search;
- [articlesEndCursorQuery]: QueryEdges & Search;
- [articlesQuery]: QueryEdges & Search;
- [articlesSlugQuery]: QueryEdges & Search;
- [commentsQuery]: ContentId & QueryEdges;
- [thematicBySlugQuery]: Slug;
- [thematicsListQuery]: QueryEdges & Search;
- [thematicsSlugQuery]: QueryEdges & Search;
- [topicBySlugQuery]: Slug;
- [topicsListQuery]: QueryEdges & Search;
- [topicsSlugQuery]: QueryEdges & Search;
- [totalArticlesQuery]: Search;
- [totalThematicsQuery]: null;
- [totalTopicsQuery]: null;
-};
-
-export type CommentPage = {
- comments: RawComment[];
- hasNextPage: boolean;
- endCursor: string;
-};