JSFiddle - React, Tailwind, and code Playground

by Alistair Brown

HTML

<script src="https://rawgithub.com/alistairjcbrown/check-type/master/lib/check-type.js"></script>

JavaScript

// Set up `check-type`
var custom_types = {};

custom_types.isUsername = function(value) {
    return /^\w+$/.test(value);
};

custom_types.isAuthObject = function(value) {
    return check(value).matches({
        "username": "username",
        "password": "string"
    });
};

// Initialise with underscorejs functions
check.init();

// Add custom functions too
check.init(custom_types);

// ---------------------

function handleAuthentication(request) {
    var username, password;

    if (check(request).has("auth") &&
        check(request.auth).is("AuthObject")) {

        username = request.auth.username;
        password = request.auth.password;

        return {
            username: username,
            password: password
        };

    }

    return false;
}

// ---------------------

var success, request;

request = {
    auth: {
        username: "alistairjcbrown",
        password: "abc123"
    }
};

success = handleAuthentication(request);
console.log(success);

request = {
    auth: {
        username: "Alistair Brown",
        password: "abc123"
    }
};

success = handleAuthentication(request);
console.log(success);