forked from git.gladyson/openmonetis
- Replace ESLint with Biome for linting and formatting - Configure Biome with tabs, double quotes, and organized imports - Move all SQL/Drizzle queries from page.tsx files to data.ts files - Create new data.ts files for: ajustes, dashboard, relatorios/categorias - Update existing data.ts files: extrato, fatura (add lancamentos queries) - Remove all drizzle-orm imports from page.tsx files - Update README.md with new tooling info Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
69 lines
1.6 KiB
TypeScript
69 lines
1.6 KiB
TypeScript
/**
|
|
* Utility functions for safe number conversions
|
|
*/
|
|
|
|
/**
|
|
* Safely converts unknown value to number
|
|
* @param value - Value to convert
|
|
* @param defaultValue - Default value if conversion fails
|
|
* @returns Converted number or default value
|
|
*/
|
|
export function safeToNumber(value: unknown, defaultValue: number = 0): number {
|
|
if (typeof value === "number") {
|
|
return value;
|
|
}
|
|
|
|
if (typeof value === "string") {
|
|
const parsed = Number(value);
|
|
return Number.isNaN(parsed) ? defaultValue : parsed;
|
|
}
|
|
|
|
if (value === null || value === undefined) {
|
|
return defaultValue;
|
|
}
|
|
|
|
const parsed = Number(value);
|
|
return Number.isNaN(parsed) ? defaultValue : parsed;
|
|
}
|
|
|
|
/**
|
|
* Safely parses integer from unknown value
|
|
* @param value - Value to parse
|
|
* @param defaultValue - Default value if parsing fails
|
|
* @returns Parsed integer or default value
|
|
*/
|
|
export function safeParseInt(value: unknown, defaultValue: number = 0): number {
|
|
if (typeof value === "number") {
|
|
return Math.trunc(value);
|
|
}
|
|
|
|
if (typeof value === "string") {
|
|
const parsed = Number.parseInt(value, 10);
|
|
return Number.isNaN(parsed) ? defaultValue : parsed;
|
|
}
|
|
|
|
return defaultValue;
|
|
}
|
|
|
|
/**
|
|
* Safely parses float from unknown value
|
|
* @param value - Value to parse
|
|
* @param defaultValue - Default value if parsing fails
|
|
* @returns Parsed float or default value
|
|
*/
|
|
export function safeParseFloat(
|
|
value: unknown,
|
|
defaultValue: number = 0,
|
|
): number {
|
|
if (typeof value === "number") {
|
|
return value;
|
|
}
|
|
|
|
if (typeof value === "string") {
|
|
const parsed = Number.parseFloat(value);
|
|
return Number.isNaN(parsed) ? defaultValue : parsed;
|
|
}
|
|
|
|
return defaultValue;
|
|
}
|