mirror of
https://github.com/arcan1s/ahriman.git
synced 2026-03-07 02:33:38 +00:00
style: some minor style improvements
This commit is contained in:
@@ -27,21 +27,26 @@ export default tseslint.config(
|
|||||||
"react-refresh/only-export-components": ["warn", { allowConstantExport: true }],
|
"react-refresh/only-export-components": ["warn", { allowConstantExport: true }],
|
||||||
|
|
||||||
// imports
|
// imports
|
||||||
"simple-import-sort/imports": "error",
|
|
||||||
"simple-import-sort/exports": "error",
|
"simple-import-sort/exports": "error",
|
||||||
|
"simple-import-sort/imports": "error",
|
||||||
|
|
||||||
// brackets
|
// core
|
||||||
"curly": "error",
|
"curly": "error",
|
||||||
"@stylistic/brace-style": ["error", "1tbs"],
|
"eqeqeq": "error",
|
||||||
|
"no-console": "error",
|
||||||
|
"no-eval": "error",
|
||||||
|
|
||||||
// stylistic
|
// stylistic
|
||||||
"@stylistic/array-bracket-spacing": ["error", "never"],
|
"@stylistic/array-bracket-spacing": ["error", "never"],
|
||||||
"@stylistic/arrow-parens": ["error", "as-needed"],
|
"@stylistic/arrow-parens": ["error", "as-needed"],
|
||||||
|
"@stylistic/brace-style": ["error", "1tbs"],
|
||||||
"@stylistic/comma-dangle": ["error", "always-multiline"],
|
"@stylistic/comma-dangle": ["error", "always-multiline"],
|
||||||
"@stylistic/comma-spacing": ["error", { before: false, after: true }],
|
"@stylistic/comma-spacing": ["error", { before: false, after: true }],
|
||||||
"@stylistic/eol-last": ["error", "always"],
|
"@stylistic/eol-last": ["error", "always"],
|
||||||
"@stylistic/indent": ["error", 4],
|
"@stylistic/indent": ["error", 4],
|
||||||
|
"@stylistic/jsx-curly-brace-presence": ["error", { props: "never", children: "never" }],
|
||||||
"@stylistic/jsx-quotes": ["error", "prefer-double"],
|
"@stylistic/jsx-quotes": ["error", "prefer-double"],
|
||||||
|
"@stylistic/jsx-self-closing-comp": ["error", { component: true, html: true }],
|
||||||
"@stylistic/max-len": ["error", {
|
"@stylistic/max-len": ["error", {
|
||||||
code: 120,
|
code: 120,
|
||||||
ignoreComments: true,
|
ignoreComments: true,
|
||||||
@@ -49,6 +54,7 @@ export default tseslint.config(
|
|||||||
ignoreTemplateLiterals: true,
|
ignoreTemplateLiterals: true,
|
||||||
ignoreUrls: true,
|
ignoreUrls: true,
|
||||||
}],
|
}],
|
||||||
|
"@stylistic/member-delimiter-style": ["error", { multiline: { delimiter: "semi" }, singleline: { delimiter: "semi" } }],
|
||||||
"@stylistic/no-extra-parens": ["error", "all"],
|
"@stylistic/no-extra-parens": ["error", "all"],
|
||||||
"@stylistic/no-multi-spaces": "error",
|
"@stylistic/no-multi-spaces": "error",
|
||||||
"@stylistic/no-multiple-empty-lines": ["error", { max: 1 }],
|
"@stylistic/no-multiple-empty-lines": ["error", { max: 1 }],
|
||||||
@@ -58,10 +64,14 @@ export default tseslint.config(
|
|||||||
"@stylistic/semi": ["error", "always"],
|
"@stylistic/semi": ["error", "always"],
|
||||||
|
|
||||||
// typescript
|
// typescript
|
||||||
|
"@typescript-eslint/consistent-type-definitions": ["error", "interface"],
|
||||||
"@typescript-eslint/consistent-type-imports": ["error", { prefer: "type-imports" }],
|
"@typescript-eslint/consistent-type-imports": ["error", { prefer: "type-imports" }],
|
||||||
"@typescript-eslint/explicit-function-return-type": ["error", { allowExpressions: true }],
|
"@typescript-eslint/explicit-function-return-type": ["error", { allowExpressions: true }],
|
||||||
"@typescript-eslint/no-deprecated": "error",
|
"@typescript-eslint/no-deprecated": "error",
|
||||||
"@typescript-eslint/no-unused-vars": ["error", { argsIgnorePattern: "^_" }],
|
"@typescript-eslint/no-unused-vars": ["error", { argsIgnorePattern: "^_" }],
|
||||||
|
"@typescript-eslint/prefer-nullish-coalescing": "error",
|
||||||
|
"@typescript-eslint/prefer-optional-chain": "error",
|
||||||
|
"@typescript-eslint/switch-exhaustiveness-check": "error",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -11,30 +11,30 @@
|
|||||||
"preview": "vite preview"
|
"preview": "vite preview"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@emotion/react": "^11.11.0",
|
"@emotion/react": "^11.14.0",
|
||||||
"@emotion/styled": "^11.11.0",
|
"@emotion/styled": "^11.14.1",
|
||||||
"@mui/icons-material": "^7.3.8",
|
"@mui/icons-material": "^7.3.9",
|
||||||
"@mui/material": "^7.3.8",
|
"@mui/material": "^7.3.9",
|
||||||
"@mui/x-data-grid": "^8.27.3",
|
"@mui/x-data-grid": "^8.27.4",
|
||||||
"@tanstack/react-query": "^5.0.0",
|
"@tanstack/react-query": "^5.90.21",
|
||||||
"chart.js": "^4.5.0",
|
"chart.js": "^4.5.1",
|
||||||
"react": "^19.2.4",
|
"react": "^19.2.4",
|
||||||
"react-chartjs-2": "^5.2.0",
|
"react-chartjs-2": "^5.3.1",
|
||||||
"react-dom": "^19.2.4",
|
"react-dom": "^19.2.4",
|
||||||
"react-syntax-highlighter": "^16.1.1"
|
"react-syntax-highlighter": "^16.1.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint/js": "^9.39.3",
|
"@eslint/js": "^9.39.3",
|
||||||
"@stylistic/eslint-plugin": "^5.9.0",
|
"@stylistic/eslint-plugin": "^5.10.0",
|
||||||
"@types/react": "^19.2.14",
|
"@types/react": "^19.2.14",
|
||||||
"@types/react-dom": "^19.2.3",
|
"@types/react-dom": "^19.2.3",
|
||||||
"@types/react-syntax-highlighter": "^15.5.13",
|
"@types/react-syntax-highlighter": "^15.5.13",
|
||||||
"@vitejs/plugin-react": "^5.0.0",
|
"@vitejs/plugin-react": "^5.1.4",
|
||||||
"eslint": "^9.39.3",
|
"eslint": "^9.39.3",
|
||||||
"eslint-plugin-react-hooks": "^7.0.1",
|
"eslint-plugin-react-hooks": "^7.0.1",
|
||||||
"eslint-plugin-react-refresh": "^0.5.2",
|
"eslint-plugin-react-refresh": "^0.5.2",
|
||||||
"eslint-plugin-simple-import-sort": "^12.1.1",
|
"eslint-plugin-simple-import-sort": "^12.1.1",
|
||||||
"typescript": "^5.3.0",
|
"typescript": "^5.9.3",
|
||||||
"typescript-eslint": "^8.56.1",
|
"typescript-eslint": "^8.56.1",
|
||||||
"vite": "^7.3.1",
|
"vite": "^7.3.1",
|
||||||
"vite-tsconfig-paths": "^6.1.1"
|
"vite-tsconfig-paths": "^6.1.1"
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ export class Client {
|
|||||||
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
||||||
|
|
||||||
const requestInit: RequestInit = {
|
const requestInit: RequestInit = {
|
||||||
method: method || (json ? "POST" : "GET"),
|
method: method ?? (json ? "POST" : "GET"),
|
||||||
headers,
|
headers,
|
||||||
signal: controller.signal,
|
signal: controller.signal,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ export default function AppLayout(): React.JSX.Element {
|
|||||||
|
|
||||||
return <Container maxWidth="xl">
|
return <Container maxWidth="xl">
|
||||||
<Box sx={{ display: "flex", alignItems: "center", py: 1, gap: 1 }}>
|
<Box sx={{ display: "flex", alignItems: "center", py: 1, gap: 1 }}>
|
||||||
<a href="https://github.com/arcan1s/ahriman" title="logo">
|
<a href="https://ahriman.readthedocs.io/" title="logo">
|
||||||
<img src="/static/logo.svg" width={30} height={30} alt="" />
|
<img src="/static/logo.svg" width={30} height={30} alt="" />
|
||||||
</a>
|
</a>
|
||||||
<Box sx={{ flex: 1 }}>
|
<Box sx={{ flex: 1 }}>
|
||||||
|
|||||||
@@ -1,22 +1,22 @@
|
|||||||
import { defineConfig, type Plugin } from "vite";
|
|
||||||
import react from "@vitejs/plugin-react";
|
import react from "@vitejs/plugin-react";
|
||||||
import tsconfigPaths from "vite-tsconfig-paths";
|
|
||||||
import path from "path";
|
import path from "path";
|
||||||
|
import { defineConfig, type Plugin } from "vite";
|
||||||
|
import tsconfigPaths from "vite-tsconfig-paths";
|
||||||
|
|
||||||
function renameHtml(newName: string): Plugin {
|
function rename(oldName: string, newName: string): Plugin {
|
||||||
return {
|
return {
|
||||||
name: "rename-html",
|
name: "rename",
|
||||||
enforce: "post",
|
enforce: "post",
|
||||||
generateBundle(_, bundle) {
|
generateBundle(_, bundle) {
|
||||||
if (bundle["index.html"]) {
|
if (bundle[oldName]) {
|
||||||
bundle["index.html"].fileName = newName;
|
bundle[oldName].fileName = newName;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins: [react(), tsconfigPaths(), renameHtml("build-status.jinja2")],
|
plugins: [react(), tsconfigPaths(), rename("index.html", "build-status.jinja2")],
|
||||||
base: "/",
|
base: "/",
|
||||||
build: {
|
build: {
|
||||||
chunkSizeWarningLimit: 10000,
|
chunkSizeWarningLimit: 10000,
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ class Auth(LazyLogging):
|
|||||||
Returns:
|
Returns:
|
||||||
str: login control as html code to insert
|
str: login control as html code to insert
|
||||||
"""
|
"""
|
||||||
return """<button type="button" class="btn btn-link" data-bs-toggle="modal" data-bs-target="#login-modal" style="text-decoration: none"><i class="bi bi-box-arrow-in-right"></i> login</button>"""
|
return "<button type=\"button\" class=\"btn btn-link\" data-bs-toggle=\"modal\" data-bs-target=\"#login-modal\" style=\"text-decoration: none\"><i class=\"bi bi-box-arrow-in-right\"></i> login</button>"
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def is_external(self) -> bool:
|
def is_external(self) -> bool:
|
||||||
|
|||||||
@@ -25,9 +25,11 @@ class AuthInfoSchema(Schema):
|
|||||||
authorization information schema
|
authorization information schema
|
||||||
"""
|
"""
|
||||||
|
|
||||||
control = fields.String(required=True, metadata={
|
control = fields.String(
|
||||||
"description": "HTML control for login interface",
|
metadata={
|
||||||
})
|
"description": "HTML control for login interface",
|
||||||
|
"example": "<button type=\"button\" class=\"btn btn-link\" data-bs-toggle=\"modal\" data-bs-target=\"#login-modal\" style=\"text-decoration: none\"><i class=\"bi bi-box-arrow-in-right\"></i> login</button>",
|
||||||
|
})
|
||||||
enabled = fields.Boolean(required=True, metadata={
|
enabled = fields.Boolean(required=True, metadata={
|
||||||
"description": "Whether authentication is enabled or not",
|
"description": "Whether authentication is enabled or not",
|
||||||
})
|
})
|
||||||
@@ -35,5 +37,5 @@ class AuthInfoSchema(Schema):
|
|||||||
"description": "Whether authorization provider is external (e.g. OAuth)",
|
"description": "Whether authorization provider is external (e.g. OAuth)",
|
||||||
})
|
})
|
||||||
username = fields.String(metadata={
|
username = fields.String(metadata={
|
||||||
"description": "Currently authenticated username if any",
|
"description": "Currently authenticated username if available",
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -27,10 +27,12 @@ class AutoRefreshIntervalSchema(Schema):
|
|||||||
|
|
||||||
interval = fields.Integer(required=True, metadata={
|
interval = fields.Integer(required=True, metadata={
|
||||||
"description": "Auto refresh interval in milliseconds",
|
"description": "Auto refresh interval in milliseconds",
|
||||||
|
"example": "60000",
|
||||||
})
|
})
|
||||||
is_active = fields.Boolean(required=True, metadata={
|
is_active = fields.Boolean(required=True, metadata={
|
||||||
"description": "Whether this interval is the default active one",
|
"description": "Whether this interval is the default active one",
|
||||||
})
|
})
|
||||||
text = fields.String(required=True, metadata={
|
text = fields.String(required=True, metadata={
|
||||||
"description": "Human readable interval description",
|
"description": "Human readable interval description",
|
||||||
|
"example": "1 minute",
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ class InfoV2Schema(Schema):
|
|||||||
})
|
})
|
||||||
index_url = fields.String(metadata={
|
index_url = fields.String(metadata={
|
||||||
"description": "URL to the repository index page",
|
"description": "URL to the repository index page",
|
||||||
|
"example": "https://ahriman.readthedocs.io/",
|
||||||
})
|
})
|
||||||
repositories = fields.Nested(RepositoryIdSchema(many=True), required=True, metadata={
|
repositories = fields.Nested(RepositoryIdSchema(many=True), required=True, metadata={
|
||||||
"description": "List of loaded repositories",
|
"description": "List of loaded repositories",
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ class RepositoryIdSchema(Schema):
|
|||||||
})
|
})
|
||||||
id = fields.String(metadata={
|
id = fields.String(metadata={
|
||||||
"description": "Unique repository identifier",
|
"description": "Unique repository identifier",
|
||||||
"example": "aur-x86_64",
|
"example": "x86_64-aur",
|
||||||
})
|
})
|
||||||
repository = fields.String(metadata={
|
repository = fields.String(metadata={
|
||||||
"description": "Repository name",
|
"description": "Repository name",
|
||||||
|
|||||||
Reference in New Issue
Block a user