Metody isValid() i validate() są dostępne na każdej klasie identyfikatora i nigdy nie rzucają wyjątku.
validate() zwraca instancję ValidationResult.
| Właściwość | Typ | Opis |
|---|
isValid | boolean | true jeśli walidacja zakończyła się sukcesem. |
failures | readonly ValidationFailure[] | Pusta tablica przy poprawnym numerze; jeden lub więcej błędów przy nieprawidłowym. |
| Metoda | Typ zwracany | Opis |
|---|
isFailed() | boolean | Negacja isValid. |
getFailures() | readonly ValidationFailure[] | Zwraca tablicę błędów. |
getFirstFailure() | ValidationFailure | null | Pierwszy błąd lub null przy poprawnym wejściu. |
hasFailureReason(reason: ValidationFailureReason) | boolean | true jeśli którykolwiek błąd pasuje do podanego powodu. |
import { Numerik, ValidationFailureReason } from '@slashlab/numerik-js'
const result = Numerik.pesel().validate('92060512186')
result.isFailed() // false
result.getFirstFailure() // null
const failed = Numerik.nip().validate('0000000000')
failed.isFailed() // true
// Sprawdź pierwszy (i zazwyczaj jedyny) błąd
const failure = failed.getFirstFailure()
failure?.reason // ValidationFailureReason.InvalidFormat
failure?.message // 'NIP tax office code cannot be 000.'
// Sprawdź konkretny powód
failed.hasFailureReason(ValidationFailureReason.InvalidChecksum) // false
failed.hasFailureReason(ValidationFailureReason.InvalidFormat) // true
Każdy element w failures to instancja ValidationFailure.
| Właściwość | Typ | Opis |
|---|
reason | ValidationFailureReason | Wartość enum identyfikująca kategorię błędu. |
message | string | Opis błędu przeznaczony do logowania i debugowania. |
ValidationFailureReason to enum, którego wartości są ciągami znaków.
| Przypadek | Wartość | Opis |
|---|
InvalidLength | invalid_length | Numer ma nieprawidłową liczbę cyfr. |
InvalidCharacters | invalid_characters | Po usunięciu dozwolonych separatorów pozostały niedozwolone znaki. |
InvalidFormat | invalid_format | Długość i znaki są poprawne, ale numer narusza regułę strukturalną (np. kod urzędu skarbowego NIP 000). |
| Przypadek | Wartość | Opis |
|---|
InvalidChecksum | invalid_checksum | Obliczona suma kontrolna nie zgadza się z cyfrą kontrolną. |
| Przypadek | Wartość | Opis |
|---|
InvalidDate | invalid_date | Data zakodowana w identyfikatorze nie istnieje w kalendarzu. |
FutureDate | future_date | Zakodowana data urodzenia jest w przyszłości. |
InvalidMonth | invalid_month | Kodowanie miesiąca nie odpowiada żadnemu ze znanych zakresów stulecia. |
| Przypadek | Wartość | Opis |
|---|
AllZeros | all_zeros | Wszystkie cyfry są zerami — strukturalnie możliwe, ale semantycznie nieprawidłowe. |
AllSameDigit | all_same_digit | Wszystkie cyfry są takie same i niezerowe. |
ValidationResult udostępnia trzy statyczne konstruktory przydatne przy pisaniu testów:
import { ValidationResult, ValidationFailure, ValidationFailureReason } from '@slashlab/numerik-js'
// Niepowodzenie z listą błędów
new ValidationFailure(ValidationFailureReason.InvalidChecksum, 'Checksum mismatch.'),
// Niepowodzenie z jednym powodem — skrócona forma
ValidationResult.failWithReason(
ValidationFailureReason.InvalidLength,
'Expected 11 digits, got 10.',