diff --git a/packages/docusaurus-migrate/src/index.ts b/packages/docusaurus-migrate/src/index.ts index 4f2a5ceb7e..c3064d9b2e 100644 --- a/packages/docusaurus-migrate/src/index.ts +++ b/packages/docusaurus-migrate/src/index.ts @@ -618,7 +618,6 @@ function migrateVersionedSidebar( const newSidebar = Object.entries(sidebar.entries).reduce( (acc: SidebarEntries, val) => { const key = `version-${sidebar.version}/${val[0]}`; - // eslint-disable-next-line prefer-destructuring acc[key] = Object.entries(val[1]).map((value) => { return { type: 'category', diff --git a/packages/docusaurus-module-type-aliases/src/index.d.ts b/packages/docusaurus-module-type-aliases/src/index.d.ts index d195eafd08..14b65e17c5 100644 --- a/packages/docusaurus-module-type-aliases/src/index.d.ts +++ b/packages/docusaurus-module-type-aliases/src/index.d.ts @@ -11,12 +11,16 @@ declare module '@generated/client-modules' { } declare module '@generated/docusaurus.config' { - const config: any; + import type {DocusaurusConfig} from '@docusaurus/types'; + + const config: DocusaurusConfig; export default config; } declare module '@generated/site-metadata' { - const siteMetadata: any; + import type {DocusaurusSiteMetadata} from '@docusaurus/types'; + + const siteMetadata: DocusaurusSiteMetadata; export default siteMetadata; } @@ -28,9 +32,11 @@ declare module '@generated/registry' { } declare module '@generated/routes' { + import type {RouteConfig} from 'react-router-config'; + type Route = { readonly path: string; - readonly component: any; + readonly component: RouteConfig['component']; readonly exact?: boolean; }; const routes: Route[]; @@ -79,16 +85,11 @@ declare module '@docusaurus/Head' { } declare module '@docusaurus/Link' { - import type {ReactNode} from 'react'; - - type RRLinkProps = Partial; - export type LinkProps = RRLinkProps & { + type NavLinkProps = Partial; + export type LinkProps = NavLinkProps & { readonly isNavLink?: boolean; readonly to?: string; readonly href?: string; - readonly activeClassName?: string; - readonly children?: ReactNode; - readonly isActive?: (match: any, location: any) => boolean; readonly autoAddBaseUrl?: boolean; // escape hatch in case broken links check is annoying for a specific link @@ -173,7 +174,9 @@ declare module '@docusaurus/history' { } declare module '@docusaurus/useDocusaurusContext' { - export default function (): any; + import type {DocusaurusContext} from '@docusaurus/types'; + + export default function useDocusaurusContext(): DocusaurusContext; } declare module '@docusaurus/useBaseUrl' { diff --git a/packages/docusaurus-plugin-content-blog/index.d.ts b/packages/docusaurus-plugin-content-blog/index.d.ts index 48cd3c38da..e8d2d88889 100644 --- a/packages/docusaurus-plugin-content-blog/index.d.ts +++ b/packages/docusaurus-plugin-content-blog/index.d.ts @@ -5,9 +5,6 @@ * LICENSE file in the root directory of this source tree. */ -/* eslint-disable import/no-duplicates */ -/* eslint-disable camelcase */ - declare module '@theme/BlogSidebar' { export type BlogSidebarItem = {title: string; permalink: string}; export type BlogSidebar = { @@ -28,6 +25,7 @@ declare module '@theme/BlogPostPage' { import type {BlogSidebar} from '@theme/BlogSidebar'; export type FrontMatter = { + /* eslint-disable camelcase */ readonly title: string; readonly author?: string; readonly image?: string; @@ -40,12 +38,15 @@ declare module '@theme/BlogPostPage' { readonly author_image_url?: string; readonly authorImageURL?: string; readonly hide_table_of_contents?: boolean; + /* eslint-enable camelcase */ }; export type FrontMatterAssets = { + /* eslint-disable camelcase */ readonly image?: string; readonly author_image_url?: string; readonly authorImageURL?: string; + /* eslint-enable camelcase */ }; export type Metadata = { diff --git a/packages/docusaurus-plugin-content-blog/src/blogFrontMatter.ts b/packages/docusaurus-plugin-content-blog/src/blogFrontMatter.ts index a9ad7c16d7..2d8490a5be 100644 --- a/packages/docusaurus-plugin-content-blog/src/blogFrontMatter.ts +++ b/packages/docusaurus-plugin-content-blog/src/blogFrontMatter.ts @@ -5,8 +5,6 @@ * LICENSE file in the root directory of this source tree. */ -/* eslint-disable camelcase */ - import { JoiFrontMatter as Joi, // Custom instance for frontmatter URISchema, @@ -15,6 +13,7 @@ import { import {Tag} from './types'; export type BlogPostFrontMatter = { + /* eslint-disable camelcase */ id?: string; title?: string; description?: string; @@ -36,6 +35,7 @@ export type BlogPostFrontMatter = { authorTitle?: string; authorURL?: string; authorImageURL?: string; + /* eslint-enable camelcase */ }; // NOTE: we don't add any default value on purpose here diff --git a/packages/docusaurus-plugin-content-docs/src/cli.ts b/packages/docusaurus-plugin-content-docs/src/cli.ts index 41de537f1c..cb6e01efb8 100644 --- a/packages/docusaurus-plugin-content-docs/src/cli.ts +++ b/packages/docusaurus-plugin-content-docs/src/cli.ts @@ -85,7 +85,6 @@ function createVersionedSidebarFile({ } // Tests depend on non-default export for mocking. -// eslint-disable-next-line import/prefer-default-export export function cliDocsVersionCommand( version: string | null | undefined, siteDir: string, diff --git a/packages/docusaurus-plugin-content-docs/src/docFrontMatter.ts b/packages/docusaurus-plugin-content-docs/src/docFrontMatter.ts index 70e1d8ac33..70b2049e77 100644 --- a/packages/docusaurus-plugin-content-docs/src/docFrontMatter.ts +++ b/packages/docusaurus-plugin-content-docs/src/docFrontMatter.ts @@ -5,8 +5,6 @@ * LICENSE file in the root directory of this source tree. */ -/* eslint-disable camelcase */ - import { JoiFrontMatter as Joi, // Custom instance for frontmatter URISchema, diff --git a/packages/docusaurus-plugin-content-docs/src/docs.ts b/packages/docusaurus-plugin-content-docs/src/docs.ts index 00f830c0e7..29f0a1e1e0 100644 --- a/packages/docusaurus-plugin-content-docs/src/docs.ts +++ b/packages/docusaurus-plugin-content-docs/src/docs.ts @@ -130,9 +130,8 @@ function doProcessDocMetadata({ custom_edit_url: customEditURL, // Strip number prefixes by default (01-MyFolder/01-MyDoc.md => MyFolder/MyDoc) by default, - // but allow to disable this behavior with frontmatterr - // eslint-disable-next-line camelcase - parse_number_prefixes = true, + // but allow to disable this behavior with frontmatter + parse_number_prefixes: parseNumberPrefixes = true, } = frontMatter; // ex: api/plugins/myDoc -> myDoc @@ -146,8 +145,7 @@ function doProcessDocMetadata({ // ex: myDoc -> . const sourceDirName = path.dirname(source); - // eslint-disable-next-line camelcase - const {filename: unprefixedFileName, numberPrefix} = parse_number_prefixes + const {filename: unprefixedFileName, numberPrefix} = parseNumberPrefixes ? options.numberPrefixParser(sourceFileNameWithoutExtension) : {filename: sourceFileNameWithoutExtension, numberPrefix: undefined}; @@ -175,8 +173,7 @@ function doProcessDocMetadata({ return undefined; } // Eventually remove the number prefixes from intermediate directories - // eslint-disable-next-line camelcase - return parse_number_prefixes + return parseNumberPrefixes ? stripPathNumberPrefixes(sourceDirName, options.numberPrefixParser) : sourceDirName; } @@ -203,7 +200,7 @@ function doProcessDocMetadata({ baseID, dirName: sourceDirName, frontmatterSlug: frontMatter.slug, - stripDirNumberPrefixes: parse_number_prefixes, + stripDirNumberPrefixes: parseNumberPrefixes, numberPrefixParser: options.numberPrefixParser, }); diff --git a/packages/docusaurus-plugin-content-docs/src/plugin-content-docs.d.ts b/packages/docusaurus-plugin-content-docs/src/plugin-content-docs.d.ts index e371da2217..cc4b1314f6 100644 --- a/packages/docusaurus-plugin-content-docs/src/plugin-content-docs.d.ts +++ b/packages/docusaurus-plugin-content-docs/src/plugin-content-docs.d.ts @@ -5,8 +5,6 @@ * LICENSE file in the root directory of this source tree. */ -/* eslint-disable camelcase */ - declare module '@docusaurus/plugin-content-docs-types' { type VersionBanner = import('./types').VersionBanner; type GlobalDataVersion = import('./types').GlobalVersion; @@ -64,8 +62,10 @@ declare module '@theme/DocItem' { readonly title: string; readonly image?: string; readonly keywords?: readonly string[]; + /* eslint-disable camelcase */ readonly hide_title?: boolean; readonly hide_table_of_contents?: boolean; + /* eslint-enable camelcase */ }; export type Metadata = { diff --git a/packages/docusaurus-theme-bootstrap/src/theme/DebugLayout/index.tsx b/packages/docusaurus-theme-bootstrap/src/theme/DebugLayout/index.tsx index 78b3736b17..7505ee2c27 100644 --- a/packages/docusaurus-theme-bootstrap/src/theme/DebugLayout/index.tsx +++ b/packages/docusaurus-theme-bootstrap/src/theme/DebugLayout/index.tsx @@ -9,7 +9,7 @@ import React from 'react'; import Head from '@docusaurus/Head'; import isInternalUrl from '@docusaurus/isInternalUrl'; -import {useTitleFormatter} from '@docusaurus/theme-common'; +import {useTitleFormatter, useThemeConfig} from '@docusaurus/theme-common'; import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; import useBaseUrl from '@docusaurus/useBaseUrl'; @@ -18,12 +18,9 @@ import Footer from '@theme/Footer'; import type {Props} from '@theme/Layout'; function Layout(props: Props): JSX.Element { - const {siteConfig = {}} = useDocusaurusContext(); - const { - favicon, - themeConfig: {image: defaultImage, metadatas}, - url: siteUrl, - } = siteConfig; + const {siteConfig} = useDocusaurusContext(); + const {favicon, url: siteUrl} = siteConfig; + const {image: defaultImage, metadatas} = useThemeConfig(); const { children, title, diff --git a/packages/docusaurus-theme-bootstrap/src/theme/DocItem/index.tsx b/packages/docusaurus-theme-bootstrap/src/theme/DocItem/index.tsx index 928e1527e5..cd78befe9a 100644 --- a/packages/docusaurus-theme-bootstrap/src/theme/DocItem/index.tsx +++ b/packages/docusaurus-theme-bootstrap/src/theme/DocItem/index.tsx @@ -15,7 +15,7 @@ import useBaseUrl from '@docusaurus/useBaseUrl'; import {Props} from '@theme/DocItem'; function DocItem(props: Props): JSX.Element { - const {siteConfig = {}} = useDocusaurusContext(); + const {siteConfig = {url: ''}} = useDocusaurusContext(); const {url: siteUrl} = siteConfig; const {content: DocContent} = props; const {metadata} = DocContent; diff --git a/packages/docusaurus-theme-bootstrap/src/theme/Footer/index.tsx b/packages/docusaurus-theme-bootstrap/src/theme/Footer/index.tsx index 196df050aa..7ca080e5b9 100644 --- a/packages/docusaurus-theme-bootstrap/src/theme/Footer/index.tsx +++ b/packages/docusaurus-theme-bootstrap/src/theme/Footer/index.tsx @@ -6,11 +6,20 @@ */ import React from 'react'; -import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; import Link from '@docusaurus/Link'; import useBaseUrl from '@docusaurus/useBaseUrl'; +import {useThemeConfig} from '@docusaurus/theme-common'; -function FooterLink({to, href, label, ...props}) { +function FooterLink({ + to, + href, + label, + ...props +}: { + to?: string; + href?: string; + label?: string; +}) { const toUrl = useBaseUrl(to); return ( @@ -31,12 +40,9 @@ function FooterLink({to, href, label, ...props}) { } function Footer(): JSX.Element { - const context = useDocusaurusContext(); - const {siteConfig = {}} = context; - const {themeConfig = {}} = siteConfig; - const {footer} = themeConfig; + const {footer} = useThemeConfig(); - const {links} = footer || {}; + const {links = []} = footer || {}; return (