Merge pull request #739 from Hexastack/feat/refactor-zod-validation
Some checks failed
Build and Push Docker API Image / build-and-push (push) Has been cancelled
Build and Push Docker Base Image / build-and-push (push) Has been cancelled
Build and Push Docker UI Image / build-and-push (push) Has been cancelled

feat: refactor zod validation
This commit is contained in:
Med Marrouchi 2025-02-11 16:12:58 +01:00 committed by GitHub
commit 457d49ca27
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 3 additions and 32 deletions

View File

@ -309,14 +309,9 @@ export type StdOutgoingEnvelope = z.infer<typeof stdOutgoingEnvelopeSchema>;
// is-valid-message-text validation
export const validMessageTextSchema = z.object({
message: z.string(),
text: z.string(),
});
// is-message validation
const MESSAGE_REGEX = /^function \(context\) \{[^]+\}/;
export const messageRegexSchema = z.string().regex(MESSAGE_REGEX);
export const textSchema = z.array(z.string().max(1000));
const quickReplySchema = z
@ -391,6 +386,7 @@ const attachmentBlockMessageSchema = z.object({
// BlockMessage Schema
export const blockMessageObjectSchema = z.union([
textSchema,
pluginBlockMessageSchema,
textBlockMessageSchema,
buttonMessageSchema,

View File

@ -16,36 +16,11 @@ import {
import {
BlockMessage,
blockMessageObjectSchema,
messageRegexSchema,
textSchema,
} from '../schemas/types/message';
/* eslint-disable no-console */
export function isValidMessage(msg: any) {
if (typeof msg === 'string' && msg !== '') {
const result = messageRegexSchema.safeParse(msg);
if (!result.success) {
console.error('Block Model: Invalid custom code.', result.error);
return false;
}
return true;
} else if (Array.isArray(msg)) {
const result = textSchema.safeParse(msg);
if (!result.success) {
console.error('Block Model: Invalid text message array.', result.error);
}
return result.success;
} else if (typeof msg === 'object' && msg !== null) {
const result = blockMessageObjectSchema.safeParse(msg);
if (!result.success) {
console.error('Block Model: Object validation failed!', result.error);
}
return result.success;
}
console.log('Validation reached default false');
return false;
return blockMessageObjectSchema.safeParse(msg).success;
}
/* eslint-enable no-console */
@ValidatorConstraint({ async: false })
export class MessageValidator implements ValidatorConstraintInterface {