-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathis-cron.ts
22 lines (19 loc) · 956 Bytes
/
is-cron.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import {registerDecorator, ValidationOptions, isValidationOptions} from 'class-validator';
import {IsCronValidator} from './is-cron-validator';
import {InputOptions} from 'cron-validate/lib/types';
export function IsCron(validationOptions?: ValidationOptions): PropertyDecorator;
export function IsCron(options: InputOptions, validationOptions?: ValidationOptions): PropertyDecorator;
export function IsCron(options: InputOptions | ValidationOptions, validationOptions?: ValidationOptions): PropertyDecorator {
const opts = options && isValidationOptions(options) ? options : validationOptions;
const constraints = options && !isValidationOptions(options) ? options : undefined;
return (object: object, propertyName: string) => {
registerDecorator({
name: 'isCron',
constraints: [constraints],
target: object.constructor,
propertyName: propertyName,
options: opts,
validator: IsCronValidator
});
};
}