mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-16 09:36:44 +00:00
28 lines
727 B
TypeScript
28 lines
727 B
TypeScript
import type { ValidationOptions, ValidatorConstraintInterface } from 'class-validator';
|
|
import { registerDecorator, ValidatorConstraint } from 'class-validator';
|
|
|
|
const URL_REGEX = /^(https?:\/\/|www\.)|(\.[\p{L}\d-]+)/iu;
|
|
|
|
@ValidatorConstraint({ name: 'NoUrl', async: false })
|
|
class NoUrlConstraint implements ValidatorConstraintInterface {
|
|
validate(value: string) {
|
|
return !URL_REGEX.test(value);
|
|
}
|
|
|
|
defaultMessage() {
|
|
return 'Potentially malicious string';
|
|
}
|
|
}
|
|
|
|
export function NoUrl(options?: ValidationOptions) {
|
|
return function (object: object, propertyName: string) {
|
|
registerDecorator({
|
|
name: 'NoUrl',
|
|
target: object.constructor,
|
|
propertyName,
|
|
options,
|
|
validator: NoUrlConstraint,
|
|
});
|
|
};
|
|
}
|