From 2faf2e34331703b3bdea3eb487cb8799c8d65377 Mon Sep 17 00:00:00 2001 From: Armand Philippot Date: Tue, 19 Sep 2023 18:13:57 +0200 Subject: refactor(build): replace paths aliases with relative paths Using paths aliases starting with "@" can be confusing and can lead to conflict with existings modules. I prefer to use relative paths to avoid extra configuration in tools because of these aliases. --- src/types/graphql/queries.ts | 147 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 src/types/graphql/queries.ts (limited to 'src/types/graphql/queries.ts') diff --git a/src/types/graphql/queries.ts b/src/types/graphql/queries.ts new file mode 100644 index 0000000..fceae30 --- /dev/null +++ b/src/types/graphql/queries.ts @@ -0,0 +1,147 @@ +import { + articleBySlugQuery, + articlesCardQuery, + articlesEndCursorQuery, + articlesQuery, + articlesSlugQuery, + totalArticlesQuery, +} from '../../services/graphql/articles.query'; +import { commentsQuery } from '../../services/graphql/comments.query'; +import { + thematicBySlugQuery, + thematicsListQuery, + thematicsSlugQuery, + totalThematicsQuery, +} from '../../services/graphql/thematics.query'; +import { + topicBySlugQuery, + topicsListQuery, + topicsSlugQuery, + totalTopicsQuery, +} from '../../services/graphql/topics.query'; +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 = { + post: T; +}; + +export type ArticlesResponse = { + posts: T; +}; + +export type CommentsResponse = { + comments: T; +}; + +export type ThematicResponse = { + thematic: T; +}; + +export type ThematicsResponse = { + thematics: T; +}; + +export type TopicResponse = { + topic: T; +}; + +export type TopicsResponse = { + topics: T; +}; + +export type EdgesResponse = { + edges: GraphQLEdges[]; + pageInfo: GraphQLPageInfo; +}; + +export type EndCursorResponse = { + pageInfo: Pick; +}; + +export type QueriesResponseMap = { + [articleBySlugQuery]: ArticleResponse; + [articlesCardQuery]: ArticlesResponse>; + [articlesEndCursorQuery]: ArticlesResponse; + [articlesQuery]: ArticlesResponse>; + [articlesSlugQuery]: ArticlesResponse>; + [commentsQuery]: CommentsResponse>; + [thematicBySlugQuery]: ThematicResponse; + [thematicsListQuery]: ThematicsResponse>; + [thematicsSlugQuery]: ThematicsResponse>; + [topicBySlugQuery]: TopicResponse; + [topicsListQuery]: TopicsResponse>; + [topicsSlugQuery]: TopicsResponse>; + [totalArticlesQuery]: ArticlesResponse; + [totalThematicsQuery]: ThematicsResponse; + [totalTopicsQuery]: TopicsResponse; +}; + +//=========================================================================== +// Queries input types +//=========================================================================== + +export type QueryEdges = Pick; + +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; +}; -- cgit v1.2.3