Skip to content

Commit

Permalink
feat: add missing validators
Browse files Browse the repository at this point in the history
  • Loading branch information
fedeci committed Feb 15, 2023
1 parent 788c489 commit 5dc6622
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 5 deletions.
3 changes: 2 additions & 1 deletion declarations/validator.d.ts
Expand Up @@ -98,7 +98,7 @@ declare module 'validator' {
): boolean;
export function isLocale(str: string): boolean;
export function isLowercase(str: string): boolean;
export function isLuhnValid(str: string): boolean;
export function isLuhnNumber(str: string): boolean;
export function isMagnetURI(str: string): boolean;
export function isMACAddress(
str: string,
Expand Down Expand Up @@ -139,6 +139,7 @@ declare module 'validator' {
): boolean;
export function isSurrogatePair(str: string): boolean;
export function isTaxID(str: string, locale: import('../src/options').TaxIDLocale): boolean;
export function isTime(str: string, options?: import('../src/options').IsTimeOptions): boolean;
export function isURL(str: string, options?: import('../src/options').IsURLOptions): boolean;
export function isUUID(str: string, version?: import('../src/options').UUIDVersion): boolean;
export function isUppercase(str: string): boolean;
Expand Down
2 changes: 1 addition & 1 deletion src/chain/sanitizers-impl.spec.ts
Expand Up @@ -17,7 +17,7 @@ beforeEach(() => {
sanitizers = new SanitizersImpl(builder, chain);
});

it('has methods for all standard validators', () => {
it('has methods for all standard sanitizers', () => {
// Cast is here to workaround the lack of index signature
const validatorModule = validator as any;

Expand Down
7 changes: 5 additions & 2 deletions src/chain/validators-impl.ts
Expand Up @@ -261,8 +261,8 @@ export class ValidatorsImpl<Chain> implements Validators<Chain> {
isLowercase() {
return this.addStandardValidation(validator.isLowercase);
}
isLuhnValid() {
return this.addStandardValidation(validator.isLuhnValid);
isLuhnNumber() {
return this.addStandardValidation(validator.isLuhnNumber);
}
isMagnetURI() {
return this.addStandardValidation(validator.isMagnetURI);
Expand Down Expand Up @@ -324,6 +324,9 @@ export class ValidatorsImpl<Chain> implements Validators<Chain> {
isTaxID(locale: Options.TaxIDLocale) {
return this.addStandardValidation(validator.isTaxID, locale);
}
isTime(options?: Options.IsTimeOptions) {
return this.addStandardValidation(validator.isTime, options);
}
isURL(options?: Options.IsURLOptions) {
return this.addStandardValidation(validator.isURL, options);
}
Expand Down
3 changes: 2 additions & 1 deletion src/chain/validators.ts
Expand Up @@ -138,7 +138,7 @@ export interface Validators<Return> {
isLicensePlate(locale: Options.IsLicensePlateLocale): Return;
isLocale(): Return;
isLowercase(): Return;
isLuhnValid(): Return;
isLuhnNumber(): Return;
isMagnetURI(): Return;
isMACAddress(options?: Options.IsMACAddressOptions): Return;
isMD5(): Return;
Expand All @@ -161,6 +161,7 @@ export interface Validators<Return> {
isStrongPassword(options?: Options.IsStrongPasswordOptions): Return;
isSurrogatePair(): Return;
isTaxID(locale: Options.TaxIDLocale): Return;
isTime(options: Options.IsTimeOptions): Return;
isURL(options?: Options.IsURLOptions): Return;
isUUID(version?: Options.UUIDVersion): Return;
isUppercase(): Return;
Expand Down
12 changes: 12 additions & 0 deletions src/options.ts
Expand Up @@ -920,6 +920,18 @@ export interface IsURLOptions {
allow_query_components?: boolean;
}

/**
* defaults to
* {
* hourFormat: 'hour24',
* mode: 'default',
* };
*/
export interface IsTimeOptions {
hourFormat?: 'hour24' | 'hour12';
mode?: 'default' | 'withSeconds';
}

export interface NormalizeEmailOptions {
all_lowercase?: boolean;
gmail_lowercase?: boolean;
Expand Down

0 comments on commit 5dc6622

Please sign in to comment.