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/ts/types/app.ts | 132 ---------------------------------------------------- 1 file changed, 132 deletions(-) delete mode 100644 src/ts/types/app.ts (limited to 'src/ts/types/app.ts') diff --git a/src/ts/types/app.ts b/src/ts/types/app.ts deleted file mode 100644 index 64bb3af..0000000 --- a/src/ts/types/app.ts +++ /dev/null @@ -1,132 +0,0 @@ -import { NextPage } from 'next'; -import { AppProps as NextAppProps } from 'next/app'; -import { ReactElement, ReactNode } from 'react'; -import { MessageFormatElement } from 'react-intl'; - -export type NextPageWithLayoutOptions = { - withExtraPadding?: boolean; - isHome?: boolean; - useGrid?: boolean; -}; - -export type NextPageWithLayout = NextPage & { - getLayout?: ( - page: ReactElement, - options: NextPageWithLayoutOptions - ) => ReactNode; -}; - -// modified version - allows for custom pageProps type, falling back to 'any' -type AppProps

= { - pageProps: P; -} & Omit, 'pageProps'>; - -type CustomPageProps = { - translation: Record | Record; -}; - -export type AppPropsWithLayout = AppProps & { - Component: NextPageWithLayout; -}; - -export type ContentKind = - | 'article' - | 'comment' - | 'page' - | 'project' - | 'thematic' - | 'topic'; - -export type Author = { - avatar?: Image; - description?: T extends 'comment' ? never : string; - name: string; - website?: string; -}; - -export type CommentMeta = { - author: Author<'comment'>; - date: string; -}; - -export type SingleComment = { - approved: boolean; - content: string; - id: number; - meta: CommentMeta; - parentId?: number; - replies: SingleComment[]; -}; - -export type Dates = { - publication: string; - update?: string; -}; - -export type Image = { - alt: string; - height: number; - src: string; - title?: string; - width: number; -}; - -export type Repos = { - github?: string; - gitlab?: string; -}; - -export type SEO = { - description: string; - title: string; -}; - -export type PageKind = Exclude; - -export type Meta = { - articles?: T extends 'thematic' | 'topic' ? Article[] : never; - author?: T extends 'article' | 'page' ? Author : never; - commentsCount?: T extends 'article' ? number : never; - cover?: Image; - dates: Dates; - license?: T extends 'project' ? string : never; - repos?: T extends 'project' ? Repos : never; - seo: SEO; - tagline?: T extends 'project' ? string : never; - technologies?: T extends 'project' ? string[] : never; - thematics?: T extends 'article' | 'topic' ? PageLink[] : never; - topics?: T extends 'article' | 'thematic' ? PageLink[] : never; - website?: T extends 'topic' ? string : never; - wordsCount: number; -}; - -export type Page = { - content: string; - id: number | string; - intro: string; - meta: Meta; - slug: string; - title: string; -}; - -export type PageLink = { - id: number; - logo?: Image; - name: string; - url: string; -}; - -export type Article = Page<'article'>; -export type ArticleCard = Pick & - Pick, 'cover' | 'dates'>; -export type Project = Page<'project'>; -export type ProjectPreview = Omit, 'content'>; -export type ProjectCard = Pick, 'id' | 'slug' | 'title'> & { - meta: Pick, 'cover' | 'dates' | 'tagline' | 'technologies'>; -}; -export type Thematic = Page<'thematic'>; -export type Topic = Page<'topic'>; - -export type Slug = { - slug: string; -}; -- cgit v1.2.3