Files
Epicnabbo-Catalogus-Updated…/src/lib/action-helper.ts
T
openhands 17847545dd Improvements: remove dead config, fix ESM, add URL validation, unify types, add missing logging
- 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
2026-07-26 20:28:11 +02:00

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 };
}