-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdefault-setup.ts
More file actions
30 lines (28 loc) · 1.1 KB
/
default-setup.ts
File metadata and controls
30 lines (28 loc) · 1.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import { Validation, ValidationInstance, validationOptionsFromElement } from './validation';
import {
EmailValidator,
NumberValidator,
NumberRangeValidator,
PatternValidator,
RequiredValidator,
StringLengthValidator,
} from './validation/validators';
const defaultValidation = new Validation();
defaultValidation
.registerValidator(RequiredValidator)
.registerValidator(EmailValidator)
.registerValidator(NumberValidator)
.registerValidator(NumberRangeValidator)
.registerValidator(StringLengthValidator)
.registerValidator(PatternValidator);
/**
* Helper function to easily set up validation with the {@link defaultValidation}
* and options encoded in the HTML.
* @param form The form to set up validation for
* @returns A validation-instance for that form element
* @throws {@link Error} if options could ne be initialized from environment
*/
export const initForForm = (form: HTMLFormElement): ValidationInstance => {
const options = validationOptionsFromElement(form.querySelector('[data-validation-options]'));
return defaultValidation.init(form, options);
};