- Remove .prettierrc (dead config, Biome replaces Prettier) - Rename lighthouserc.json to lighthouserc.cjs with module.exports for ESM compat - Add logger.warn to empty catch blocks in auth, register, site-settings, prisma-cache, redis, security, rate-limit - Unify ActionResult type: action-helper.ts uses 'ok' consistent with safe-action-shared.ts - Add noUnusedLocals + noUnusedParameters to tsconfig + fix 25 pre-existing unused vars - Replace barrel export src/types/index.ts with direct @/types/common imports - Make trustHost conditional (development only) in auth.ts - Add pre-flight URL validation to update-Nitrov3.sh to catch image.library.url misconfigurations - Improve NITRO_IMAGE_LIBRARY_URL content validation in pre-flight & post-compute checks
36 lines
760 B
TypeScript
36 lines
760 B
TypeScript
import { logger } from "@/lib/logger";
|
|
|
|
export interface ActionResult<T = void> {
|
|
ok: boolean;
|
|
data?: T;
|
|
error?: string;
|
|
}
|
|
|
|
export async function wrapAction<T>(
|
|
fn: () => Promise<T>,
|
|
actionName: string,
|
|
): Promise<ActionResult<T>> {
|
|
try {
|
|
const data = await fn();
|
|
return { ok: true, data };
|
|
} catch (err) {
|
|
const message = err instanceof Error ? err.message : "Unknown error";
|
|
logger.error(`Action failed: ${actionName}`, {
|
|
action: actionName,
|
|
error: message,
|
|
});
|
|
return { ok: false, error: message };
|
|
}
|
|
}
|
|
|
|
export function actionError(
|
|
actionName: string,
|
|
message: string,
|
|
): ActionResult<never> {
|
|
logger.error(`Action failed: ${actionName}`, {
|
|
action: actionName,
|
|
error: message,
|
|
});
|
|
return { ok: false, error: message };
|
|
}
|