api/utils: replace with a very basic dummy ts versions
Pedro Lucas Porcellis porcellis@eletrotupi.com · 7 months ago
e263ad00ec6c27b39fb90fe71cd81980a32b8790 Browse filesParents
bd44009Changed files
2
Additions
+21
Deletions
-26
api/src/utils/emotions.ts
renamedapi/src/utils/emotions.js → api/src/utils/emotions.ts
1 1
// Emotion types enum
2 2
export const Emotions = {
3 3
JOY: 'joy',
4 4
TRUST: 'trust',
5 5
FEAR: 'fear',
98 98
99 99
stats.average = totalIntensity / moodComponents.length;
100 100
101 101
return stats;
102 102
}
api/src/utils/validators.js → api/src/utils/validators.ts
1 +
import { parseISO, isValid, isFuture, isAfter } from 'date-fns';
2 +
1 3
// Email validation
2 -
export function isValidEmail(email) {
4 +
const isValidEmail = (email: string) => {
3 5
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
4 6
return emailRegex.test(email);
5 7
}
6 8
7 9
// Password validation (minimum 6 characters)
8 -
export function isValidPassword(password) {
10 +
const isValidPassword = (password: string) => {
9 11
return password && password.length >= 6;
10 12
}
11 13
12 -
import { parseISO, isValid, isFuture, isAfter } from 'date-fns';
13 -
14 14
// Date validation
15 -
export function isValidDate(dateString) {
15 +
const isValidDate = (dateString: string) => {
16 16
if (!dateString) return false;
17 17
try {
18 18
const date = parseISO(dateString);
19 19
return isValid(date);
20 20
} catch {
21 21
return false;
22 22
}
23 23
}
24 24
25 25
// Check if date is not in the future
26 -
export function isNotFutureDate(dateString) {
26 +
const isNotFutureDate = (dateString: string) => {
27 27
if (!dateString) return false;
28 28
try {
29 29
const date = parseISO(dateString);
30 30
return isValid(date) && !isFuture(date);
31 31
} catch {
32 32
return false;
33 33
}
34 34
}
35 35
36 36
// Validate date range
37 -
export function isValidDateRange(startDate, endDate) {
37 +
const isValidDateRange = (startDate: string, endDate: string) => {
38 38
if (!startDate || !endDate) return false;
39 39
try {
40 40
const start = parseISO(startDate);
41 41
const end = parseISO(endDate);
42 42
49 49
return false;
50 50
}
51 51
}
52 52
53 53
// Sanitize string input
54 -
export function sanitizeString(str) {
54 +
const sanitizeString = (str: string) => {
55 55
if (typeof str !== 'string') return '';
56 56
return str.trim().slice(0, 500); // Limit to 500 chars
57 57
}
58 58
59 59
// Validate required fields
60 -
export function validateRequiredFields(data, fields) {
60 +
61 +
const validateRequiredFields = (data: Record<string, unknown>, fields: string[]) => {
61 62
const missing = [];
62 63
63 64
for (const field of fields) {
64 65
if (data[field] === undefined || data[field] === null || data[field] === '') {
65 66
missing.push(field);
71 72
missing
72 73
};
73 74
}
74 75
75 76
// Validate number in range
76 -
export function isInRange(value, min, max) {
77 +
const isInRange = (value: number, min: number, max: number) => {
77 78
const num = Number(value);
78 79
return !isNaN(num) && num >= min && num <= max;
79 80
}
80 81
81 -
// Parse and validate integer
82 -
export function parseIntOrDefault(value, defaultValue = null) {
83 -
const parsed = parseInt(value, 10);
84 -
return isNaN(parsed) ? defaultValue : parsed;
85 -
}
86 -
87 -
// Validate pagination parameters
88 -
export function validatePagination(page, limit) {
89 -
const validPage = Math.max(1, parseIntOrDefault(page, 1));
90 -
const validLimit = Math.min(100, Math.max(1, parseIntOrDefault(limit, 20)));
91 -
92 -
return {
93 -
page: validPage,
94 -
limit: validLimit,
95 -
offset: (validPage - 1) * validLimit
96 -
};
97 -
} 82 +
export {
83 +
validateRequiredFields,
84 +
sanitizeString,
85 +
isInRange,
86 +
isValidEmail,
87 +
isValidPassword,
88 +
isValidDateRange,
89 +
isNotFutureDate,
90 +
isValidDate,
91 +
};