suf-password
TypeScript icon, indicating that this package has built-in type declarations

0.7.0 • Public • Published

Password Utility Functions

Custom codecov circleci npmV min install githubLastCommit

Usage

const checks: Password.ValidateCheck[] = [
  {
    type: 'customRegex',
    customRegex: /123/g,
    invertCheck: true,
    customError: 'cannot contain 123'
  },
  { type: 'uppercase' },
  { type: 'numbers' },
  {
    type: 'custom',
    custom: password => password !== '123456',
    customError: 'password cannot be 123456'
  }
];
Password.Validate('123456', checks); // doesn't pass
Password.Validate('Abcd', checks); // doesn't pass
Password.Validate('Abcd321', checks); // passes
 
const password = 'theBestPassword123$';
Password.ValidateSimple(password); // should meet all the requirements and return true.

Docs

index

Password
namespace Password {
    /** Defines the properties of a Password.Validate Check  */
    interface PasswordCheck {
        /** Type of the check  */
        type: 'custom' | 'numbers' | 'letters' | 'lowercase' | 'uppercase' | 'spaces' | 'symbols' | 'customRegex';
        /**
         * if the type is one of  **`'numbers' | 'letters' | 'lowercase' | 'uppercase' | 'spaces' | 'symbols'`** then this
         * property defines the times that the type can occur without failing the check, if invertCheck is true then
         * this property defines how many time this type is allowed.
         */
        times?: number;
        /**
         * if true then the result of **`'numbers' | 'letters' | 'lowercase' | 'uppercase' | 'spaces' | 'symbols' | 'customRegex'`**
         * will be inverted, example if the type is  **`customRegex`** and customRegex =  **`/123/g`** then the password cannot contain  **`123`**.
         */
        invertCheck?: boolean;
        /** if the type is **`custom`** then this function will be executed.  */
        custom?: (password: string) => boolean;
        /** if the type is **`customRegex`** then this regex will be tested.  */
        customRegex?: RegExp;
        /** if the type is **`custom | customRegex`** then this will be the error the if the check fail's.   */
        customError?: string;
    }
    /** Options for the Password.Validate function. */
    interface ValidateOptions {
        /** the maximum length of the password. */
        maxLength?: number;
        /** the minimum length of the password. */
        minLength?: number;
        /** if true additional data will be returned. */
        passData?: boolean;
    }
    interface ValidateReturn {
        /** array that contains the error messages of all the failed checks. */
        errors: string[];
        /** true if all the checks have passed successfully. */
        passed: boolean;
        /** array with the additional data about each test. */
        validationData?: {
            invertCheck: boolean;
            errType: string;
        }[];
    }
    /**
     * Validates a password or other strings with checks that have to be provided in the checks array,
     * if the **`passed`** key of the returned object is true
     * then all checks have been passed successfully.
     *
     * @param password password or other string to be checked.
     * @param checks array of checks that will be performed.
     * @param options min and max length and other stuff.
     */
    function Validate(password: string, checks: PasswordCheck[], options?: ValidateOptions): ValidateReturn;
    /**
     * The password has to contain an uppercase letter, number and cannot contain any spaces.
     * @param password password or string to check.
     */
    function ValidateSimple(password: string): boolean;
}

Generated with suf-cli

Copyright (c) 2020 Leonard Grosoli Licensed under the MIT license.

Readme

Keywords

none

Package Sidebar

Install

npm i suf-password

Weekly Downloads

5

Version

0.7.0

License

MIT

Unpacked Size

15.9 kB

Total Files

5

Last publish

Collaborators

  • the_real_syler