Lint errors
Signed-off-by: Rodrigo Martins <rodrigo.sousa.577@gmail.com>
This commit is contained in:
1 parent
9742d62ba2
commit
5acec6b71e
196 files changed
+10885
-6655
No files matched your search
@@ -1,63 +1,71 @@
|
||||
import { createHash } from 'crypto';
|
||||
import sharp from 'sharp';
|
||||
import { createHash } from "crypto";
|
||||
|
||||
import sharp from "sharp";
|
||||
|
||||
export class FileValidator {
|
||||
async validateFile(buffer: Buffer, mimeType: string) {
|
||||
try {
|
||||
// Validação básica
|
||||
if (!buffer || buffer.length === 0) {
|
||||
return { valid: false, error: 'Arquivo vazio' };
|
||||
return { valid: false, error: "Arquivo vazio" };
|
||||
}
|
||||
|
||||
// Verificar tamanho máximo (10MB)
|
||||
const MAX_SIZE = 10 * 1024 * 1024;
|
||||
if (buffer.length > MAX_SIZE) {
|
||||
return { valid: false, error: 'Arquivo muito grande (máximo 10MB)' };
|
||||
return { valid: false, error: "Arquivo muito grande (máximo 10MB)" };
|
||||
}
|
||||
|
||||
// Verificar tipos de arquivo permitidos
|
||||
const allowedTypes = [
|
||||
'application/pdf',
|
||||
'image/jpeg',
|
||||
'image/png',
|
||||
'image/gif',
|
||||
'image.webp'
|
||||
"application/pdf",
|
||||
"image/jpeg",
|
||||
"image/png",
|
||||
"image/gif",
|
||||
"image.webp",
|
||||
];
|
||||
|
||||
if (!allowedTypes.includes(mimeType)) {
|
||||
return { valid: false, error: 'Tipo de arquivo não suportado. Use PDF, JPEG, PNG ou GIF.' };
|
||||
return {
|
||||
valid: false,
|
||||
error: "Tipo de arquivo não suportado. Use PDF, JPEG, PNG ou GIF.",
|
||||
};
|
||||
}
|
||||
|
||||
// Verificação adicional para JPEG
|
||||
if (mimeType === 'image/jpeg') {
|
||||
if (mimeType === "image/jpeg") {
|
||||
try {
|
||||
// Verificar se é um JPEG válido tentando processá-lo
|
||||
await sharp(buffer).metadata();
|
||||
} catch (jpegError) {
|
||||
console.error('Erro ao validar JPEG:', jpegError);
|
||||
return {
|
||||
valid: false,
|
||||
error: 'O arquivo JPEG parece estar corrompido. Tente salvar a imagem em um formato diferente e enviar novamente.'
|
||||
console.error("Erro ao validar JPEG:", jpegError);
|
||||
return {
|
||||
valid: false,
|
||||
error:
|
||||
"O arquivo JPEG parece estar corrompido. Tente salvar a imagem em um formato diferente e enviar novamente.",
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
return { valid: true };
|
||||
} catch (error) {
|
||||
console.error('Erro na validação de arquivo:', error);
|
||||
return { valid: false, error: `Erro ao validar arquivo: ${error.message}` };
|
||||
console.error("Erro na validação de arquivo:", error);
|
||||
return {
|
||||
valid: false,
|
||||
error: `Erro ao validar arquivo: ${error.message}`,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
async validateMetadata(metadata: any) {
|
||||
// Campos básicos obrigatórios
|
||||
const requiredFields = ['userAgent', 'timestamp'];
|
||||
const missingFields = requiredFields.filter(field => !metadata[field]);
|
||||
|
||||
const requiredFields = ["userAgent", "timestamp"];
|
||||
const missingFields = requiredFields.filter((field) => !metadata[field]);
|
||||
|
||||
if (missingFields.length > 0) {
|
||||
return {
|
||||
valid: false,
|
||||
error: `Dados necessários ausentes: ${missingFields.join(', ')}`
|
||||
error: `Dados necessários ausentes: ${missingFields.join(", ")}`,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -66,9 +74,9 @@ export class FileValidator {
|
||||
|
||||
generateHashes(buffer: Buffer) {
|
||||
return {
|
||||
sha256: createHash('sha256').update(buffer).digest('hex'),
|
||||
sha512: createHash('sha512').update(buffer).digest('hex'),
|
||||
md5: createHash('md5').update(buffer).digest('hex')
|
||||
sha256: createHash("sha256").update(buffer).digest("hex"),
|
||||
sha512: createHash("sha512").update(buffer).digest("hex"),
|
||||
md5: createHash("md5").update(buffer).digest("hex"),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user