Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 19 additions & 8 deletions .pkgs/configs/eslint.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import pluginDeMorgan from "eslint-plugin-de-morgan";
import pluginJsdoc from "eslint-plugin-jsdoc";
import pluginPerfectionist from "eslint-plugin-perfectionist";
import pluginRegexp from "eslint-plugin-regexp";
import pluginSimpleImportSort from "eslint-plugin-simple-import-sort";
import pluginUnicorn from "eslint-plugin-unicorn";
import tseslint from "typescript-eslint";
const GLOB_JS = ["*.{js,jsx,cjs,mjs}", "**/*.{js,jsx,cjs,mjs}"];
Expand Down Expand Up @@ -101,26 +100,38 @@ export const typescript = tseslint.config({
files: GLOB_TS,
plugins: {
["@stylistic"]: stylistic,
["simple-import-sort"]: pluginSimpleImportSort,
["unicorn"]: pluginUnicorn,
},
rules: {
"@stylistic/arrow-parens": ["warn", "always"],
"@stylistic/no-multi-spaces": ["warn"],
"@stylistic/operator-linebreak": ["warn", "before"],
"@stylistic/quote-props": ["error", "as-needed"],
"simple-import-sort/exports": "warn",
"simple-import-sort/imports": "warn",
"perfectionist/sort-exports": "off",
"perfectionist/sort-imports": "off",
"perfectionist/sort-exports": ["warn", { type: "natural", order: "asc" }],
"perfectionist/sort-imports": ["warn", {
type: "natural",
groups: [
"type",
["parent-type", "sibling-type", "index-type", "internal-type"],
"builtin",
"external",
"internal",
["parent", "sibling", "index"],
"side-effect",
"object",
"unknown",
],
newlinesBetween: "ignore",
order: "asc",
}],
"perfectionist/sort-interfaces": [
"warn",
{ ...p11tOptions, ...p11tGroups },
],
"perfectionist/sort-intersection-types": "off",
"perfectionist/sort-modules": "off",
"perfectionist/sort-named-exports": "off",
"perfectionist/sort-named-imports": "off",
"perfectionist/sort-named-exports": ["warn", { type: "natural", order: "asc" }],
"perfectionist/sort-named-imports": ["warn", { type: "natural", order: "asc" }],
"perfectionist/sort-object-types": [
"warn",
{ ...p11tOptions, ...p11tGroups },
Expand Down
28 changes: 19 additions & 9 deletions .pkgs/configs/eslint.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import pluginDeMorgan from "eslint-plugin-de-morgan";
import pluginJsdoc from "eslint-plugin-jsdoc";
import pluginPerfectionist from "eslint-plugin-perfectionist";
import pluginRegexp from "eslint-plugin-regexp";
import pluginSimpleImportSort from "eslint-plugin-simple-import-sort";
import pluginUnicorn from "eslint-plugin-unicorn";
import tseslint from "typescript-eslint";

Expand Down Expand Up @@ -113,7 +112,6 @@ export const typescript: ConfigArray = tseslint.config(
files: GLOB_TS,
plugins: {
["@stylistic"]: stylistic,
["simple-import-sort"]: pluginSimpleImportSort,
["unicorn"]: pluginUnicorn,
},
rules: {
Expand All @@ -122,19 +120,31 @@ export const typescript: ConfigArray = tseslint.config(
"@stylistic/operator-linebreak": ["warn", "before"],
"@stylistic/quote-props": ["error", "as-needed"],

"simple-import-sort/exports": "warn",
"simple-import-sort/imports": "warn",

"perfectionist/sort-exports": "off",
"perfectionist/sort-imports": "off",
"perfectionist/sort-exports": ["warn", { type: "natural", order: "asc" }],
"perfectionist/sort-imports": ["warn", {
type: "natural",
groups: [
"type",
["parent-type", "sibling-type", "index-type", "internal-type"],
"builtin",
"external",
"internal",
["parent", "sibling", "index"],
"side-effect",
"object",
"unknown",
],
newlinesBetween: "ignore",
order: "asc",
}],
"perfectionist/sort-interfaces": [
"warn",
{ ...p11tOptions, ...p11tGroups },
],
"perfectionist/sort-intersection-types": "off",
"perfectionist/sort-modules": "off",
"perfectionist/sort-named-exports": "off",
"perfectionist/sort-named-imports": "off",
"perfectionist/sort-named-exports": ["warn", { type: "natural", order: "asc" }],
"perfectionist/sort-named-imports": ["warn", { type: "natural", order: "asc" }],
"perfectionist/sort-object-types": [
"warn",
{ ...p11tOptions, ...p11tGroups },
Expand Down
1 change: 0 additions & 1 deletion .pkgs/configs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
"eslint-plugin-jsdoc": "^50.6.8",
"eslint-plugin-perfectionist": "^4.10.1",
"eslint-plugin-regexp": "^2.7.0",
"eslint-plugin-simple-import-sort": "^12.1.1",
"eslint-plugin-unicorn": "^57.0.0",
"typescript-eslint": "^8.27.0"
}
Expand Down
1 change: 0 additions & 1 deletion .pkgs/eslint-plugin-local/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@
"eslint-plugin-jsdoc": "^50.6.8",
"eslint-plugin-perfectionist": "^4.10.1",
"eslint-plugin-regexp": "^2.7.0",
"eslint-plugin-simple-import-sort": "^12.1.1",
"eslint-plugin-unicorn": "^57.0.0",
"string-ts": "^2.2.1",
"ts-pattern": "^5.6.2"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as AST from "@eslint-react/ast";
import type { RuleContext, RuleFeature } from "@eslint-react/kit";
import type { RuleListener } from "@typescript-eslint/utils/ts-eslint";
import type { CamelCase } from "string-ts";
import * as AST from "@eslint-react/ast";

import { createRule } from "../utils";

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import type { Scope } from "@typescript-eslint/scope-manager";
import type { TSESTree } from "@typescript-eslint/types";
import * as AST from "@eslint-react/ast";
import { _ } from "@eslint-react/eff";
import { findVariable } from "@eslint-react/var";
import type { Scope } from "@typescript-eslint/scope-manager";
import type { TSESTree } from "@typescript-eslint/types";
import { AST_NODE_TYPES as T } from "@typescript-eslint/types";

/**
Expand Down
4 changes: 2 additions & 2 deletions apps/website/app/(home)/layout.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { HomeLayout } from "fumadocs-ui/layouts/home";
import type { ReactNode } from "react";

import { baseOptions } from "#/app/layout.config";

import { HomeLayout } from "fumadocs-ui/layouts/home";

export default function Layout({ children }: { children: ReactNode }) {
return <HomeLayout {...baseOptions}>{children}</HomeLayout>;
}
4 changes: 2 additions & 2 deletions apps/website/app/(home)/page.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { ESLintReact } from "#/components/eslint-react";
import { Card, Cards } from "fumadocs-ui/components/card";
import { Link } from "next-view-transitions";

import { ESLintReact } from "#/components/eslint-react";
import { Link } from "next-view-transitions";

const features = [
["Modern", "First-class support for TypeScript, React 19, and more."],
Expand Down
4 changes: 2 additions & 2 deletions apps/website/app/api/search/route.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { createFromSource } from "fumadocs-core/search/server";

import { source } from "#/lib/source";

import { createFromSource } from "fumadocs-core/search/server";

export const { GET } = createFromSource(source);
28 changes: 17 additions & 11 deletions apps/website/app/docs/[[...slug]]/page.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { source } from "#/lib/source";
import { Popup, PopupContent, PopupTrigger } from "fumadocs-twoslash/ui";
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
import defaultMdxComponents from "fumadocs-ui/mdx";
import { DocsBody, DocsDescription, DocsPage, DocsTitle } from "fumadocs-ui/page";
import { notFound } from "next/navigation";

import { source } from "#/lib/source";
import { notFound } from "next/navigation";

const mdxComponents = {
...defaultMdxComponents,
Expand All @@ -20,14 +20,19 @@ export default async function Page(props: {
}) {
const params = await props.params;
const page = source.getPage(params.slug);
if (!page) notFound();

const MDX = page.data.body;
if (page == null) notFound();
const {
description,
title,
body: MDX,
full = false,
toc,
} = page.data;

return (
<DocsPage full={!!page.data.full} toc={page.data.toc}>
<DocsTitle>{page.data.title}</DocsTitle>
<DocsDescription>{page.data.description}</DocsDescription>
<DocsPage full={full} toc={toc}>
<DocsTitle>{title}</DocsTitle>
<DocsDescription>{description}</DocsDescription>
<DocsBody>
<MDX components={mdxComponents} />
</DocsBody>
Expand All @@ -44,10 +49,11 @@ export async function generateMetadata(props: {
}) {
const params = await props.params;
const page = source.getPage(params.slug);
if (!page) notFound();
if (page == null) notFound();
const { description, title } = page.data;

return {
description: page.data.description,
title: page.data.title,
description,
title,
};
}
4 changes: 2 additions & 2 deletions apps/website/app/docs/layout.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { DocsLayout } from "fumadocs-ui/layouts/docs";
import type { ReactNode } from "react";

import { baseOptions } from "#/app/layout.config";

import { source } from "#/lib/source";
import { DocsLayout } from "fumadocs-ui/layouts/docs";

export default function Layout({ children }: { children: ReactNode }) {
return (
Expand Down
4 changes: 2 additions & 2 deletions apps/website/app/layout.config.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import type { BaseLayoutProps } from "fumadocs-ui/layouts/shared";
import type { StaticImageData } from "next/image";
import React from "react";

import logo from "#/assets/logo.svg";

import { Image } from "#/components/ui/image";
import React from "react";

/**
* Shared layout configurations
Expand Down
12 changes: 6 additions & 6 deletions apps/website/app/layout.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import "./base.css";
import "./overrides.css";

import { RootProvider } from "fumadocs-ui/provider";
import type { Metadata } from "next";
import { IBM_Plex_Mono } from "next/font/google";
import { ViewTransitions } from "next-view-transitions";
import type { ReactNode } from "react";

import { RootProvider } from "fumadocs-ui/provider";
import { ViewTransitions } from "next-view-transitions";
import { IBM_Plex_Mono } from "next/font/google";
import { baseUrl } from "../lib/metadata";
import "./base.css";

import "./overrides.css";

const ibm_plex_mono = IBM_Plex_Mono({
subsets: ["latin"],
Expand Down
4 changes: 2 additions & 2 deletions apps/website/components/eslint-react.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import type { StaticImageData } from "next/image";
import React from "react";

import logo from "#/assets/logo.svg";

import React from "react";

import { Image } from "./ui/image";

export function ESLintReact() {
Expand Down
4 changes: 2 additions & 2 deletions apps/website/content/docs/configurations.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
/* eslint-disable perfectionist/sort-objects */
import { CodeBlock } from "#/components/code-block";
import dedent from "dedent";
import { TypeTable } from "fumadocs-ui/components/type-table";
import { Link } from "next-view-transitions";

import { CodeBlock } from "#/components/code-block";
import { Link } from "next-view-transitions";

export function SettingsTypeTable() {
return (
Expand Down
Loading