Pre-defined polices

Ready to use policies

Function argument validation

@sugoi\core comes with pre-defined policy for validating functions arguments:

ValidateSchemaPolicy(failedResponseCode: number = 400, ...policyMeta: TValidateSchemaMeta[])

failedResponseCode: number - The code will be stored under the exception if the value does not meet the criteria.

policyMeta: TValidateSchemaMeta - Meta data for validation.

{
schema: {[prop:string]:ComparableSchema}|ComparableSchema,
argIndex?: number, - The argument index which need to validate - default is 0
keyInArg?: string - Key in argument (optional)
}

Example:

Schema -

{
role:{
text:string//with regex /([A-Z])+/i
}
}

Usage -

@ValidateSchemaPolicy(400, {
schema: {
"role": ComparableSchema.ofType(
{text: ComparableSchema.ofType(SchemaTypes.STRING).setRegex("([A-Z])+", "i")}
)
},
argIndex: 0
})

Result:

In case the argument doesn't meet the criteria an exception will thrown with the given failed response code