All files / app/customer getPasswordRequirements.ts

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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 31 32 33 34 35 36 37 38 39 40 41 42 43                  8x     3x 3x 3x 3x   3x   3x               8x 9x 9x 9x 9x   9x   9x              
import { CustomerPasswordRequirements, ShopperConfig } from '@bigcommerce/checkout-sdk';
 
export interface PasswordRequirements {
    minLength: number;
    alpha: RegExp;
    numeric: RegExp;
    description?: string;
}
 
export function getPasswordRequirementsFromConfig(config: ShopperConfig): PasswordRequirements {
    const {
        passwordRequirements: {
            minlength,
            error: description,
            alpha,
            numeric,
        },
    } = config;
 
    return getPasswordRequirements({
        minlength,
        description,
        alpha,
        numeric,
    });
}
 
export default function getPasswordRequirements({
    minlength,
    description,
    alpha,
    numeric,
}: CustomerPasswordRequirements): PasswordRequirements {
    const allSlashes = new RegExp('/', 'g');
 
    return {
        minLength: minlength,
        description,
        alpha: new RegExp(alpha.replace(allSlashes, '')),
        numeric: new RegExp(numeric.replace(allSlashes, '')),
    };
}