@lion/validate
Advanced tools
Comparing version
@@ -6,2 +6,13 @@ # Change Log | ||
# [0.11.0](https://github.com/ing-bank/lion/compare/@lion/validate@0.10.0...@lion/validate@0.11.0) (2020-05-27) | ||
### Features | ||
* **validate:** introduce Pattern validator for Strings ([#719](https://github.com/ing-bank/lion/issues/719)) ([e2f9b6e](https://github.com/ing-bank/lion/commit/e2f9b6e3411a7e167b5a88db77a62f3bd4bfd0a4)) | ||
# [0.10.0](https://github.com/ing-bank/lion/compare/@lion/validate@0.9.2...@lion/validate@0.10.0) (2020-05-18) | ||
@@ -8,0 +19,0 @@ |
@@ -17,2 +17,3 @@ export { ValidateMixin } from './src/ValidateMixin.js'; | ||
IsEmail, | ||
Pattern, | ||
} from './src/validators/StringValidators.js'; | ||
@@ -19,0 +20,0 @@ |
{ | ||
"name": "@lion/validate", | ||
"version": "0.10.0", | ||
"version": "0.11.0", | ||
"description": "Validate your form elements", | ||
@@ -45,3 +45,3 @@ "author": "ing-bank", | ||
}, | ||
"gitHead": "f9ce60c08cf0c608f5f3a9ef9937c536f7782c11" | ||
"gitHead": "674abf7adc904f6cffcf620ea953a3bc415afc32" | ||
} |
@@ -18,2 +18,3 @@ import { localize } from '@lion/localize'; | ||
MinMaxLength, | ||
Pattern, | ||
} from './validators/StringValidators.js'; | ||
@@ -121,2 +122,3 @@ | ||
MinMaxLength.getMessage = async data => getLocalizedMessage(data); | ||
Pattern.getMessage = async data => getLocalizedMessage(data); | ||
IsEmail.getMessage = async data => getLocalizedMessage(data); | ||
@@ -123,0 +125,0 @@ IsNumber.getMessage = async data => getLocalizedMessage(data); |
@@ -92,1 +92,23 @@ /* eslint-disable max-classes-per-file */ | ||
} | ||
const hasPattern = (value, pattern) => pattern.test(value); | ||
export class Pattern extends Validator { | ||
static get validatorName() { | ||
return 'Pattern'; | ||
} | ||
// eslint-disable-next-line class-methods-use-this | ||
execute(value, pattern = this.param) { | ||
if (!(pattern instanceof RegExp)) { | ||
throw new Error( | ||
'Psst... Pattern validator expects RegExp object as parameter e.g, new Pattern(/#LionRocks/) or new Pattern(RegExp("#LionRocks")', | ||
); | ||
} | ||
let hasError = false; | ||
if (!isString(value) || !hasPattern(value, pattern)) { | ||
hasError = true; | ||
} | ||
return hasError; | ||
} | ||
} |
@@ -10,2 +10,3 @@ import { expect } from '@open-wc/testing'; | ||
IsEmail, | ||
Pattern, | ||
} from '../src/validators/StringValidators.js'; | ||
@@ -115,2 +116,25 @@ | ||
}); | ||
it('provides new Pattern() to allow only valid patterns', () => { | ||
let isEnabled; | ||
let validator = new Pattern(/#LionRocks/); | ||
expect(validator.constructor.validatorName).to.equal('Pattern'); | ||
isEnabled = validator.execute('#LionRocks'); | ||
expect(isEnabled).to.be.false; | ||
isEnabled = validator.execute('#LionRests'); | ||
expect(isEnabled).to.be.true; | ||
validator = new Pattern(new RegExp('#LionRocks')); | ||
isEnabled = validator.execute('Some string #LionRocks'); | ||
expect(isEnabled).to.be.false; | ||
validator = new Pattern('#LionRocks'); | ||
expect(() => { | ||
validator.execute('Some string #LionRocks'); | ||
}).to.throw( | ||
'Psst... Pattern validator expects RegExp object as parameter e.g, new Pattern(/#LionRocks/) or new Pattern(RegExp("#LionRocks")', | ||
); | ||
}); | ||
}); |
@@ -8,2 +8,3 @@ export default { | ||
MinMaxLength: 'Моля, въведете правилен {fieldName} (между {params.min} и {params.max} знака).', | ||
Pattern: 'Введіть правильні дані {fieldName}.', | ||
IsNumber: 'Введіть правильні дані {fieldName}.', | ||
@@ -10,0 +11,0 @@ MinNumber: 'Моля, въведете {fieldName} повече от {params}.', |
@@ -8,2 +8,3 @@ export default { | ||
MinMaxLength: 'Zadejte správné {fieldName} (od {params.min} do {params.max} znaků).', | ||
Pattern: 'Zadejte platné {fieldName}.', | ||
IsNumber: 'Zadejte platné {fieldName}.', | ||
@@ -10,0 +11,0 @@ MinNumber: 'Zadejte {fieldName} větší než {params}.', |
@@ -8,2 +8,3 @@ export default { | ||
MinMaxLength: 'Du musst zwischen {params.min} und {params.max} Zeichen eingeben.', | ||
Pattern: 'Geben Sie ein gültiges {fieldName} ein.', | ||
IsNumber: 'Geben Sie ein gültiges {fieldName} ein.', | ||
@@ -10,0 +11,0 @@ MinNumber: 'Geben Sie für {fieldName} einen Wert über {params} ein.', |
@@ -9,2 +9,3 @@ export default { | ||
'Please enter a correct {fieldName} (between {params.min} and {params.max} characters).', | ||
Pattern: 'Please enter a valid {fieldName}', | ||
IsNumber: 'Please enter a valid {fieldName}.', | ||
@@ -11,0 +12,0 @@ MinNumber: 'Please enter a(n) {fieldName} higher than {params}.', |
@@ -9,2 +9,3 @@ export default { | ||
'Introduzca un/a {fieldName} correcto/a (de entre {params.min} y {params.max} caracteres).', | ||
Pattern: 'Introduzca un/a {fieldName} válido/a.', | ||
IsNumber: 'Introduzca un/a {fieldName} válido/a.', | ||
@@ -11,0 +12,0 @@ MinNumber: 'Introduzca un/a {fieldName} superior a {params}.', |
@@ -10,2 +10,3 @@ export default { | ||
'Veuillez indiquer un(e) {fieldName} correct(e) (entre {params.min} et {params.max} caractères).', | ||
Pattern: 'Indiquez un(e) {fieldName} valide.', | ||
IsNumber: 'Indiquez un(e) {fieldName} valide.', | ||
@@ -12,0 +13,0 @@ MinNumber: 'Veuillez indiquer un(e) {fieldName} supérieur(e) à {params}.', |
@@ -9,2 +9,3 @@ export default { | ||
'Adjon meg egy helyes {fieldName} értéket ({params.min} és {params.max} karakter között).', | ||
Pattern: 'Kérjük, adjon meg érvényes {fieldName} értéket.', | ||
IsNumber: 'Kérjük, adjon meg érvényes {fieldName} értéket.', | ||
@@ -11,0 +12,0 @@ MinNumber: 'Adjon meg egy {params} értéknél nagyobb {fieldName} értéket.', |
@@ -9,2 +9,3 @@ export default { | ||
'Inserire un(a) {fieldName} corretto(a) (tra {params.min} e {params.max} caratteri).', | ||
Pattern: 'Inserire un valore valido per {fieldName}.', | ||
IsNumber: 'Inserire un valore valido per {fieldName}.', | ||
@@ -11,0 +12,0 @@ MinNumber: 'Inserire un(a) {fieldName} superiore a {params}.', |
@@ -8,2 +8,3 @@ export default { | ||
MinMaxLength: 'Vul een {fieldName} in tussen {params.min} en {params.max} karakters.', | ||
Pattern: 'Vul een geldig(e) {fieldName} in.', | ||
IsNumber: 'Vul een geldig(e) {fieldName} in.', | ||
@@ -10,0 +11,0 @@ MinNumber: 'Vul een {fieldName} in van minimaal {params}.', |
@@ -9,2 +9,3 @@ export default { | ||
'Proszę podać prawidłową wartość {fieldName} (od {params.min} do {params.max} znaków).', | ||
Pattern: 'Wprowadź prawidłową wartość w polu {fieldName}.', | ||
IsNumber: 'Wprowadź prawidłową wartość w polu {fieldName}.', | ||
@@ -11,0 +12,0 @@ MinNumber: 'Proszę podać wartość {fieldName} większą niż {params}.', |
@@ -9,2 +9,3 @@ export default { | ||
'Introduceți un/o {fieldName} corect(ă) (între {params.min} și {params.max} (de) caractere).', | ||
Pattern: 'Vă rugăm să introduceți un/o {fieldName} valid(ă).', | ||
IsNumber: 'Vă rugăm să introduceți un/o {fieldName} valid(ă).', | ||
@@ -11,0 +12,0 @@ MinNumber: 'Introduceți un/o {fieldName} mai mare decât {params}.', |
@@ -9,2 +9,3 @@ export default { | ||
'Введите корректное значение поля {fieldName} (от {params.min} до {params.max} симв.).', | ||
Pattern: 'Введите действительное значение поля {fieldName}.', | ||
IsNumber: 'Введите действительное значение поля {fieldName}.', | ||
@@ -11,0 +12,0 @@ MinNumber: 'Введите значение поля {fieldName}, превышающее {params}.', |
@@ -8,2 +8,3 @@ export default { | ||
MinMaxLength: 'Uveďte správne {fieldName} ({params.min} až {params.max} znakov).', | ||
Pattern: 'Zadajte platnú hodnotu do poľa {fieldName}.', | ||
IsNumber: 'Zadajte platnú hodnotu do poľa {fieldName}.', | ||
@@ -10,0 +11,0 @@ MinNumber: 'Uveďte {fieldName} s hodnotou viac ako {params}.', |
@@ -10,2 +10,3 @@ export default { | ||
'Уведіть правильне значення {fieldName} (від {params.min} до {params.max} символів).', | ||
Pattern: 'Введіть правильні дані {fieldName}.', | ||
IsNumber: 'Введіть правильні дані {fieldName}.', | ||
@@ -12,0 +13,0 @@ MinNumber: 'Уведіть значення {fieldName}, що перевищує {params}.', |
@@ -8,2 +8,3 @@ export default { | ||
MinMaxLength: '請輸入正確的{fieldName}(長度在{params.min}和{params.max}個字符之間)。', | ||
Pattern: '請輸入有效的{fieldName}。', | ||
IsNumber: '請輸入有效的{fieldName}。', | ||
@@ -10,0 +11,0 @@ MinNumber: '請輸入高於{params}的{fieldName}。', |
Sorry, the diff of this file is not supported yet
214875
1.75%4433
1.28%