mirror of
https://github.com/shuaiplus/nodewarden.git
synced 2026-06-20 21:00:41 +00:00
Refactor code structure for improved readability and maintainability
This commit is contained in:
+2
-27
@@ -1,31 +1,6 @@
|
|||||||
import { Env, DEFAULT_DEV_SECRET } from '../types';
|
import { Env } from '../types';
|
||||||
import { StorageService } from '../services/storage';
|
import { StorageService } from '../services/storage';
|
||||||
import { jsonResponse, htmlResponse } from '../utils/response';
|
import { jsonResponse } from '../utils/response';
|
||||||
import { renderRegisterPageHTML } from '../setup/pageTemplate';
|
|
||||||
import { LIMITS } from '../config/limits';
|
|
||||||
|
|
||||||
type JwtSecretState = 'missing' | 'default' | 'too_short';
|
|
||||||
|
|
||||||
function getJwtSecretState(env: Env): JwtSecretState | null {
|
|
||||||
const secret = (env.JWT_SECRET || '').trim();
|
|
||||||
if (!secret) return 'missing';
|
|
||||||
// Block common "forgot to change" sample value (matches .dev.vars.example)
|
|
||||||
if (secret === DEFAULT_DEV_SECRET) return 'default';
|
|
||||||
if (secret.length < LIMITS.auth.jwtSecretMinLength) return 'too_short';
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
async function handleRegisterPage(request: Request, env: Env, jwtState: JwtSecretState | null): Promise<Response> {
|
|
||||||
void request;
|
|
||||||
void env;
|
|
||||||
return htmlResponse(renderRegisterPageHTML(jwtState));
|
|
||||||
}
|
|
||||||
|
|
||||||
// GET / - Setup page
|
|
||||||
export async function handleSetupPage(request: Request, env: Env): Promise<Response> {
|
|
||||||
const jwtState = getJwtSecretState(env);
|
|
||||||
return handleRegisterPage(request, env, jwtState);
|
|
||||||
}
|
|
||||||
|
|
||||||
// GET /setup/status
|
// GET /setup/status
|
||||||
export async function handleSetupStatus(request: Request, env: Env): Promise<Response> {
|
export async function handleSetupStatus(request: Request, env: Env): Promise<Response> {
|
||||||
|
|||||||
+2
-7
@@ -48,7 +48,7 @@ import {
|
|||||||
import { handleSync } from './handlers/sync';
|
import { handleSync } from './handlers/sync';
|
||||||
|
|
||||||
// Setup handlers
|
// Setup handlers
|
||||||
import { handleSetupPage, handleSetupStatus } from './handlers/setup';
|
import { handleSetupStatus } from './handlers/setup';
|
||||||
import { handleWebClientPage } from './handlers/web';
|
import { handleWebClientPage } from './handlers/web';
|
||||||
import { handleKnownDevice, handleGetDevices, handleUpdateDeviceToken } from './handlers/devices';
|
import { handleKnownDevice, handleGetDevices, handleUpdateDeviceToken } from './handlers/devices';
|
||||||
|
|
||||||
@@ -187,15 +187,10 @@ export async function handleRequest(request: Request, env: Env): Promise<Respons
|
|||||||
try {
|
try {
|
||||||
|
|
||||||
// Web client entry (single-path app)
|
// Web client entry (single-path app)
|
||||||
if ((path === '/' || path === '/register' || path === '/login') && method === 'GET') {
|
if ((path === '/' || path === '/register' || path === '/login' || path === '/setup' || path === '/setup/legacy') && method === 'GET') {
|
||||||
return handleWebClientPage(request, env);
|
return handleWebClientPage(request, env);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Legacy setup page
|
|
||||||
if ((path === '/setup' || path === '/setup/legacy') && method === 'GET') {
|
|
||||||
return handleSetupPage(request, env);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Setup status
|
// Setup status
|
||||||
if (path === '/setup/status' && method === 'GET') {
|
if (path === '/setup/status' && method === 'GET') {
|
||||||
return handleSetupStatus(request, env);
|
return handleSetupStatus(request, env);
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user