ionian/packages/client/src/hook/useServerSettings.ts
monoid d28c255d21 feat: add app configuration management with Kysely integration
- Implemented `getAppConfig` and `upsertAppConfig` functions in `config.ts` for managing application settings in the database.
- Updated `mod.ts` to export the new configuration functions.
- Refactored `ComicConfig.ts` to load and update comic watch paths using the new configuration functions.
- Modified `comic_watcher.ts` to accept paths as parameters for creating watchers.
- Created a new settings router in `settings.ts` for managing application settings via HTTP requests.
- Integrated the settings router into the main server in `server.ts`.
- Updated the settings management to use the new database-backed configuration.
- Removed legacy configuration management code from `configRW.ts`.
- Added integration tests for the settings router and error handling.
- Updated `vitest` configuration for testing.
- Cleaned up unused type definitions in `pnpm-lock.yaml`.
2025-09-30 23:15:20 +09:00

10 lines
320 B
TypeScript

import useSWR from "swr";
import { fetcher } from "./fetcher";
import type { ServerSettingResponse } from "dbtype/mod.ts";
export function useServerSettings(enabled: boolean) {
return useSWR<ServerSettingResponse>(
enabled ? "/api/settings" : null,
(url: string) => fetcher(url, { credentials: "include" }),
);
}